Implemented player list + Fixed early msg error
- The description of the mcchat channel now contains the list of online players - Fixed error if someone said something on Discord when the plugin wasn't ready (Left the debug msgs in and had to force close Eclipse so it doesn't get pushed)
This commit is contained in:
parent
51adad4bd6
commit
08fae9b73b
3 changed files with 36 additions and 13 deletions
|
@ -4,9 +4,11 @@ import java.awt.Color;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
import java.util.Calendar;
|
import java.util.Calendar;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.event.player.PlayerQuitEvent;
|
import org.bukkit.event.player.PlayerQuitEvent;
|
||||||
|
@ -143,6 +145,20 @@ public class DiscordPlugin extends JavaPlugin implements IListener<ReadyEvent> {
|
||||||
"The plugin refuses to load until you change the token to the testing account."));
|
"The plugin refuses to load until you change the token to the testing account."));
|
||||||
Bukkit.getPluginManager().disablePlugin(this);
|
Bukkit.getPluginManager().disablePlugin(this);
|
||||||
}
|
}
|
||||||
|
TBMCCoreAPI.SendUnsentExceptions();
|
||||||
|
TBMCCoreAPI.SendUnsentDebugMessages();
|
||||||
|
if (!TBMCCoreAPI.IsTestServer()) {
|
||||||
|
final Calendar currentCal = Calendar.getInstance();
|
||||||
|
final Calendar newCal = Calendar.getInstance();
|
||||||
|
currentCal.set(currentCal.get(Calendar.YEAR), currentCal.get(Calendar.MONTH),
|
||||||
|
currentCal.get(Calendar.DAY_OF_MONTH), 4, 10);
|
||||||
|
if (currentCal.get(Calendar.DAY_OF_MONTH) % 9 == 0 && currentCal.before(newCal)) {
|
||||||
|
Random rand = new Random();
|
||||||
|
sendMessageToChannel(dc.getChannels().get(rand.nextInt(dc.getChannels().size())),
|
||||||
|
"You could make a religion out of this");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
updatePlayerList();
|
||||||
}
|
}
|
||||||
}, 0, 10);
|
}, 0, 10);
|
||||||
for (IListener<?> listener : CommandListener.getListeners())
|
for (IListener<?> listener : CommandListener.getListeners())
|
||||||
|
@ -157,19 +173,6 @@ public class DiscordPlugin extends JavaPlugin implements IListener<ReadyEvent> {
|
||||||
TBMCCoreAPI.RegisterUserClass(DiscordPlayer.class);
|
TBMCCoreAPI.RegisterUserClass(DiscordPlayer.class);
|
||||||
new Thread(this::AnnouncementGetterThreadMethod).start();
|
new Thread(this::AnnouncementGetterThreadMethod).start();
|
||||||
setupProviders();
|
setupProviders();
|
||||||
TBMCCoreAPI.SendUnsentExceptions();
|
|
||||||
TBMCCoreAPI.SendUnsentDebugMessages();
|
|
||||||
if (!TBMCCoreAPI.IsTestServer()) {
|
|
||||||
final Calendar currentCal = Calendar.getInstance();
|
|
||||||
final Calendar newCal = Calendar.getInstance();
|
|
||||||
currentCal.set(currentCal.get(Calendar.YEAR), currentCal.get(Calendar.MONTH),
|
|
||||||
currentCal.get(Calendar.DAY_OF_MONTH), 4, 10);
|
|
||||||
if (currentCal.get(Calendar.DAY_OF_MONTH) % 9 == 0 && currentCal.before(newCal)) {
|
|
||||||
Random rand = new Random();
|
|
||||||
sendMessageToChannel(dc.getChannels().get(rand.nextInt(dc.getChannels().size())),
|
|
||||||
"You could make a religion out of this");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/*
|
/*
|
||||||
* IDiscordOAuth doa = new DiscordOAuthBuilder(dc).withClientID("226443037893591041") .withClientSecret(getConfig().getString("appsecret")) .withRedirectUrl("https://" +
|
* IDiscordOAuth doa = new DiscordOAuthBuilder(dc).withClientID("226443037893591041") .withClientSecret(getConfig().getString("appsecret")) .withRedirectUrl("https://" +
|
||||||
* (TBMCCoreAPI.IsTestServer() ? "localhost" : "server.figytuna.com") + ":8081/callback") .withScopes(Scope.IDENTIFY).withHttpServerOptions(new HttpServerOptions().setPort(8081))
|
* (TBMCCoreAPI.IsTestServer() ? "localhost" : "server.figytuna.com") + ":8081/callback") .withScopes(Scope.IDENTIFY).withHttpServerOptions(new HttpServerOptions().setPort(8081))
|
||||||
|
@ -355,4 +358,20 @@ public class DiscordPlugin extends JavaPlugin implements IListener<ReadyEvent> {
|
||||||
return null;
|
return null;
|
||||||
return RequestBuffer.request(action).get(); // Let the pros handle this
|
return RequestBuffer.request(action).get(); // Let the pros handle this
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void updatePlayerList() {
|
||||||
|
perform(() -> {
|
||||||
|
String[] s = chatchannel.getTopic().split("\\n----\\n");
|
||||||
|
//System.out.println("Len: " + s.length);
|
||||||
|
//System.out.println("s0: " + s[0]);
|
||||||
|
if (s.length < 3)
|
||||||
|
return;
|
||||||
|
s[0] = Bukkit.getOnlinePlayers().size() + " player" + (Bukkit.getOnlinePlayers().size() != 1 ? "s" : "")
|
||||||
|
+ " online";
|
||||||
|
s[s.length - 1] = "Players: " + Bukkit.getOnlinePlayers().stream()
|
||||||
|
.map(p -> DiscordPlugin.sanitizeString(p.getDisplayName())).collect(Collectors.joining(", "));
|
||||||
|
//System.out.println("s0 after: " + s[0]);
|
||||||
|
chatchannel.changeTopic(Arrays.stream(s).collect(Collectors.joining("\n----\n")));
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -222,6 +222,8 @@ public class MCChatListener implements Listener, IListener<MessageReceivedEvent>
|
||||||
|
|
||||||
@Override // Discord
|
@Override // Discord
|
||||||
public void handle(MessageReceivedEvent event) {
|
public void handle(MessageReceivedEvent event) {
|
||||||
|
if (DiscordPlugin.SafeMode)
|
||||||
|
return;
|
||||||
val author = event.getMessage().getAuthor();
|
val author = event.getMessage().getAuthor();
|
||||||
val user = DiscordPlayer.getUser(author.getStringID(), DiscordPlayer.class);
|
val user = DiscordPlayer.getUser(author.getStringID(), DiscordPlayer.class);
|
||||||
if (!event.getMessage().getChannel().getStringID().equals(DiscordPlugin.chatchannel.getStringID())
|
if (!event.getMessage().getChannel().getStringID().equals(DiscordPlugin.chatchannel.getStringID())
|
||||||
|
|
|
@ -61,6 +61,7 @@ public class MCListener implements Listener {
|
||||||
}
|
}
|
||||||
MCChatListener.sendSystemMessageToChat(e.GetPlayer().PlayerName().get() + " joined the game");
|
MCChatListener.sendSystemMessageToChat(e.GetPlayer().PlayerName().get() + " joined the game");
|
||||||
MCChatListener.ListC = 0;
|
MCChatListener.ListC = 0;
|
||||||
|
DiscordPlugin.updatePlayerList();
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler(priority = EventPriority.HIGHEST)
|
@EventHandler(priority = EventPriority.HIGHEST)
|
||||||
|
@ -73,6 +74,7 @@ public class MCListener implements Listener {
|
||||||
.filter(s -> s.getUniqueId().equals(e.getPlayer().getUniqueId())).findAny()
|
.filter(s -> s.getUniqueId().equals(e.getPlayer().getUniqueId())).findAny()
|
||||||
.ifPresent(dcp -> callEventExcluding(new PlayerJoinEvent(dcp, ""), "ProtocolLib"));
|
.ifPresent(dcp -> callEventExcluding(new PlayerJoinEvent(dcp, ""), "ProtocolLib"));
|
||||||
MCChatListener.sendSystemMessageToChat(e.GetPlayer().PlayerName().get() + " left the game");
|
MCChatListener.sendSystemMessageToChat(e.GetPlayer().PlayerName().get() + " left the game");
|
||||||
|
DiscordPlugin.updatePlayerList();
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
|
|
Loading…
Reference in a new issue