diff --git a/dependency-reduced-pom.xml b/dependency-reduced-pom.xml index 16739ca..1a2a882 100644 --- a/dependency-reduced-pom.xml +++ b/dependency-reduced-pom.xml @@ -178,10 +178,16 @@ 1.2.3 compile + + com.cnaude + RedditStream + 0.2 + compile + com.kitteh.vanish VanishNoPacket - 3.19.1 + 3.18.7 compile diff --git a/pom.xml b/pom.xml index c74551e..ba5e31f 100644 --- a/pom.xml +++ b/pom.xml @@ -142,6 +142,13 @@ 1.2.3 + + + com.cnaude + RedditStream + 0.2 + + com.kitteh.vanish diff --git a/src/main/java/com/cnaude/purpleirc/GameListeners/RedditStreamListener.java b/src/main/java/com/cnaude/purpleirc/GameListeners/RedditStreamListener.java new file mode 100644 index 0000000..c3d3305 --- /dev/null +++ b/src/main/java/com/cnaude/purpleirc/GameListeners/RedditStreamListener.java @@ -0,0 +1,36 @@ +package com.cnaude.purpleirc.GameListeners; + +import com.cnaude.purpleirc.PurpleBot; +import com.cnaude.purpleirc.PurpleIRC; +import io.github.wolf_359.RedditBroadcastEvent; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; + +/** + * + * @author cnaude + */ +public class RedditStreamListener implements Listener { + + private final PurpleIRC plugin; + + /** + * + * @param plugin + */ + public RedditStreamListener(PurpleIRC plugin) { + this.plugin = plugin; + } + + /** + * + * @param event + */ + @EventHandler + public void onRedditBroadcastEvent(RedditBroadcastEvent event) { + plugin.logDebug("onRedditBroadcastEvent caught"); + for (PurpleBot ircBot : plugin.ircBots.values()) { + ircBot.redditStreamBroadcast(event.getMessage()); + } + } +} diff --git a/src/main/java/com/cnaude/purpleirc/PurpleBot.java b/src/main/java/com/cnaude/purpleirc/PurpleBot.java index 18f6368..7dc41d6 100644 --- a/src/main/java/com/cnaude/purpleirc/PurpleBot.java +++ b/src/main/java/com/cnaude/purpleirc/PurpleBot.java @@ -1257,6 +1257,21 @@ public void consoleBroadcast(String message) { } } } + + /** + * + * @param message + */ + public void redditStreamBroadcast(String message) { + if (!this.isConnected()) { + return; + } + for (String channelName : botChannels) { + if (isMessageEnabled(channelName, TemplateName.REDDIT_MESSAGES)) { + asyncIRCMessage(channelName, plugin.tokenizer.gameChatToIRCTokenizer(plugin.getMsgTemplate(botNick, TemplateName.REDDIT_MESSAGES), message)); + } + } + } /** * diff --git a/src/main/java/com/cnaude/purpleirc/PurpleIRC.java b/src/main/java/com/cnaude/purpleirc/PurpleIRC.java index b461b05..bd031cc 100644 --- a/src/main/java/com/cnaude/purpleirc/PurpleIRC.java +++ b/src/main/java/com/cnaude/purpleirc/PurpleIRC.java @@ -17,6 +17,7 @@ import com.cnaude.purpleirc.GameListeners.McMMOChatListener; import com.cnaude.purpleirc.GameListeners.OreBroadcastListener; import com.cnaude.purpleirc.GameListeners.PrismListener; +import com.cnaude.purpleirc.GameListeners.RedditStreamListener; import com.cnaude.purpleirc.GameListeners.ReportRTSListener; import com.cnaude.purpleirc.GameListeners.TitanChatListener; import com.cnaude.purpleirc.GameListeners.TownyChatListener; @@ -223,6 +224,12 @@ public void onEnable() { } else { logInfo("Prism not detected."); } + if (isPluginEnabled("RedditStream")) { + logInfo("Enabling RedditStream support."); + getServer().getPluginManager().registerEvents(new RedditStreamListener(this), this); + } else { + logInfo("RedditStream not detected."); + } if (isPluginEnabled("TownyChat")) { logInfo("Enabling TownyChat support."); getServer().getPluginManager().registerEvents(new TownyChatListener(this), this); diff --git a/src/main/java/com/cnaude/purpleirc/TemplateName.java b/src/main/java/com/cnaude/purpleirc/TemplateName.java index 7d8e6bb..8e52421 100644 --- a/src/main/java/com/cnaude/purpleirc/TemplateName.java +++ b/src/main/java/com/cnaude/purpleirc/TemplateName.java @@ -101,5 +101,7 @@ public class TemplateName { public final static String PRISM_DRAIN = "prism-drain"; public final static String PRISM_EXTINGUISH = "prism-extinguish"; public final static String PRISM_CUSTOM = "prism-custom"; + + public final static String REDDIT_MESSAGES = "reddit-messages"; } diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index 919a98d..d28e5dc 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -171,6 +171,8 @@ message-format: prism-drain: '[PrismDrain] [Player: %NAME%] [Radius: %RADIUS%] [OrigBlock: %ORIGINALBLOCK%] [NewBlock: %NEWBLOCK%] [X,Y,Z: %X%,%Y%,%Z%] [World: %BLOCKWORLD%]' prism-extinguish: '[PrismExtinguish] [Player: %NAME%] [Radius%: %RADIUS] [OrigBlock: %ORIGINALBLOCK%] [NewBlock: %NEWBLOCK%] [X,Y,Z: %X%,%Y%,%Z%] [World: %BLOCKWORLD%]' prism-custom: '[PrismCustom] [Player: %NAME%] [Action: %ACTION%] [Message: %MESSAGE%] [Plugin: %PLUGIN%]' + # RedditStream + reddit-messages: '[R] %MESSAGE%' # Defaults below take effect when user joins IRC and matching player is offline default-player-suffix: '' default-player-prefix: ''