Essentials/EssentialsDiscord/src/main/java/net/essentialsx/discord/listeners/EssentialsChatListener.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());
}
});
}
}