mirror of
https://github.com/jie65535/gc-openchat-plugin.git
synced 2025-06-01 17:29:11 +08:00
Update save config changes
Add `/serverchat limit <times>` subcommand
This commit is contained in:
parent
86c2b9ae13
commit
4f8fc1f86d
@ -25,10 +25,11 @@ Player command:
|
||||
- `/chat off` block chat messages
|
||||
|
||||
Server command (requires `server.chat.others` permissions) :
|
||||
- `/serverchat on` Enable server chat (default) (not save)
|
||||
- `/serverchat off` Disable server chat (not saving)
|
||||
- `/serverchat on` Enable server chat (default)
|
||||
- `/serverchat off` Disable server chat
|
||||
- `/serverchat ban|mute @uid [time(Minutes)]` Mute the specified player for the specified time (minutes) (optional)
|
||||
- `/serverchat unban|unmute @uid` Unmute a specified player
|
||||
- `/serverchat limit <timesPerMinute>` Set a frequency limit for sending messages
|
||||
|
||||
`/serverchat` can be aliased as `/sc`
|
||||
|
||||
|
@ -25,10 +25,11 @@
|
||||
- `/chat off` 屏蔽聊天消息
|
||||
|
||||
管理用(需要 `server.chat.others` 权限):
|
||||
- `/serverchat on` 启用服务器聊天(默认)(不保存)
|
||||
- `/serverchat off` 关闭服务器聊天(不保存)
|
||||
- `/serverchat ban @uid [time(Minutes)]` 禁言指定玩家指定时间(分钟)(可选)
|
||||
- `/serverchat on` 启用服务器聊天(默认)
|
||||
- `/serverchat off` 关闭服务器聊天
|
||||
- `/serverchat ban @uid [时间(分钟)]` 禁言指定玩家
|
||||
- `/serverchat unban @uid` 解除指定玩家禁言
|
||||
- `/serverchat limit <次每分钟>` 设置发消息频率限制
|
||||
|
||||
`/serverchat` 可用别名 `/sc`
|
||||
|
||||
|
@ -44,13 +44,7 @@ public final class OpenChatPlugin extends Plugin {
|
||||
var configFile = new File(getDataFolder(), "config.json");
|
||||
if (!configFile.exists()) {
|
||||
config = new OpenChatConfig();
|
||||
try (var file = new FileWriter(configFile, StandardCharsets.UTF_8)) {
|
||||
file.write(JsonUtils.encode(config));
|
||||
} catch (IOException e) {
|
||||
getLogger().error("[OpenChat] Unable to write to config file.");
|
||||
} catch (Exception e) {
|
||||
getLogger().error("[OpenChat] Unable to save config file.");
|
||||
}
|
||||
saveConfig();
|
||||
} else {
|
||||
try {
|
||||
config = JsonUtils.loadToClass(configFile.toPath(), OpenChatConfig.class);
|
||||
@ -60,6 +54,16 @@ public final class OpenChatPlugin extends Plugin {
|
||||
}
|
||||
}
|
||||
}
|
||||
private void saveConfig() {
|
||||
var configFile = new File(getDataFolder(), "config.json");
|
||||
try (var file = new FileWriter(configFile, StandardCharsets.UTF_8)) {
|
||||
file.write(JsonUtils.encode(config));
|
||||
} catch (IOException e) {
|
||||
getLogger().error("[OpenChat] Unable to write to config file.");
|
||||
} catch (Exception e) {
|
||||
getLogger().error("[OpenChat] Unable to save config file.");
|
||||
}
|
||||
}
|
||||
|
||||
private OpenChatData data;
|
||||
public OpenChatData getData() {
|
||||
@ -119,6 +123,7 @@ public final class OpenChatPlugin extends Plugin {
|
||||
@Override
|
||||
public void onDisable() {
|
||||
saveData();
|
||||
saveConfig();
|
||||
getLogger().info("[OpenChat] Disabled.");
|
||||
}
|
||||
}
|
||||
|
@ -10,7 +10,7 @@ import java.util.List;
|
||||
|
||||
@Command(label = "serverchat",
|
||||
aliases = { "sc" },
|
||||
usage = { "on/off", "unban|unmute @uid", "ban|mute @uid [time(Minutes)]"},
|
||||
usage = { "on/off", "unban|unmute @uid", "ban|mute @uid [time(Minutes)]", "limit <timesPerMinute>" },
|
||||
permission = "server.chat",
|
||||
permissionTargeted = "server.chat.others")
|
||||
public class ChatServerCommands implements CommandHandler {
|
||||
@ -40,7 +40,7 @@ public class ChatServerCommands implements CommandHandler {
|
||||
var time = new Date(2051190000);
|
||||
if (args.size() == 2) {
|
||||
try {
|
||||
time = new Date(System.currentTimeMillis() / 1000 + Integer.parseInt(args.get(0)) * 60L);
|
||||
time = new Date(System.currentTimeMillis() / 1000 + Integer.parseInt(args.get(1)) * 60L);
|
||||
} catch (NumberFormatException ignored) {
|
||||
CommandHandler.sendTranslatedMessage(sender, "commands.ban.invalid_time");
|
||||
return;
|
||||
@ -49,6 +49,19 @@ public class ChatServerCommands implements CommandHandler {
|
||||
plugin.getData().banList.put(targetPlayer.getUid(), time);
|
||||
CommandHandler.sendMessage(sender, "OK");
|
||||
}
|
||||
case "limit" -> {
|
||||
var times = 20;
|
||||
if (args.size() == 2) {
|
||||
try {
|
||||
times = Integer.parseInt(args.get(1));
|
||||
} catch (NumberFormatException ignored) {
|
||||
sendUsageMessage(sender);
|
||||
return;
|
||||
}
|
||||
}
|
||||
plugin.getConfig().messageFreLimitPerMinute = times;
|
||||
CommandHandler.sendMessage(sender, "OK");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user