package chatguard.main;
import java.util.HashMap;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.AsyncPlayerChatEvent;
import org.bukkit.event.player.PlayerJoinEvent;
public class Handler implements Listener{
private ChatGuard plugin;
public Handler(ChatGuard plugin) {
this.plugin = plugin;
}
//создаем наши HashMap
HashMap<String, String> lastMessages = new HashMap<>();
HashMap<String, String> newMessage = new HashMap<>();
@EventHandler
public void obJoin(PlayerJoinEvent e) {
lastMessages.clear();
newMessage.clear();
}
@EventHandler
public void onChat(AsyncPlayerChatEvent e) {
String pname = e.getPlayer().getName(); //Получаем ник игрока (Тип: Ник)
Player p = e.getPlayer(); //Получаем ник игрока (Тип: CraftBukkit Ник)
String msg = e.getMessage(); //Получаем сообщение игрока в чат
Boolean isBlocked = false;
String errormsg = plugin.getConfig().getString("messages.repeat");
errormsg = errormsg.replace("&", "\u00a7");
//выполняется если newMessage пустой, lastMessages не пустой - заполняем newMessage
//перестает выполнятся после второго сообщения игрока
if(newMessage.isEmpty() && !(lastMessages.isEmpty()) ){
newMessage.put(pname, msg);
String newmsg = newMessage.get(pname);
String lastmsg = lastMessages.get(pname);
//если новое сообщение игрока равно старому, отправить сообщение Equals
if(newmsg.equalsIgnoreCase(lastmsg) && newmsg.length()>1 && lastmsg.length()>1) {
p.sendMessage("1");
e.setCancelled(true);
newMessage.clear();
isBlocked = true;
}
}else if (lastMessages.isEmpty()){
lastMessages.put(pname, msg);
}else if ( !(lastMessages.isEmpty()) && !(newMessage.isEmpty() && isBlocked == true) ){
p.sendMessage("2");
String msg1 = e.getMessage();
lastMessages.put(pname, msg1);
newMessage.clear();
e.setCancelled(true);
}
}
}