Browse Source

[Hier und da ä bissel]

master
Paul Glaß 3 years ago
parent
commit
62a92f4d61
3 changed files with 31 additions and 15 deletions
  1. +6
    -12
      app/src/main/java/de/yannicpunktdee/yoshibot/listeners/DiscordEventListener.java
  2. +23
    -3
      app/src/main/java/de/yannicpunktdee/yoshibot/utils/StatusProvider.java
  3. +2
    -0
      rsc/.gitignore

+ 6
- 12
app/src/main/java/de/yannicpunktdee/yoshibot/listeners/DiscordEventListener.java View File

@ -49,24 +49,22 @@ public class DiscordEventListener extends ListenerAdapter {
@Override
public void onGuildVoiceJoin(@NotNull GuildVoiceJoinEvent event) {
super.onGuildVoiceJoin(event);
if (event.getMember().getUser().isBot()) return;
if (!AudioPlayerListener.isPlayingTrack()) YoshiBot.getInstance().joinVoiceChannelWithMostMembers();
if (Resources.isGreetings_and_byebyes_on()) {
String nameToPlay = event.getMember().getNickname();
if (nameToPlay == null) nameToPlay = event.getMember().getUser().getName();
YoshiBot.getInstance().sayTTS(
Resources.getRandomGreeting(nameToPlay),
event.getMember().getVoiceState().getChannel());
YoshiBot.getInstance().sayTTS(Resources.getRandomGreeting(nameToPlay), event.getChannelJoined());
}
if (!AudioPlayerListener.isPlayingTrack()) YoshiBot.getInstance().joinVoiceChannelWithMostMembers();
}
@Override
public void onGuildVoiceMove(@NotNull GuildVoiceMoveEvent event) {
super.onGuildVoiceMove(event);
if (event.getMember().getUser().isBot()) return;
VoiceChannel afkChannel = YoshiBot.getInstance().getGuild().getAfkChannel();
String nameToPlay = event.getMember().getNickname();
@ -83,19 +81,15 @@ public class DiscordEventListener extends ListenerAdapter {
@Override
public void onGuildVoiceLeave(@NotNull GuildVoiceLeaveEvent event) {
super.onGuildVoiceLeave(event);
if (event.getMember().getUser().isBot()) return;
if (!AudioPlayerListener.isPlayingTrack()) YoshiBot.getInstance().joinVoiceChannelWithMostMembers();
if (Resources.isGreetings_and_byebyes_on()) {
String nameToPlay = event.getMember().getNickname();
nameToPlay = nameToPlay == null ? event.getMember().getUser().getName() : nameToPlay;
YoshiBot.getInstance().sayTTS(
Resources.getRandomByebye(nameToPlay),
event.getChannelLeft());
YoshiBot.getInstance().sayTTS(Resources.getRandomByebye(nameToPlay), event.getChannelLeft());
}
if (!AudioPlayerListener.isPlayingTrack()) YoshiBot.getInstance().joinVoiceChannelWithMostMembers();
}
}

+ 23
- 3
app/src/main/java/de/yannicpunktdee/yoshibot/utils/StatusProvider.java View File

@ -18,6 +18,8 @@ import java.util.*;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
import java.util.stream.StreamSupport;
@ -46,7 +48,7 @@ public class StatusProvider implements Provider {
this.desc = desc;
this.message_id = messageId;
this.serverPort = serverPort;
this.mcstatus.command(Resources.getPath_to_mcstatus(), Resources.getMc_server() + ":" + serverPort, "json");
this.mcstatus.command(Resources.getPath_to_mcstatus(), Resources.getMc_server() + ":" + serverPort, "query");
File timeStampSave = new File(String.format("%s/%d.txt", Resources.getResourcePath(), serverPort));
timestampLastPlayerOnline = null;
@ -105,7 +107,25 @@ public class StatusProvider implements Provider {
Map<String, Object> result = new HashMap<>();
JSONObject obj = new JSONObject(output);
if (output.startsWith("The server did not respond to the query protocol.")){
result.put("online", false);
return result;
}
String part = output.split("players")[1].replace(",", "").replace("'", "");
String[] players = part.substring(part.indexOf("[")+1, part.indexOf("]")).split(" ");
String playerAmount = part.split(" ")[1];
int playersOnline = Integer.parseInt(playerAmount.split("/")[0]);
int playersMax = Integer.parseInt(playerAmount.split("/")[1]);
result.put("online", true);
result.put("playerCount", playersOnline);
result.put("playerMax", playersMax);
result.put("playerNames", Arrays.asList(players));
/*JSONObject obj = new JSONObject(output);
result.put("online", obj.getBoolean("online"));
@ -118,7 +138,7 @@ public class StatusProvider implements Provider {
result.put("playerNames",
StreamSupport.stream(obj.getJSONArray("players").spliterator(), false)
.map(jsonobj -> ((JSONObject) jsonobj).getString("name")).sorted().collect(
Collectors.toList()));
Collectors.toList()));*/
return result;
}


+ 2
- 0
rsc/.gitignore View File

@ -0,0 +1,2 @@
255*.txt
mcstatus.sh

Loading…
Cancel
Save