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
|
- `/chat off` block chat messages
|
||||||
|
|
||||||
Server command (requires `server.chat.others` permissions) :
|
Server command (requires `server.chat.others` permissions) :
|
||||||
- `/serverchat on` Enable server chat (default) (not save)
|
- `/serverchat on` Enable server chat (default)
|
||||||
- `/serverchat off` Disable server chat (not saving)
|
- `/serverchat off` Disable server chat
|
||||||
- `/serverchat ban|mute @uid [time(Minutes)]` Mute the specified player for the specified time (minutes) (optional)
|
- `/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 unban|unmute @uid` Unmute a specified player
|
||||||
|
- `/serverchat limit <timesPerMinute>` Set a frequency limit for sending messages
|
||||||
|
|
||||||
`/serverchat` can be aliased as `/sc`
|
`/serverchat` can be aliased as `/sc`
|
||||||
|
|
||||||
|
@ -25,10 +25,11 @@
|
|||||||
- `/chat off` 屏蔽聊天消息
|
- `/chat off` 屏蔽聊天消息
|
||||||
|
|
||||||
管理用(需要 `server.chat.others` 权限):
|
管理用(需要 `server.chat.others` 权限):
|
||||||
- `/serverchat on` 启用服务器聊天(默认)(不保存)
|
- `/serverchat on` 启用服务器聊天(默认)
|
||||||
- `/serverchat off` 关闭服务器聊天(不保存)
|
- `/serverchat off` 关闭服务器聊天
|
||||||
- `/serverchat ban @uid [time(Minutes)]` 禁言指定玩家指定时间(分钟)(可选)
|
- `/serverchat ban @uid [时间(分钟)]` 禁言指定玩家
|
||||||
- `/serverchat unban @uid` 解除指定玩家禁言
|
- `/serverchat unban @uid` 解除指定玩家禁言
|
||||||
|
- `/serverchat limit <次每分钟>` 设置发消息频率限制
|
||||||
|
|
||||||
`/serverchat` 可用别名 `/sc`
|
`/serverchat` 可用别名 `/sc`
|
||||||
|
|
||||||
|
@ -44,13 +44,7 @@ public final class OpenChatPlugin extends Plugin {
|
|||||||
var configFile = new File(getDataFolder(), "config.json");
|
var configFile = new File(getDataFolder(), "config.json");
|
||||||
if (!configFile.exists()) {
|
if (!configFile.exists()) {
|
||||||
config = new OpenChatConfig();
|
config = new OpenChatConfig();
|
||||||
try (var file = new FileWriter(configFile, StandardCharsets.UTF_8)) {
|
saveConfig();
|
||||||
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.");
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
try {
|
try {
|
||||||
config = JsonUtils.loadToClass(configFile.toPath(), OpenChatConfig.class);
|
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;
|
private OpenChatData data;
|
||||||
public OpenChatData getData() {
|
public OpenChatData getData() {
|
||||||
@ -119,6 +123,7 @@ public final class OpenChatPlugin extends Plugin {
|
|||||||
@Override
|
@Override
|
||||||
public void onDisable() {
|
public void onDisable() {
|
||||||
saveData();
|
saveData();
|
||||||
|
saveConfig();
|
||||||
getLogger().info("[OpenChat] Disabled.");
|
getLogger().info("[OpenChat] Disabled.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -10,7 +10,7 @@ import java.util.List;
|
|||||||
|
|
||||||
@Command(label = "serverchat",
|
@Command(label = "serverchat",
|
||||||
aliases = { "sc" },
|
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",
|
permission = "server.chat",
|
||||||
permissionTargeted = "server.chat.others")
|
permissionTargeted = "server.chat.others")
|
||||||
public class ChatServerCommands implements CommandHandler {
|
public class ChatServerCommands implements CommandHandler {
|
||||||
@ -40,7 +40,7 @@ public class ChatServerCommands implements CommandHandler {
|
|||||||
var time = new Date(2051190000);
|
var time = new Date(2051190000);
|
||||||
if (args.size() == 2) {
|
if (args.size() == 2) {
|
||||||
try {
|
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) {
|
} catch (NumberFormatException ignored) {
|
||||||
CommandHandler.sendTranslatedMessage(sender, "commands.ban.invalid_time");
|
CommandHandler.sendTranslatedMessage(sender, "commands.ban.invalid_time");
|
||||||
return;
|
return;
|
||||||
@ -49,6 +49,19 @@ public class ChatServerCommands implements CommandHandler {
|
|||||||
plugin.getData().banList.put(targetPlayer.getUid(), time);
|
plugin.getData().banList.put(targetPlayer.getUid(), time);
|
||||||
CommandHandler.sendMessage(sender, "OK");
|
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