diff --git a/src/Cleaner.cpp b/src/Cleaner.cpp index 89bab3f..32c6af9 100644 --- a/src/Cleaner.cpp +++ b/src/Cleaner.cpp @@ -133,11 +133,28 @@ void CleanTask() { auto announce_time = Config->getValue({"Basic", "Notice2"}, 15); auto time_1 = std::chrono::seconds::duration(time); auto time_2 = std::chrono::seconds::duration(time - announce_time); - logger.info(tr("cleaner.output.count1", {S(time_1.count())})); - scheduler.add(time_2, [announce_time] { logger.info(tr("cleaner.output.count2", {S(announce_time)})); }); + if (Config->getValue({"Basic", "ConsoleLog"}, true)) { + logger.info(tr("cleaner.output.count1", {S(time_1.count())})); + } + if (Config->getValue({"Basic", "SendBroadcast"}, true)) { + TextPacket::createRawMessage(tr("cleaner.output.count1", {S(time_1.count())})).sendToClients(); + } + scheduler.add(time_2, [announce_time] { + if (Config->getValue({"Basic", "ConsoleLog"}, true)) { + logger.info(tr("cleaner.output.count2", {S(announce_time)})); + } + if (Config->getValue({"Basic", "SendBroadcast"}, true)) { + TextPacket::createRawMessage(tr("cleaner.output.count2", {S(announce_time)})).sendToClients(); + } + }); scheduler.add(time_1, [] { auto count = ExecuteClean(); - logger.info(tr("cleaner.output.finish", {S(count)})); + if (Config->getValue({"Basic", "ConsoleLog"}, true)) { + logger.info(tr("cleaner.output.finish", {S(count)})); + } + if (Config->getValue({"Basic", "SendBroadcast"}, true)) { + TextPacket::createRawMessage(tr("cleaner.output.finish", {S(count)})).sendToClients(); + } auto_clean_triggerred = false; }); } diff --git a/src/Config.h b/src/Config.h index 9caae3e..5946480 100644 --- a/src/Config.h +++ b/src/Config.h @@ -8,8 +8,7 @@ inline std::string defaultConfig = R"({ "Command": "cleaner", "Notice1": 20, "Notice2": 5, - "SendBroadcast": true, - "SendToast": false + "SendBroadcast": true }, "AutoCleanCount": { "Enabled": true, diff --git a/src/Language.h b/src/Language.h index e55c331..c21188d 100644 --- a/src/Language.h +++ b/src/Language.h @@ -2,12 +2,14 @@ #include "Global.h" std::string defaultLanguage_zh_CN = R"({ + "cleaner.toast.title": "§e§lCleaner", "cleaner.command.cleaner": "Cleaner管理员命令。", "cleaner.command.despawnSuccess": "已成功清除了 %1$s 个实体", "cleaner.command.error.noTarget": "没有与选择器匹配的目标", "cleaner.command.error.playerOnly": "该命令只能由玩家执行!", "cleaner.command.tps.output": "当前服务器实时TPS %1$s §r,平均TPS %2$s", "cleaner.command.mspt.output": "当前服务器实MSPT %1$s", + "cleaner.command.clean.output": "已成功启动清理任务!", "cleaner.command.voteclean": "发起实体清理投票。", "cleaner.command.despawntime" : "已成功将物品消失时间设置为 %1$s 游戏刻", "cleaner.output.count1": "系统将在 %1$s 秒后自动清理服务器实体!", diff --git a/src/RegisterCommand.cpp b/src/RegisterCommand.cpp index 95b548d..5537d0c 100644 --- a/src/RegisterCommand.cpp +++ b/src/RegisterCommand.cpp @@ -33,7 +33,13 @@ void RegCleanerCommand() { switch (param.action) { case CleanerParam::Action::clean: { Cleaner::CleanTask(); - return output.success(tr("cleaner.output.opClean")); + if (Config->getValue({"Basic", "ConsoleLog"}, true)) { + logger.info(tr("cleaner.output.opClean")); + } + if (Config->getValue({"Basic", "SendBroadcast"}, true)) { + TextPacket::createRawMessage(tr("cleaner.output.opClean")).sendToClients(); + } + return output.success(tr("cleaner.command.clean.output")); } case CleanerParam::Action::tps: { return output.success(