package net.serverloop.ChunkByteCore.diverse;
import net.serverloop.ChunkByteCore.Main;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.player.AsyncPlayerChatEvent;
import sun.management.Sensor;
import java.util.ArrayList;
import java.util.List;
public class StaffChat implements Listener, CommandExecutor {
public static List<Player> chatStaff = new ArrayList<>();
Main plugin;
public StaffChat(Main _plugin) {
this.plugin = _plugin;
this.plugin.getCommand("schat").setExecutor(this::onCommand);
this.plugin.getServer().getPluginManager().registerEvents(this, this.plugin);
}
@Override
public boolean onCommand(CommandSender commandSender, Command command, String s, String[] strings) {
Player sender = (Player) commandSender;
if (!sender.hasPermission("ChunkByte.admin.chat")) {
sender.sendMessage(ChatGenerator.GenerateChatMessage(ChatColor.RED + "You do not have permissions for this command"));
return false;
}
if (commandSender instanceof Player) {
if (TogglePlayerMode((Player) commandSender)) {
commandSender.sendMessage(ChatGenerator.GenerateChatMessage("StaffChat: ON"));
} else {
commandSender.sendMessage(ChatGenerator.GenerateChatMessage("StaffChat: " + ChatColor.RED + "OFF"));
}
} else {
commandSender.sendMessage(ChatColor.RED + "Only players bro");
}
return false;
}
public static boolean TogglePlayerMode(Player p) {
if (chatStaff.contains(p)) {
chatStaff.remove(p);
return false;
} else {
chatStaff.add(p);
return true;
}
}
@EventHandler(ignoreCancelled = true, priority = EventPriority.MONITOR)
void onChat(AsyncPlayerChatEvent event) {
Player sender = event.getPlayer();
if (chatStaff.contains(sender)) {
if (!sender.hasPermission("ChunkByte.admin.chat")) {
sender.sendMessage(ChatGenerator.GenerateChatMessage(ChatColor.RED + "You no longer have permission to use StaffChat"));
TogglePlayerMode(sender);
return;
}
String msg = event.getMessage();
event.setCancelled(true);
for (Player p : Bukkit.getServer().getOnlinePlayers()) {
if (p.hasPermission("ChunkByte.admin.chat")) {
p.sendMessage(ChatGenerator.GenerateChatMessage(msg, ChatColor.BLUE + sender.getName()));
}
}
}
}
}