11package org .nyxcode .wurm .discordrelay ;
22
3- import com .wurmonline .server .*;
3+ import com .wurmonline .server .Message ;
4+ import com .wurmonline .server .Server ;
5+ import com .wurmonline .server .creatures .Communicator ;
46import com .wurmonline .server .kingdom .Kingdom ;
57import com .wurmonline .server .kingdom .Kingdoms ;
68import com .wurmonline .server .villages .PvPAlliance ;
79import com .wurmonline .server .villages .Village ;
8- import com .wurmonline .server .webinterface .WcKingdomChat ;
910import net .dv8tion .jda .core .AccountType ;
1011import net .dv8tion .jda .core .JDA ;
1112import net .dv8tion .jda .core .JDABuilder ;
1718import org .gotti .wurmunlimited .modloader .interfaces .*;
1819
1920import javax .security .auth .login .LoginException ;
21+ import java .text .DateFormat ;
22+ import java .text .SimpleDateFormat ;
2023import java .util .Arrays ;
24+ import java .util .Date ;
2125import java .util .List ;
2226import java .util .Properties ;
27+ import java .util .logging .Logger ;
2328
2429
2530/**
2631 * Created by whisper2shade on 22.04.2017.
2732 */
28- public class DiscordRelay extends ListenerAdapter implements WurmServerMod , PreInitable , Configurable , ChannelMessageListener {
33+ public class DiscordRelay extends ListenerAdapter implements WurmServerMod , PreInitable , Configurable , ChannelMessageListener , PlayerMessageListener {
34+ public static final Logger logger = Logger .getLogger (DiscordRelay .class .getName ());
2935
30-
31- private JDA jda ;
32- private String botToken ;
33- private String serverName ;
34- private String wurmBotName ;
36+ private static JDA jda ;
37+ private static String botToken ;
38+ private static String serverName ;
39+ //private String wurmBotName;
3540 private boolean useUnderscore ;
3641
37-
42+ @ Override
3843 public void preInit () {
39- initJDA ();
40- }
41-
42- private void initJDA () {
4344 try {
44- jda = new JDABuilder (AccountType .BOT ).setToken (botToken ).addEventListener (this ).buildAsync ();
45+ jda = new JDABuilder (AccountType .BOT ).setToken (botToken ).addEventListener (this ).buildBlocking ();
4546 } catch (LoginException e ) {
4647 e .printStackTrace ();
48+ } catch (InterruptedException e ) {
49+ e .printStackTrace ();
4750 } catch (RateLimitedException e ) {
4851 e .printStackTrace ();
4952 }
5053 }
5154
55+ @ Override
5256 public void configure (Properties properties ) {
5357 botToken = properties .getProperty ("botToken" );
5458 serverName = properties .getProperty ("discordServerName" );
55- wurmBotName = properties .getProperty ("wurmBotName" );
59+ // wurmBotName = properties.getProperty("wurmBotName");
5660 useUnderscore = Boolean .parseBoolean (properties .getProperty ("useUnderscore" , "false" ));
5761 }
5862
59- public MessagePolicy onKingdomMessage (Message message ) {
60- byte kingdomId = message .getSender ().getKingdomId ();
61- Kingdom kingdom = Kingdoms .getKingdom (kingdomId );
62- String kingdomName = discordifyName (kingdom .getName ());
63+ private static final DateFormat df = new SimpleDateFormat ("HH:mm:ss" );
64+ public static void sendToDiscord (String channel , String message ){
6365 MessageBuilder builder = new MessageBuilder ();
66+ message = "[" + df .format (new Date (System .currentTimeMillis ())) + "] " +message ; // Add timestamp
67+
68+ builder .append (message );
69+ jda .getGuildsByName (serverName , true ).get (0 ).getTextChannelsByName (channel , true ).get (0 ).sendMessage (builder .build ()).queue ();
70+ }
6471
65- builder .append (message .getMessage ());
66- jda .getGuildsByName (serverName , true ).get (0 ).getTextChannelsByName (kingdomName , true ).get (0 ).sendMessage (builder .build ()).queue ();
72+ @ Override
73+ public MessagePolicy onKingdomMessage (Message message ) {
74+ if (message .getWindow ().startsWith ("GL-" )){
75+ byte kingdomId = message .getSender ().getKingdomId ();
76+ //Kingdom kingdom = Kingdoms.getKingdom(kingdomId);
77+ String kingdomName = discordifyName ("GL-" +Kingdoms .getChatNameFor (kingdomId ));
78+ sendToDiscord (kingdomName , message .getMessage ());
79+ /*MessageBuilder builder = new MessageBuilder();
80+
81+ builder.append(message.getMessage());
82+ jda.getGuildsByName(serverName, true).get(0).getTextChannelsByName(kingdomName, true).get(0).sendMessage(builder.build()).queue();*/
83+ }
6784
6885 return MessagePolicy .PASS ;
6986 }
7087
7188 public void sendToGlobalKingdomChat (final String channel , final String message ) {
72-
7389 List <Kingdom > kingdoms = Arrays .asList (Kingdoms .getAllKingdoms ());
7490
7591 byte kingdomId = -1 ;
7692
7793 for (Kingdom kingdom : kingdoms ) {
78- if (discordifyName (kingdom .getName ( )).equals (channel .toLowerCase ())) {
94+ if (discordifyName ("GL-" + Kingdoms . getChatNameFor ( kingdom .getId () )).equals (channel .toLowerCase ())) {
7995 kingdomId = kingdom .getId ();
8096 }
8197 }
8298 if (kingdomId != -1 ) {
83- long wurmId = -10 ;
99+ // long wurmId = -10;
84100
85- final Message mess = new Message (null , Message .GLOBKINGDOM , Kingdoms .getChatNameFor (kingdomId ), "<" + wurmBotName + "> "
101+ final Message mess = new Message (null , Message .GLOBKINGDOM , "GL-" + Kingdoms .getChatNameFor (kingdomId ), "[D] " // "<" + wurmBotName + "> "
86102 + message );
87103 mess .setSenderKingdom (kingdomId );
88104 if (message .trim ().length () > 1 ) {
89105 Server .getInstance ().addMessage (mess );
90- final WcKingdomChat wc = new WcKingdomChat (WurmId .getNextWCCommandId (),
91- wurmId , wurmBotName , message , false , kingdomId ,
106+ /* final WcKingdomChat wc = new WcKingdomChat(WurmId.getNextWCCommandId(),
107+ wurmId, "[D]" , message, false, kingdomId,
92108 -1,
93109 -1,
94- -1 );
95- if (Servers .localServer .LOGINSERVER )
110+ -1);*/
111+ /* if (Servers.localServer.LOGINSERVER){
96112 wc.sendFromLoginServer();
97- else
98- wc .sendToLoginServer ();
113+ }*/
114+ //else
115+ //wc.sendToLoginServer();
99116 }
100117 }
101118 }
102119
120+ @ Override
103121 public MessagePolicy onVillageMessage (Village village , Message message ) {
104122 return MessagePolicy .PASS ;
105123 }
106124
125+ @ Override
107126 public MessagePolicy onAllianceMessage (PvPAlliance alliance , Message message ) {
108127 return MessagePolicy .PASS ;
109128 }
@@ -113,7 +132,7 @@ public void onMessageReceived(MessageReceivedEvent event) {
113132 super .onMessageReceived (event );
114133 if (event .isFromType (ChannelType .TEXT ) && !event .getAuthor ().isBot ()) {
115134 String name = event .getTextChannel ().getName ();
116- sendToGlobalKingdomChat (name , "<" + event .getAuthor ().getName () + "> " + event .getMessage ().getContent ());
135+ sendToGlobalKingdomChat (name , "<" + event .getMember ().getNickname () + "> " + event .getMessage ().getContent ());
117136 }
118137 }
119138
@@ -125,4 +144,17 @@ private String discordifyName(String name) {
125144 return name .replace (" " , "" );
126145 }
127146 }
147+
148+ @ Override
149+ public MessagePolicy onPlayerMessage (Communicator communicator , String message , String title ){
150+ if (title .equals ("Trade" )){
151+
152+ }
153+ return MessagePolicy .PASS ;
154+ }
155+
156+ @ Override
157+ public boolean onPlayerMessage (Communicator var1 , String var2 ) {
158+ return false ;
159+ }
128160}
0 commit comments