Skip to content

Commit 71691e5

Browse files
committed
Update to include MGMT and CA HELP discord relay channels.
1 parent 25ab0f2 commit 71691e5

File tree

3 files changed

+74
-15
lines changed

3 files changed

+74
-15
lines changed

build.gradle

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ apply plugin: 'com.github.johnrengelman.shadow'
1313

1414
group = 'org.nyxcode.wurm'
1515

16-
version = '2.1'
16+
version = '3.0'
1717

1818
description = "A mod that acts as a discord relay between Wurm kingdom chat and a discord server"
1919

@@ -23,14 +23,15 @@ targetCompatibility = 1.8
2323
repositories {
2424
mavenCentral()
2525
maven { url "http://jcenter.bintray.com" }
26-
maven { url "http://gotti.no-ip.org/maven/repository" }
26+
maven { url "https://dl.bdew.net/agorepo/" }
2727
maven { url "http://repo.maven.apache.org/maven2" }
2828
maven { url 'https://jitpack.io' }
2929
}
30+
3031
dependencies {
3132
compile 'net.dv8tion:JDA:3.3.1_289'
32-
compile 'org.gotti.wurmunlimited:server-modlauncher:0.35-beta1'
33-
compile 'com.github.Sindusk:sindusklibrary:v1.1'
33+
compile 'org.gotti.wurmunlimited:server-modlauncher:0.40'
34+
compile 'com.github.Sindusk:sindusklibrary:v2.1'
3435
}
3536

3637
jar {
@@ -39,9 +40,9 @@ jar {
3940

4041
shadowJar {
4142
dependencies {
42-
exclude(dependency('org.gotti.wurmunlimited:server-modlauncher:0.35-beta1'))
43-
exclude(dependency('org.gotti.wurmunlimited:common:2182584'))
44-
exclude(dependency('org.gotti.wurmunlimited:server:2182584'))
43+
exclude(dependency('org.gotti.wurmunlimited:server-modlauncher:0.40'))
44+
exclude(dependency('org.gotti.wurmunlimited:common:3127452'))
45+
exclude(dependency('org.gotti.wurmunlimited:server:3127452'))
4546
}
4647
}
4748

mods/DiscordRelay.properties

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ botToken=
1212
discordServerName=ServerName
1313

1414
# useUnderscore: This will determine whether to replace white space with underscores or remove whitespace entirely.
15-
# Example: True - #ca_help. False - #cahelp
1615
useUnderscore=true
1716

1817
# showConnectedPlayers: Whether or not to show the amount of players connected as the "game" description of the bot in Discord.
@@ -30,4 +29,16 @@ enableRumors=true
3029
# enableTrade: Whether or not to enable the global trade relay.
3130
# Any messages sent to trade in-game will be relayed to a global #trade channel in Discord.
3231
# Any messages sent to the #trade channel in Discord will be relayed in-game to all kingdom's trade chats.
33-
enableTrade=true
32+
enableTrade=true
33+
34+
# enableMGMT: Whether to enable MGMT relay
35+
# Any message sent to MGMT in-game will be relayed to a global #mgmt channel in Discord.
36+
# Any messages sent to the #mgmt channel in Discord will be relayed in-game to all players able to see the window.
37+
# Permissions to see #mgmt in Discord must be configured by the server administrator.
38+
# Permissions to see MGMT in-game is dictated by the in-game player status (CA, CM, GM, etc.)
39+
enableMGMT=true
40+
41+
# enableCAHELP: Whether to enable CA HELP relay
42+
# Any messages sent to CA HELP in-game will be relayed to #ca-help in Discord.
43+
# Any messages sent to #ca-help in discord will be relayed in-game to CA HELP.
44+
enableCAHELP=true

src/main/java/org/nyxcode/wurm/discordrelay/DiscordRelay.java

Lines changed: 53 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import javassist.CtClass;
1212
import javassist.NotFoundException;
1313
import javassist.bytecode.Descriptor;
14+
import mod.sin.lib.Prop;
1415
import mod.sin.lib.Util;
1516
import net.dv8tion.jda.core.AccountType;
1617
import 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

Comments
 (0)