DeluxeGroups/src/main/java/xyz/etztech/deluxegroups/listeners/DiscordSRVListener.java

55 lines
2.0 KiB
Java

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<String> 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 | <group>] <author> > <message>");
String chat = format.
replace("<group>", group.getName()).
replace("<message>", event.getMessage().getContentStripped()).
replace("<author>", 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);
}
}