Warning: session_start(): open(/var/lib/php/sessions/sess_9stvf71964ahiguh1kbcv8o76q, O_RDWR) failed: No space left on device (28) in /var/www/tb-usercake/models/config.php on line 51
Warning: session_start(): Failed to read session data: files (path: /var/lib/php/sessions) in /var/www/tb-usercake/models/config.php on line 51
!7
//set flag DifferentJDA.
//lib 1400185 // discord with opus/JNA (hopefully not a problem)
import net.dv8tion.jda.core.managers.AudioManager; // Note: moved from core to api in JDA 4.0
import net.dv8tion.jda.core.audio.*;
import java.nio.ByteBuffer;
import com.sedmelluq.discord.lavaplayer.player.*;
import com.sedmelluq.discord.lavaplayer.player.event.*;
import com.sedmelluq.discord.lavaplayer.demo.jda.TrackScheduler;
import com.sedmelluq.discord.lavaplayer.track.*;
import com.sedmelluq.discord.lavaplayer.track.playback.*;
import com.sedmelluq.discord.lavaplayer.source.*;
import com.sedmelluq.discord.lavaplayer.tools.*;
//lib 1400286 // lavaplayer 1.3.22
lib 1400288 // lavaplayer fat
lib 1400289 // httpclient
lib 1400290 // httpcore
lib 1400291 // commons-io
lib 1400298 // lavaplayer libconnector.so
lib 1400295 lib 1400296 // logback
lib 1002510 // jsoup
lib 1400299 // apache-commons-logging
static AudioPlayerManager playerManager;
svoid cleanMeUp { dispose playerManager; }
cmodule DiscordAudioSpike > DynTalkBot2 {
S myName = "Discord Audio Spike";
start {
setLoggingLevel(ch.qos.logback.classic.Level.DEBUG);
if (isLinux()) {
//loadNativeLibraryInX30(loadLibrary(#1400293));
loadNativeLibrarySnippet/*InX30*/(#1400293); // libopus
//loadNativeLibrarySnippet/*InX30*/(#1400294); // libconnector
}
makeByServer = () -> new ByServer;
useAGIBlueForDropPunctuation = false;
preprocessAtSelfToMyName = false;
if (playerManager == null) {
playerManager = new DefaultAudioPlayerManager;
AudioSourceManagers.registerLocalSource(playerManager);
AudioSourceManagers.registerRemoteSources(playerManager);
}
}
class ByServer extends DynTalkBot2.ByServer {
synchronized S processSimplifiedLine(S s, O... _) {
try answer super.processSimplifiedLine(s, _); // adding authorized users etc.
new Matches m;
if null (s = dropMyPrefixOrNull(s)) null;
optPar Message msg;
Guild guild = msg == null ? null : msg.getGuild();
if "voice channels"
ret str(guild.getVoiceChannels());
if "join voice channel"
ret joinVoiceChannel(first(guild.getVoiceChannels());
if (eqic(s, "help"))
ret ltrim([[
I'm a Discord Audio Test
[Bot made by https://BotCompany.de]
]]).replace("@me", atSelf());
null;
}
S joinVoiceChannel(VoiceChannel vc) {
if (vc == null) ret "No channel";
Guild guild = vc.getGuild();
AudioManager am = guild.getAudioManager();
AudioPlayer player = playerManager.createPlayer();
TrackScheduler trackScheduler = new(player);
player.addListener(trackScheduler);
player.addListener(e -> {
temp enter();
print("Audio event: " + e);
if (e cast TrackExceptionEvent)
printStackTrace(e.exception);
});
am.setSendingHandler(new AudioPlayerSendHandler(player));
am.openAudioConnection(vc);
/*S trackID = f2s(
//loadLibrary(#1400292) // opus
mp3ToWAVUnlessExists(loadLibrary(#1001093), javaxCachesDir("1001093.wav")) // mp3 -> wav
);*/
S trackID = "http://s3.free-shoutcast.com:18162/;?type=http&nocache=" + randomInt();
playerManager.loadItem(print("Loading: ", trackID), new AudioLoadResultHandler {
public void trackLoaded(AudioTrack track) enter {
//print("Scheduling track " + track);
//trackScheduler.queue(track);
//player.playTrack(track);
print(player.startTrack(track, false));
print("Started track " + track);
print("isPaused: " + player.isPaused());
print("Active track: " + player.getPlayingTrack());
}
public void playlistLoaded(AudioPlaylist playlist) enter {
for (AudioTrack track : playlist.getTracks())
trackScheduler.queue(track);
}
public void noMatches() enter { print("noMatches"); }
public void loadFailed(FriendlyException e) enter {
print("loadFailed: " + e);
printStackTrace(e);
}
});
ret "Audio connection to " + vc.getName() + " opened";
}
}
}
sclass AudioPlayerSendHandler implements AudioSendHandler {
AudioPlayer audioPlayer;
AudioFrame lastFrame;
NotTooOften nto = notTooOften_everySecond();
*(AudioPlayer *audioPlayer) {}
public bool canProvide() {
lastFrame = audioPlayer.provide();
if (nto.yo()) print("canProvide: " + (lastFrame != null));
ret lastFrame != null;
}
public byte[] provide20MsAudio() {
return lastFrame.getData();
}
public bool isOpus() { true; }
}
svoid setLoggingLevel(ch.qos.logback.classic.Level level) {
ch.qos.logback.classic.Logger root = (ch.qos.logback.classic.Logger) org.slf4j.LoggerFactory.getLogger(ch.qos.logback.classic.Logger.ROOT_LOGGER_NAME);
root.setLevel(level);
}