Warning: session_start(): open(/var/lib/php/sessions/sess_gltkra82t2m8a1ij8cdg3pb626, 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.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
static AudioPlayerManager playerManager;
svoid cleanMeUp { dispose playerManager; }
cmodule DiscordAudioSpike > DynTalkBot2 {
S myName = "Discord Audio Spike";
start {
if (isLinux()) {
loadNativeLibraryInX30(copyFile(loadLibrary(#1400293), javaxCodeDir("libopus.so")));
//loadNativeLibrarySnippetInX30(#1400293);
}
makeByServer = () -> new ByServer;
useAGIBlueForDropPunctuation = false;
preprocessAtSelfToMyName = false;
if (playerManager == null) {
playerManager = new DefaultAudioPlayerManager;
AudioSourceManagers.registerLocalSource(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);
am.setSendingHandler(new AudioPlayerSendHandler(player));
am.openAudioConnection(vc);
playerManager.loadItem(f2s(loadLibrary(
//#1400292 // opus
#1001093 // mp3
)), 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 throwable) enter { print("loadFailed"); }
});
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; }
}