Module-NUSH/src/main/java/dev/plex/nush/listener/impl/ChatListener.java

51 lines
1.6 KiB
Java

package dev.plex.nush.listener.impl;
import dev.plex.Plex;
import dev.plex.admin.Admin;
import dev.plex.cache.DataUtils;
import dev.plex.listener.PlexListener;
import dev.plex.nush.NushModule;
import dev.plex.player.PlexPlayer;
import dev.plex.rank.RankManager;
import io.papermc.paper.event.player.AsyncChatEvent;
import java.time.Duration;
import java.time.Instant;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
public class ChatListener extends PlexListener {
public static final Map<Admin, Integer> work = new HashMap<>();
@EventHandler(priority = EventPriority.HIGHEST)
public void onChat(AsyncChatEvent event) {
Player player = event.getPlayer();
Instant firstJoined = Instant.ofEpochMilli(player.getFirstPlayed());
Instant rightNow = Instant.now();
long difference = (Duration.between(firstJoined, rightNow).getSeconds() / 60);
if(difference >= 15) return;
NushModule module = NushModule.getInstance();
Plex plex = module.getPlex();
PlexPlayer plexPlayer = DataUtils.getPlayer(player.getUniqueId());
RankManager rankManager = plex.getRankManager();
if(rankManager.isAdmin(plexPlayer)) return; // we needn't process the chat message if they're an admin
Entry<Admin, Integer> leastWork = null;
for (Entry<Admin, Integer> adminIntegerEntry : work.entrySet()) {
if(leastWork == null) {
leastWork = adminIntegerEntry;
return;
} else {
if(leastWork.getValue() > adminIntegerEntry.getValue()) {
leastWork = adminIntegerEntry;
}
}
}
}
}