package xyz.etztech.deluxegroups.listeners; import github.scarsz.discordsrv.DiscordSRV; import github.scarsz.discordsrv.api.Subscribe; import github.scarsz.discordsrv.api.events.DiscordGuildMessagePreProcessEvent; import github.scarsz.discordsrv.api.events.GameChatMessagePreProcessEvent; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import xyz.etztech.deluxegroups.DeluxeGroup; import xyz.etztech.deluxegroups.DeluxeGroups; import xyz.etztech.deluxegroups.DeluxeUtil; import java.util.ArrayList; import java.util.List; public class DiscordSRVListener { private DeluxeGroups plugin; private List groupPrefixes; public DiscordSRVListener(DeluxeGroups deluxeGroups) { this.plugin = deluxeGroups; reload(); } public void reload() { this.groupPrefixes = new ArrayList<>(); this.groupPrefixes.addAll(DeluxeUtil.trimmed(this.plugin.getConfig().getStringList("prefix"))); } @Subscribe public void onDiscordMessage(DiscordGuildMessagePreProcessEvent event) { if (DeluxeGroups.getDatabase().groupExists(event.getChannel().getName())) { DeluxeGroup group = DeluxeGroups.getDatabase().getGroup(event.getChannel().getName()); String format = plugin.getConfig().getString("discord.dtm", "[DISCORD | ] > "); String chat = format. replace("", group.getName()). replace("", event.getMessage().getContentStripped()). replace("", event.getAuthor().getName()); chat = ChatColor.translateAlternateColorCodes('&', chat); group.sendMessage(chat); event.setCancelled(true); } if (!event.getChannel().getId().equals(DiscordSRV.getPlugin().getMainTextChannel().getId())) { event.setCancelled(true); } } @Subscribe public void onMinecraftMessage(GameChatMessagePreProcessEvent event) { // Handled with custom events event.setCancelled(true); } }