1313import javassist .bytecode .Descriptor ;
1414import mod .sin .lib .Prop ;
1515import mod .sin .lib .Util ;
16- import net .dv8tion .jda .core . AccountType ;
17- import net .dv8tion .jda .core . JDA ;
18- import net .dv8tion .jda .core . JDABuilder ;
19- import net .dv8tion .jda .core . MessageBuilder ;
20- import net .dv8tion .jda .core .entities .ChannelType ;
21- import net .dv8tion .jda .core . entities . Game ;
22- import net .dv8tion .jda .core . events . message . MessageReceivedEvent ;
23- import net .dv8tion .jda .core . exceptions . RateLimitedException ;
24- import net . dv8tion . jda . core . hooks . ListenerAdapter ;
16+ import net .dv8tion .jda .api . JDA ;
17+ import net .dv8tion .jda .api . JDABuilder ;
18+ import net .dv8tion .jda .api . entities . Activity ;
19+ import net .dv8tion .jda .api . entities . Activity . ActivityType ;
20+ import net .dv8tion .jda .api .entities . channel .ChannelType ;
21+ import net .dv8tion .jda .api . events . message . MessageReceivedEvent ;
22+ import net .dv8tion .jda .api . hooks . ListenerAdapter ;
23+ import net .dv8tion .jda .api . utils . messages . MessageCreateBuilder ;
24+
2525import org .gotti .wurmunlimited .modloader .classhooks .HookManager ;
2626import org .gotti .wurmunlimited .modloader .interfaces .*;
2727
28- import javax .security .auth .login .LoginException ;
2928import java .text .DateFormat ;
3029import java .text .SimpleDateFormat ;
3130import java .util .Date ;
@@ -42,7 +41,6 @@ public class DiscordRelay extends ListenerAdapter implements WurmServerMod, PreI
4241 protected static JDA jda ;
4342 protected static String botToken = "" ;
4443 protected static String serverName = "" ;
45- //private String wurmBotName;
4644 protected static boolean useUnderscore = false ;
4745 protected static boolean showConnectedPlayers = true ;
4846 protected static int connectedPlayerUpdateInterval = 120 ;
@@ -61,11 +59,16 @@ public void preInit() {
6159 ClassPool classPool = HookManager .getInstance ().getClassPool ();
6260 Class <DiscordRelay > thisClass = DiscordRelay .class ;
6361
62+ //jda = new JDABuilder(AccountType.BOT).setToken(botToken).addEventListener(this).buildBlocking();
63+ jda = JDABuilder .createDefault (botToken ).addEventListeners (this ).build ();
6464 try {
65- jda = new JDABuilder (AccountType .BOT ).setToken (botToken ).addEventListener (this ).buildBlocking ();
66- } catch (LoginException | RateLimitedException | InterruptedException e ) {
67- e .printStackTrace ();
68- }
65+ jda .awaitReady ();
66+ } catch (InterruptedException e1 ) {
67+ // TODO Auto-generated catch block
68+ e1 .printStackTrace ();
69+ logger .info ("Unable to wait untill JDA is ready." );
70+ }
71+
6972
7073 // - Send rumour messages to discord - //
7174 try {
@@ -122,15 +125,16 @@ public void configure(Properties properties) {
122125
123126 private static final DateFormat df = new SimpleDateFormat ("HH:mm:ss" );
124127 public static void sendToDiscord (String channel , String message , boolean includeMap ){
125- MessageBuilder builder = new MessageBuilder ();
128+ MessageCreateBuilder builder = new MessageCreateBuilder ();
129+
126130 message = "[" + df .format (new Date (System .currentTimeMillis ())) + "] " +message ; // Add timestamp
127131 if (includeMap ) {
128132 message = message + " (" + Servers .localServer .mapname + ")" ;
129133 }
130134
131- builder .append (message );
135+ builder .addContent (message );
132136 try {
133- jda .getGuildsByName ( serverName , true ). get ( 0 ). getTextChannelsByName (channel , true ).get (0 ).sendMessage (builder .build ()).queue ();
137+ jda .getTextChannelsByName (channel , true ).get (0 ).sendMessage (builder .build ()).queue ();
134138 }catch (Exception e ){
135139 e .printStackTrace ();
136140 logger .info ("Discord Relay failure: #" +channel +" - " +message );
@@ -146,16 +150,13 @@ public MessagePolicy onKingdomMessage(Message message) {
146150 }
147151 }else if (window .startsWith ("GL-" )){
148152 byte kingdomId = message .getSender ().getKingdomId ();
149- //Kingdom kingdom = Kingdoms.getKingdom(kingdomId);
153+
150154 String kingdomName = discordifyName ("GL-" +Kingdoms .getChatNameFor (kingdomId ));
151155 sendToDiscord (kingdomName , message .getMessage (), false );
152- /*MessageBuilder builder = new MessageBuilder();
153156
154- builder.append(message.getMessage());
155- jda.getGuildsByName(serverName, true).get(0).getTextChannelsByName(kingdomName, true).get(0).sendMessage(builder.build()).queue();*/
156157 }else {
157158 byte kingdomId = message .getSender ().getKingdomId ();
158- //Kingdom kingdom = Kingdoms.getKingdom(kingdomId);
159+
159160 String kingdomName = discordifyName (Kingdoms .getChatNameFor (kingdomId ));
160161 sendToDiscord (kingdomName , message .getMessage (), false );
161162 }
@@ -208,7 +209,6 @@ public void sendToGlobalKingdomChat(final String channel, final String message)
208209 }
209210 }
210211 if (kingdomId != -1 ) {
211- //long wurmId = -10;
212212
213213 String window = "" ;
214214 if (global ){
@@ -238,21 +238,22 @@ public MessagePolicy onAllianceMessage(PvPAlliance alliance, Message message) {
238238 public void onMessageReceived (MessageReceivedEvent event ) {
239239 super .onMessageReceived (event );
240240 if (event .isFromType (ChannelType .TEXT ) && !event .getAuthor ().isBot ()) {
241- String name = event .getTextChannel ().getName ();
241+
242+ String name = event .getChannel ().getName ();
242243 if (name .contains ("trade" )){
243244 if (enableTrade ) {
244- sendToTradeChat (name , "<@" + event .getMember ().getEffectiveName () + "> " + event .getMessage ().getContent ());
245+ sendToTradeChat (name , "<@" + event .getMember ().getEffectiveName () + "> " + event .getMessage ().getContentDisplay ());
245246 }
246247 } else if (name .contains (discordifyName ("ca-help" ))){
247248 if (enableCAHELP ) {
248- sendToHelpChat (name , "<@" + event .getMember ().getEffectiveName () + "> " + event .getMessage ().getContent ());
249+ sendToHelpChat (name , "<@" + event .getMember ().getEffectiveName () + "> " + event .getMessage ().getContentDisplay ());
249250 }
250251 } else if (name .contains ("mgmt" )){
251252 if (enableMGMT ) {
252- sendToMGMTChat (name , "<@" + event .getMember ().getEffectiveName () + "> " + event .getMessage ().getContent ());
253+ sendToMGMTChat (name , "<@" + event .getMember ().getEffectiveName () + "> " + event .getMessage ().getContentDisplay ());
253254 }
254255 } else {
255- sendToGlobalKingdomChat (name , "<@" + event .getMember ().getEffectiveName () + "> " + event .getMessage ().getContent ());
256+ sendToGlobalKingdomChat (name , "<@" + event .getMember ().getEffectiveName () + "> " + event .getMessage ().getContentDisplay ());
256257 }
257258 }
258259 }
@@ -295,13 +296,14 @@ public boolean onPlayerMessage(Communicator var1, String var2) {
295296
296297 protected static long lastPolledPlayers = 0 ;
297298 protected static long pollPlayerInterval = TimeConstants .SECOND_MILLIS *120 ;
299+
298300 @ Override
299301 public void onServerPoll () {
300302 if (showConnectedPlayers ) {
301303 if (System .currentTimeMillis () > lastPolledPlayers + pollPlayerInterval ) {
302304 if (Servers .localServer .LOGINSERVER ) {
303305 try {
304- jda .getPresence ().setGame ( Game .of (Players .getInstance ().getNumberOfPlayers () + " online!" ));
306+ jda .getPresence ().setActivity ( Activity .of (ActivityType . PLAYING , Players .getInstance ().getNumberOfPlayers () + " online!" ));
305307 }catch (Exception e ){
306308 //e.printStackTrace();
307309 //logger.info("Failed to update player count.");
0 commit comments