diff --git a/pom.xml b/pom.xml
index 806ef65..7914543 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
UTF-8
- 1.18
+ 1.20-R0.1-SNAPSHOT
SNAPSHOT
@@ -450,14 +450,14 @@
com.google.guava
guava
- 31.0.1-jre
+ 32.1.2-jre
junit
junit
- 4.13.1
+ 4.13.2
jar
test
@@ -491,17 +491,17 @@
maven-compiler-plugin
- 3.9.0-SNAPSHOT
+ 3.11.0
-
- 11
+
+ 17
org.apache.maven.plugins
maven-shade-plugin
- 3.3.0-SNAPSHOT
+ 3.5.0
package
diff --git a/src/main/java/com/cnaude/purpleirc/GameListeners/DiscordListener.java b/src/main/java/com/cnaude/purpleirc/GameListeners/DiscordListener.java
index d3af11b..882326a 100644
--- a/src/main/java/com/cnaude/purpleirc/GameListeners/DiscordListener.java
+++ b/src/main/java/com/cnaude/purpleirc/GameListeners/DiscordListener.java
@@ -22,6 +22,9 @@ import github.scarsz.discordsrv.DiscordSRV;
import github.scarsz.discordsrv.api.ListenerPriority;
import github.scarsz.discordsrv.api.Subscribe;
import github.scarsz.discordsrv.api.events.DiscordGuildMessageReceivedEvent;
+import github.scarsz.discordsrv.dependencies.jda.api.entities.Message.Attachment;
+import java.util.ArrayList;
+import java.util.List;
/**
*
@@ -58,7 +61,8 @@ public class DiscordListener {
event.getMember().getEffectiveName(),
event.getMember().getColor(),
event.getChannel().getName(),
- event.getMessage().getContentDisplay());
+ event.getMessage().getContentDisplay(),
+ event.getMessage().getAttachments());
}
}
diff --git a/src/main/java/com/cnaude/purpleirc/PurpleBot.java b/src/main/java/com/cnaude/purpleirc/PurpleBot.java
index 298df7c..d1b6e1c 100644
--- a/src/main/java/com/cnaude/purpleirc/PurpleBot.java
+++ b/src/main/java/com/cnaude/purpleirc/PurpleBot.java
@@ -45,6 +45,7 @@ import com.massivecraft.factions.entity.Faction;
import com.massivecraft.factions.entity.MPlayer;
import com.nyancraft.reportrts.data.Ticket;
import com.titankingdoms.dev.titanchat.core.participant.Participant;
+import github.scarsz.discordsrv.dependencies.jda.api.entities.Message.Attachment;
import java.awt.Color;
import java.io.File;
import java.io.IOException;
@@ -66,7 +67,6 @@ import java.util.concurrent.locks.ReentrantReadWriteLock;
import me.botsko.prism.actionlibs.QueryParameters;
import me.botsko.prism.events.BlockStateChange;
import org.bukkit.Achievement;
-import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.GameMode;
import org.bukkit.Location;
@@ -1360,7 +1360,7 @@ public final class PurpleBot {
}
if (plugin.ventureChatEnabled) {
plugin.logDebug("Calling VentureChatEvent: " + event.getMessage());
- plugin.getServer().getScheduler().runTask(plugin, () -> plugin.getServer().getPluginManager().callEvent(new VentureChatEvent(event, this, channelName)));
+ plugin.getServer().getScheduler().runTask(plugin, () -> plugin.getServer().getPluginManager().callEvent(new VentureChatEvent(event, this, channelName)));
}
if (isMessageEnabled(channelName, TemplateName.GAME_CHAT)) {
asyncIRCMessage(channelName, plugin.tokenizer
@@ -1513,16 +1513,29 @@ public final class PurpleBot {
* @param color
* @param effectiveName
* @param message
+ * @param attachments
*/
- public void discordChat(String username, String nickname, String effectiveName, Color color, String discordChannel, String message) {
+ public void discordChat(
+ String username,
+ String nickname,
+ String effectiveName,
+ Color color,
+ String discordChannel,
+ String message,
+ List attachments) {
if (!this.isConnected()) {
return;
}
+ List aList = new ArrayList<>();
+ for (Attachment a : attachments) {
+ aList.add(a.getUrl());
+ }
+ String attUrls = String.join(", ", aList);
for (String channelName : botChannels) {
if (isMessageEnabled(channelName, TemplateName.DISCORD_CHAT) || isMessageEnabled(channelName, "discord-" + discordChannel + "-chat")) {
String template = plugin.getMessageTemplate(botNick, channelName, TemplateName.DISCORD_CHAT);
asyncIRCMessage(channelName, plugin.tokenizer
- .discordChatToIRCTokenizer(template, username, nickname, effectiveName, color, discordChannel, message)
+ .discordChatToIRCTokenizer(template, username, nickname, effectiveName, color, discordChannel, message, attUrls)
);
}
}
@@ -2779,9 +2792,9 @@ public final class PurpleBot {
}
}
}
-
+
// https://github.com/cnaude/PurpleIRC-spigot/issues/49
- if (message == null){
+ if (message == null) {
return;
}
diff --git a/src/main/java/com/cnaude/purpleirc/Utilities/ChatTokenizer.java b/src/main/java/com/cnaude/purpleirc/Utilities/ChatTokenizer.java
index 8e80ca6..88b0e89 100644
--- a/src/main/java/com/cnaude/purpleirc/Utilities/ChatTokenizer.java
+++ b/src/main/java/com/cnaude/purpleirc/Utilities/ChatTokenizer.java
@@ -23,12 +23,9 @@ import com.cnaude.purpleirc.TemplateName;
import com.gmail.nossr50.util.player.UserManager;
import com.nyancraft.reportrts.data.Ticket;
import com.palmergames.bukkit.TownyChat.channels.Channel;
-import github.scarsz.discordsrv.DiscordSRV;
import java.awt.Color;
import java.util.Set;
import java.util.UUID;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Location;
@@ -36,7 +33,6 @@ import org.bukkit.block.Block;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.pircbotx.User;
-import github.scarsz.discordsrv.objects.MessageFormat;
/**
* Main class containing all message template token expanding methods
@@ -493,11 +489,20 @@ public class ChatTokenizer {
* @param color
* @param discordChannel
* @param template
- *
* @param message
+ * @param attUrls
* @return
*/
- public String discordChatToIRCTokenizer(String template, String username, String nickname, String effectiveName, Color color, String discordChannel, String message) {
+ public String discordChatToIRCTokenizer(
+ String template,
+ String username,
+ String nickname,
+ String effectiveName,
+ Color color,
+ String discordChannel,
+ String message,
+ String attUrls
+ ) {
// String hex = color != null ? Integer.toHexString(color.getRGB()).toUpperCase() : "99AAB5";
// if (hex.length() == 8) {
// hex = hex.substring(2);
@@ -517,6 +522,7 @@ public class ChatTokenizer {
.replace("%CHANNEL%", discordChannel)
.replace("%MESSAGE%", plugin.colorConverter.gameColorsToIrc(message))
.replace("%RAWMESSAGE%", ChatColor.stripColor(message))
+ .replace("%ATTACHMENTURLS%", attUrls)
);
}
diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml
index 3df7f8c..4126ef9 100644
--- a/src/main/resources/config.yml
+++ b/src/main/resources/config.yml
@@ -69,7 +69,8 @@ chat-ping-fix: false
# %TOWNYCHANNELTAG% - Towny channel tag name
# %TOWNYMSGCOLOR% - Towny message color
# %JOBS% - Player jobs
-# %JOBSSHORT% - Player jobs shortened
+# %JOBSSHORT% - Player jobs
+# %ATTACHMENTURLS% - Discord attachment URLs
# Prism custom tokens:
# prism-rollback:
# %COMMAND%
@@ -153,7 +154,7 @@ message-format:
# AdminPrivateChat message from IRC to game
irc-a-chat: '[AdminChat] [&4IRC&r] %MESSAGE%'
# Messages from Discord (Valid tokens: %NAME%, %NICKNAME%, %EFFNAME%, %COLOR%, %CHANNEL%, %MESSAGE%, %RAWMESSAGE%)
- discord-chat: '[Discord]<%NAME%> %MESSAGE%'
+ discord-chat: '[Discord]<%NAME%> %MESSAGE% %ATTACHMENTURLS%'
# Messages from IRC to Discord
irc-discord-chat: '[IRC]<%NAME%> %MESSAGE%'
# Actions from IRC to Discord