Skip to content

Commit 644b8c9

Browse files
authored
Merge pull request #373 from Frederikam/dev
Release v3.3.2
2 parents 88094cf + 8b882e3 commit 644b8c9

29 files changed

+502
-313
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,5 @@ build/*
1111
.project
1212
.classpath
1313
.settings
14+
/Testbot/build/
15+
/Testbot/out/

CHANGELOG.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,28 @@
33
Each release usually includes various fixes and improvements.
44
The most noteworthy of these, as well as any features and breaking changes, are listed here.
55

6+
## v3.3.2
7+
* Replaced Magma with Koe.
8+
* Finally implemented `stopTime` for `play` op.
9+
* Added `playerUpdateInterval` config option.
10+
* Added `environment` to Sentry config.
11+
* Fixed #332
12+
* Updated IP rotator.
13+
* Update lavaplayer to `1.3.59` from devoxin's fork.
14+
* Added a Testbot for development.
15+
16+
Contributors:
17+
[@Frederikam](https://github.com/Frederikam),
18+
[@Thewsomeguy](https://github.com/Thewsomeguy),
19+
[@Neuheit](https://github.com/Neuheit),
20+
[@Sangoon_Is_Noob](https://github.com/Sangoon_Is_Noob),
21+
[@TheEssem](https://github.com/Essem), and
22+
[@Devoxin](https://github.com/Devoxin)
23+
624
## v3.3.1.4
725
* Update lavaplayer to `1.3.54.3` from devoxin's fork.
826

27+
928
## v3.3.1.3
1029
* Update lavaplayer to `1.3.53` from devoxin's fork.
1130

LavalinkServer/application.yml.example

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ lavalink:
1515
local: false
1616
bufferDurationMs: 400
1717
youtubePlaylistLoadLimit: 6 # Number of pages at 100 each
18+
playerUpdateInterval: 5 # How frequently to send player updates to clients, in seconds
1819
youtubeSearchEnabled: true
1920
soundcloudSearchEnabled: true
2021
gc-warnings: true
@@ -32,6 +33,7 @@ metrics:
3233

3334
sentry:
3435
dsn: ""
36+
environment: ""
3537
# tags:
3638
# some_key: some_value
3739
# another_key: another_value

LavalinkServer/build.gradle

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -34,16 +34,16 @@ bootRun {
3434
}
3535

3636
dependencies {
37-
compile group: 'space.npstr.Magma', name: 'magma', version: magmaVersion
37+
compile (group: 'moe.kyokobot.koe', name: 'core', version: koeVersion) {
38+
// This version of SLF4J does not recognise Logback 1.2.3
39+
exclude group: "org.slf4j", module: "slf4j-api"
40+
}
41+
compile group: 'moe.kyokobot.koe', name: 'ext-udpqueue', version: koeVersion
3842
//compile group: 'com.sedmelluq', name: 'lavaplayer', version: lavaplayerVersion
39-
compile group: 'com.github.devoxin', name: 'lavaplayer', version: '1.3.54.3'
43+
compile group: 'com.github.devoxin', name: 'lavaplayer', version: '1.3.59'
4044
compile group: 'com.sedmelluq', name: 'lavaplayer-ext-youtube-rotator', version: lavaplayerIpRotatorVersion
41-
compile group: 'com.sedmelluq', name: 'jda-nas', version: jdaNasVersion
4245
compile group: 'org.jetbrains.kotlin', name: 'kotlin-reflect', version: kotlinVersion
4346

44-
compile group: 'com.github.shredder121', name: 'jda-async-packetprovider', version: jappVersion
45-
//required by japp
46-
compile group: 'org.apache.commons', name: 'commons-lang3', version: commonsLangVersion
4747
compile group: 'org.springframework', name: 'spring-websocket', version: springWebSocketVersion
4848
compile group: 'ch.qos.logback', name: 'logback-classic', version: logbackVersion
4949
compile group: 'io.sentry', name: 'sentry-logback', version: sentryLogbackVersion

LavalinkServer/src/main/java/lavalink/server/Launcher.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,5 +125,6 @@ object Launcher {
125125
}
126126
)
127127
sa.run(*args)
128+
log.info("You can safely ignore the big red warning about illegal reflection. See https://github.com/Frederikam/Lavalink/issues/295")
128129
}
129130
}

LavalinkServer/src/main/java/lavalink/server/config/AudioPlayerConfiguration.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import com.sedmelluq.discord.lavaplayer.source.soundcloud.SoundCloudAudioSourceM
1414
import com.sedmelluq.discord.lavaplayer.source.twitch.TwitchStreamAudioSourceManager
1515
import com.sedmelluq.discord.lavaplayer.source.vimeo.VimeoAudioSourceManager
1616
import com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioSourceManager
17-
import com.sedmelluq.lava.extensions.youtuberotator.YoutubeIpRotator
17+
import com.sedmelluq.lava.extensions.youtuberotator.YoutubeIpRotatorSetup
1818
import com.sedmelluq.lava.extensions.youtuberotator.planner.AbstractRoutePlanner
1919
import com.sedmelluq.lava.extensions.youtuberotator.planner.BalancingIpRoutePlanner
2020
import com.sedmelluq.lava.extensions.youtuberotator.planner.NanoIpRoutePlanner
@@ -50,9 +50,9 @@ class AudioPlayerConfiguration {
5050
if (routePlanner != null) {
5151
val retryLimit = serverConfig.ratelimit?.retryLimit ?: -1
5252
when {
53-
retryLimit < 0 -> YoutubeIpRotator.setup(youtube, routePlanner)
54-
retryLimit == 0 -> YoutubeIpRotator.setup(youtube, routePlanner, Int.MAX_VALUE)
55-
else -> YoutubeIpRotator.setup(youtube, routePlanner, retryLimit)
53+
retryLimit < 0 -> YoutubeIpRotatorSetup(routePlanner).forSource(youtube).setup()
54+
retryLimit == 0 -> YoutubeIpRotatorSetup(routePlanner).forSource(youtube).withRetryLimit(Int.MAX_VALUE).setup()
55+
else -> YoutubeIpRotatorSetup(routePlanner).forSource(youtube).withRetryLimit(retryLimit).setup()
5656

5757
}
5858
}

LavalinkServer/src/main/java/lavalink/server/config/AudioSendFactoryConfiguration.java

Lines changed: 0 additions & 56 deletions
This file was deleted.
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
package lavalink.server.config
2+
3+
import moe.kyokobot.koe.KoeOptions
4+
import moe.kyokobot.koe.codec.udpqueue.UdpQueueFramePollerFactory
5+
import org.slf4j.Logger
6+
import org.slf4j.LoggerFactory
7+
import org.springframework.context.annotation.Bean
8+
import org.springframework.context.annotation.Configuration
9+
10+
@Configuration
11+
class KoeConfiguration(val serverConfig: ServerConfig) {
12+
13+
private val log: Logger = LoggerFactory.getLogger(KoeConfiguration::class.java)
14+
15+
@Bean
16+
fun koeOptions(): KoeOptions = KoeOptions.builder().apply {
17+
log.info("OS: " + System.getProperty("os.name") + ", Arch: " + System.getProperty("os.arch"))
18+
val os = System.getProperty("os.name")
19+
val arch = System.getProperty("os.arch")
20+
21+
// Maybe add Windows natives back?
22+
val nasSupported = os.contains("linux", ignoreCase = true)
23+
&& arch.equals("amd64", ignoreCase = true)
24+
25+
if (nasSupported) {
26+
log.info("Enabling JDA-NAS")
27+
var bufferSize = serverConfig.bufferDurationMs ?: UdpQueueFramePollerFactory.DEFAULT_BUFFER_DURATION
28+
if (bufferSize <= 0) {
29+
log.warn("Buffer size of {}ms is illegal. Defaulting to {}",
30+
bufferSize, UdpQueueFramePollerFactory.DEFAULT_BUFFER_DURATION)
31+
bufferSize = UdpQueueFramePollerFactory.DEFAULT_BUFFER_DURATION
32+
}
33+
setFramePollerFactory(UdpQueueFramePollerFactory(bufferSize, Runtime.getRuntime().availableProcessors()))
34+
} else {
35+
log.warn("This system and architecture appears to not support native audio sending! "
36+
+ "GC pauses may cause your bot to stutter during playback.")
37+
}
38+
}.create()
39+
}

LavalinkServer/src/main/java/lavalink/server/config/SentryConfigProperties.java

Lines changed: 0 additions & 34 deletions
This file was deleted.
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package lavalink.server.config
2+
3+
import org.springframework.boot.context.properties.ConfigurationProperties
4+
import org.springframework.stereotype.Component
5+
import java.util.*
6+
7+
/**
8+
* Created by napster on 20.05.18.
9+
*/
10+
@Component
11+
@ConfigurationProperties(prefix = "sentry")
12+
class SentryConfigProperties {
13+
var dsn = ""
14+
var environment = ""
15+
var tags: Map<String, String> = HashMap()
16+
}

0 commit comments

Comments
 (0)