55 lines
2.0 KiB
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);
|
|
}
|
|
}
|