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; package com.github.jie65535.openchat;
import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
import java.util.HashSet; import java.util.HashSet;
@ -28,7 +27,7 @@ public class OpenChatData {
* Key: Uid * Key: Uid
* Value: End time * 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.ints.Int2ObjectOpenHashMap;
import it.unimi.dsi.fastutil.longs.LongArrayFIFOQueue; import it.unimi.dsi.fastutil.longs.LongArrayFIFOQueue;
import java.util.Date;
public class OpenChatSystem extends ChatSystem { public class OpenChatSystem extends ChatSystem {
private final OpenChatPlugin plugin; private final OpenChatPlugin plugin;
public OpenChatSystem(OpenChatPlugin plugin) { public OpenChatSystem(OpenChatPlugin plugin) {
@ -93,7 +91,7 @@ public class OpenChatSystem extends ChatSystem {
var banList = plugin.getData().banList; var banList = plugin.getData().banList;
// 检测是否正在禁言中 // 检测是否正在禁言中
if (banList.containsKey(player.getUid())) { if (banList.containsKey(player.getUid())) {
if (banList.get(player.getUid()).before(new Date())) { if (banList.get(player.getUid()) < System.currentTimeMillis()) {
banList.remove(player.getUid()); banList.remove(player.getUid());
} else { } else {
return true; return true;

View File

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