44 lines
1.5 KiB
Java
44 lines
1.5 KiB
Java
package net.essentialsx.discord.listeners;
|
|
|
|
import net.essentialsx.api.v2.events.chat.ChatEvent;
|
|
import net.essentialsx.api.v2.events.chat.GlobalChatEvent;
|
|
import net.essentialsx.api.v2.events.chat.LocalChatEvent;
|
|
import net.essentialsx.api.v2.events.discord.DiscordChatMessageEvent;
|
|
import net.essentialsx.discord.JDADiscordService;
|
|
import org.bukkit.Bukkit;
|
|
import org.bukkit.entity.Player;
|
|
import org.bukkit.event.EventHandler;
|
|
import org.bukkit.event.EventPriority;
|
|
import org.bukkit.event.Listener;
|
|
|
|
public class EssentialsChatListener implements Listener {
|
|
private final JDADiscordService jda;
|
|
|
|
public EssentialsChatListener(JDADiscordService jda) {
|
|
this.jda = jda;
|
|
}
|
|
|
|
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
|
|
public void onLocalChat(LocalChatEvent event) {
|
|
processChatEvent(event);
|
|
}
|
|
|
|
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
|
|
public void onGlobalChat(GlobalChatEvent event) {
|
|
processChatEvent(event);
|
|
}
|
|
|
|
private void processChatEvent(ChatEvent event) {
|
|
final Player player = event.getPlayer();
|
|
|
|
Bukkit.getScheduler().runTask(jda.getPlugin(), () -> {
|
|
final DiscordChatMessageEvent chatEvent = new DiscordChatMessageEvent(event.getPlayer(), event.getMessage(), event.getChatType());
|
|
Bukkit.getPluginManager().callEvent(chatEvent);
|
|
|
|
if (!chatEvent.isCancelled()) {
|
|
jda.sendChatMessage(event.getChatType(), player, chatEvent.getMessage());
|
|
}
|
|
});
|
|
}
|
|
}
|