1111import javassist .CtClass ;
1212import javassist .NotFoundException ;
1313import javassist .bytecode .Descriptor ;
14+ import mod .sin .lib .Prop ;
1415import mod .sin .lib .Util ;
1516import net .dv8tion .jda .core .AccountType ;
1617import net .dv8tion .jda .core .JDA ;
@@ -48,7 +49,8 @@ public class DiscordRelay extends ListenerAdapter implements WurmServerMod, PreI
4849 protected static boolean enableRumors = true ;
4950 protected static String rumorChannel = "rumors" ;
5051 protected static boolean enableTrade = true ;
51-
52+ protected static boolean enableMGMT = true ;
53+ protected static boolean enableCAHELP = true ;
5254
5355 public static void sendRumour (Creature creature ){
5456 sendToDiscord (rumorChannel , "Rumours of " + creature .getName () + " are starting to spread." , true );
@@ -97,6 +99,8 @@ public void preInit() {
9799
98100 @ Override
99101 public void configure (Properties properties ) {
102+ Prop .properties = properties ;
103+
100104 botToken = properties .getProperty ("botToken" , botToken );
101105 if (botToken .equals ("" )){
102106 logger .warning ("Discord bot token not entered for DiscordRelay. The bot will not function without this." );
@@ -112,6 +116,8 @@ public void configure(Properties properties) {
112116 enableRumors = Boolean .parseBoolean (properties .getProperty ("enableRumors" , Boolean .toString (enableRumors )));
113117 rumorChannel = properties .getProperty ("rumorChannel" , rumorChannel );
114118 enableTrade = Boolean .parseBoolean (properties .getProperty ("enableTrade" , Boolean .toString (enableTrade )));
119+ enableMGMT = Prop .getBooleanProperty ("enableMGMT" , enableMGMT );
120+ enableCAHELP = Prop .getBooleanProperty ("enableCAHELP" , enableCAHELP );
115121 }
116122
117123 private static final DateFormat df = new SimpleDateFormat ("HH:mm:ss" );
@@ -157,6 +163,24 @@ public MessagePolicy onKingdomMessage(Message message) {
157163 return MessagePolicy .PASS ;
158164 }
159165
166+ public void sendToHelpChat (final String channel , final String message ){
167+ String window = "CA HELP" ;
168+ final Message mess = new Message (null , Message .CA , window , message );
169+ mess .setSenderKingdom ((byte ) 4 );
170+ if (message .trim ().length () > 1 ) {
171+ Server .getInstance ().addMessage (mess );
172+ }
173+ }
174+
175+ public void sendToMGMTChat (final String channel , final String message ){
176+ String window = "MGMT" ;
177+ final Message mess = new Message (null , Message .MGMT , window , message );
178+ mess .setSenderKingdom ((byte ) 4 );
179+ if (message .trim ().length () > 1 ) {
180+ Server .getInstance ().addMessage (mess );
181+ }
182+ }
183+
160184 public void sendToTradeChat (final String channel , final String message ){
161185 String window = "Trade" ;
162186 final Message mess = new Message (null , Message .TRADE , window , message );
@@ -219,7 +243,15 @@ public void onMessageReceived(MessageReceivedEvent event) {
219243 if (enableTrade ) {
220244 sendToTradeChat (name , "<@" + event .getMember ().getEffectiveName () + "> " + event .getMessage ().getContent ());
221245 }
222- }else {
246+ } else if (name .contains (discordifyName ("ca-help" ))){
247+ if (enableCAHELP ) {
248+ sendToHelpChat (name , "<@" + event .getMember ().getEffectiveName () + "> " + event .getMessage ().getContent ());
249+ }
250+ } else if (name .contains ("mgmt" )){
251+ if (enableMGMT ) {
252+ sendToMGMTChat (name , "<@" + event .getMember ().getEffectiveName () + "> " + event .getMessage ().getContent ());
253+ }
254+ } else {
223255 sendToGlobalKingdomChat (name , "<@" + event .getMember ().getEffectiveName () + "> " + event .getMessage ().getContent ());
224256 }
225257 }
@@ -234,10 +266,25 @@ private String discordifyName(String name) {
234266 }
235267 }
236268
269+ protected static String getPlayerPrefix (Communicator comm ){
270+ if (comm .getPlayer () != null ) {
271+ return "<" + comm .getPlayer ().getName () + "> " ;
272+ }
273+ logger .warning ("Could not find player for a communicator." );
274+ return "<???>" ;
275+ }
276+
237277 @ Override
238278 public MessagePolicy onPlayerMessage (Communicator communicator , String message , String title ){
239- /*if(title.equals("Trade")){
240- }*/
279+ // Skip commands
280+ if (message .startsWith ("!" ) || message .startsWith ("/" ) || message .startsWith ("#" )){
281+ return MessagePolicy .PASS ;
282+ }
283+ if (title .equals ("MGMT" )){
284+ sendToDiscord ("mgmt" , getPlayerPrefix (communicator ) + message , false );
285+ } else if (title .equals ("CA HELP" )) {
286+ sendToDiscord (discordifyName ("ca-help" ), getPlayerPrefix (communicator ) + message , false );
287+ }
241288 return MessagePolicy .PASS ;
242289 }
243290
@@ -256,8 +303,8 @@ public void onServerPoll() {
256303 try {
257304 jda .getPresence ().setGame (Game .of (Players .getInstance ().getNumberOfPlayers () + " online!" ));
258305 }catch (Exception e ){
259- e .printStackTrace ();
260- logger .info ("Failed to update player count." );
306+ // e.printStackTrace();
307+ // logger.info("Failed to update player count.");
261308 }
262309 }
263310 lastPolledPlayers = System .currentTimeMillis ();
0 commit comments