Fix ban issue

This commit is contained in:
2023-01-12 22:16:03 +08:00
parent de01151d12
commit e592572280
3 changed files with 9 additions and 8 deletions

View File

@ -17,7 +17,6 @@
*/
package com.github.jie65535.openchat;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
@ -28,7 +27,7 @@ public class OpenChatData {
* Key: Uid
* Value: End time
*/
public HashMap<Integer, Date> banList = new HashMap<>();
public HashMap<Integer, Long> banList = new HashMap<>();
/**
* 关闭聊天的玩家集合

View File

@ -7,8 +7,6 @@ import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap;
import it.unimi.dsi.fastutil.longs.LongArrayFIFOQueue;
import java.util.Date;
public class OpenChatSystem extends ChatSystem {
private final OpenChatPlugin plugin;
public OpenChatSystem(OpenChatPlugin plugin) {
@ -93,7 +91,7 @@ public class OpenChatSystem extends ChatSystem {
var banList = plugin.getData().banList;
// 检测是否正在禁言中
if (banList.containsKey(player.getUid())) {
if (banList.get(player.getUid()).before(new Date())) {
if (banList.get(player.getUid()) < System.currentTimeMillis()) {
banList.remove(player.getUid());
} else {
return true;

View File

@ -5,7 +5,6 @@ import emu.grasscutter.command.Command;
import emu.grasscutter.command.CommandHandler;
import emu.grasscutter.game.player.Player;
import java.sql.Date;
import java.util.List;
@Command(label = "serverchat",
@ -26,21 +25,24 @@ public class ChatServerCommands implements CommandHandler {
switch (subCommand) {
case "on" -> {
plugin.getConfig().serverChatEnabled = true;
plugin.saveConfig();
CommandHandler.sendMessage(sender, "OK");
}
case "off" -> {
plugin.getConfig().serverChatEnabled = false;
plugin.saveConfig();
CommandHandler.sendMessage(sender, "OK");
}
case "unban", "unmute" -> {
plugin.getData().banList.remove(targetPlayer.getUid());
plugin.saveData();
CommandHandler.sendMessage(sender, "OK");
}
case "ban", "mute" -> {
var time = new Date(2051190000);
var time = 2051190000L;
if (args.size() == 2) {
try {
time = new Date(System.currentTimeMillis() + Integer.parseInt(args.get(1)) * 60_000L);
time = System.currentTimeMillis() + Integer.parseInt(args.get(1)) * 60_000L;
} catch (NumberFormatException ignored) {
CommandHandler.sendTranslatedMessage(sender, "commands.ban.invalid_time");
return;
@ -50,6 +52,7 @@ public class ChatServerCommands implements CommandHandler {
sendUsageMessage(sender);
} else {
plugin.getData().banList.put(targetPlayer.getUid(), time);
plugin.saveData();
CommandHandler.sendMessage(sender, "OK");
}
}
@ -64,6 +67,7 @@ public class ChatServerCommands implements CommandHandler {
}
}
plugin.getConfig().messageFreLimitPerMinute = times;
plugin.saveConfig();
CommandHandler.sendMessage(sender, "OK");
}
}