Update save config changes

Add `/serverchat limit <times>` subcommand
This commit is contained in:
2023-01-12 21:26:54 +08:00
parent 86c2b9ae13
commit 4f8fc1f86d
4 changed files with 34 additions and 14 deletions

View File

@@ -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.");
}
}

View File

@@ -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");
}
}
}
}