Skip to content

Commit

Permalink
feat: protocol check
Browse files Browse the repository at this point in the history
  • Loading branch information
Tsubasa6848 committed Mar 27, 2024
1 parent ab4a4b2 commit 9500d4f
Show file tree
Hide file tree
Showing 4 changed files with 18 additions and 4 deletions.
8 changes: 8 additions & 0 deletions src/Entry.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,14 @@ std::unique_ptr<Entry>& Entry::getInstance() {

bool Entry::load() {
initLanguage();
if (Version::getProtocolVersion() != TARGET_PROTOCOL) {
logger.error(tr("error.protocolMismatch.info"));
logger.error(
tr("error.protocolMismatch.version",
{std::to_string(TARGET_PROTOCOL), std::to_string(Version::getProtocolVersion())})
);
return false;
}
return true;
}

Expand Down
4 changes: 3 additions & 1 deletion src/Global.h
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
#pragma once
#include <include_all.h>

#define PLUGIN_NAME "FreeCamera"
#define TARGET_PROTOCOL 662

using namespace GMLIB;

Expand All @@ -9,7 +11,7 @@ extern std::unordered_set<uint64> FreeCamList;
extern void RegisterCommand();
extern void initLanguage();

extern std::string tr(std::string key);
extern std::string tr(std::string key, std::vector<std::string> data = {});

namespace FreeCamera {
extern void DisableFreeCamera(Player* pl);
Expand Down
2 changes: 1 addition & 1 deletion src/Initialization.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -17,4 +17,4 @@ void initLanguage() {
Language->chooseLanguage(languageCode);
}

std::string tr(std::string key) { return Language->translate(key); }
std::string tr(std::string key, std::vector<std::string> data) { return Language->translate(key, data); }
8 changes: 6 additions & 2 deletions src/Language.h
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,16 @@ std::string defaultLanguage_en_US = R"({
"freecamera.command.desc": "Enable or disable freecamera mode.",
"freecamera.command.enabled": "Freecamera mode enabled",
"freecamera.command.disabled": "Freecamera mode disabled",
"freecamera.command.console": "This command can only execute by players or console."
"freecamera.command.console": "This command can only execute by players or console.",
"error.protocolMismatch.info":"You are running on an unsupport protocol version! This may result in crash!",
"error.protocolMismatch.version":"Support protocol %1$s, current protocol %2$s."
})";

std::string defaultLanguage_zh_CN = R"({
"freecamera.command.desc": "开启或关闭自由视角模式",
"freecamera.command.enabled": "自由视角模式已启用",
"freecamera.command.disabled": "自由视角模式已禁用",
"freecamera.command.console": "该命令只能由玩家执行"
"freecamera.command.console": "该命令只能由玩家执行",
"error.protocolMismatch.info":"此插件正在不兼容的版本协议上运行!这可能造成服务器崩溃。",
"error.protocolMismatch.version":"此插件支持版本协议 %1$s,服务器版本协议 %2$s。"
})";

0 comments on commit 9500d4f

Please sign in to comment.