Compare commits
7 Commits
+1
-1
Submodule SDK-GMLIB updated: 2bb91343e1...cecc827900
@@ -1,6 +1,9 @@
|
|||||||
{
|
{
|
||||||
"name": "${pluginName}",
|
"name": "${pluginName}",
|
||||||
"entry": "${pluginFile}",
|
"entry": "${pluginFile}",
|
||||||
|
"version": "0.11.0",
|
||||||
|
"author": "GroupMountain",
|
||||||
|
"description": "Check Player's Inventory",
|
||||||
"type": "native",
|
"type": "native",
|
||||||
"dependencies": [
|
"dependencies": [
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -24,6 +24,14 @@ auto enable(ll::plugin::NativePlugin& /*self*/) -> bool {
|
|||||||
auto load(ll::plugin::NativePlugin& self) -> bool {
|
auto load(ll::plugin::NativePlugin& self) -> bool {
|
||||||
selfPluginInstance = std::make_unique<std::reference_wrapper<ll::plugin::NativePlugin>>(self);
|
selfPluginInstance = std::make_unique<std::reference_wrapper<ll::plugin::NativePlugin>>(self);
|
||||||
initPlugin();
|
initPlugin();
|
||||||
|
if (GMLIB::Version::getProtocolVersion() != TARGET_PROTOCOL) {
|
||||||
|
logger.error(tr("error.protocolMismatch.info"));
|
||||||
|
logger.error(
|
||||||
|
tr("error.protocolMismatch.version",
|
||||||
|
{std::to_string(TARGET_PROTOCOL), std::to_string(GMLIB::Version::getProtocolVersion())})
|
||||||
|
);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
initPlayerDataCache();
|
initPlayerDataCache();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
#include <include_all.h>
|
#include <include_all.h>
|
||||||
|
|
||||||
#define PLUGIN_NAME "InventoryCheck"
|
#define PLUGIN_NAME "InventoryCheck"
|
||||||
|
#define TARGET_PROTOCOL 662
|
||||||
|
|
||||||
extern ll::Logger logger;
|
extern ll::Logger logger;
|
||||||
|
|
||||||
|
|||||||
+21
-22
@@ -74,7 +74,7 @@ void checkOnlineForm(Player& pl) {
|
|||||||
if (onlineList.size() == 1) {
|
if (onlineList.size() == 1) {
|
||||||
return pl.sendMessage(tr("checkOnline.empty"));
|
return pl.sendMessage(tr("checkOnline.empty"));
|
||||||
}
|
}
|
||||||
fm.sendTo(pl, [](Player& pl, int index) {
|
fm.sendTo(pl, [](Player& pl, int index, ll::form::FormCancelReason) {
|
||||||
if (index == -1) {
|
if (index == -1) {
|
||||||
return mainForm(pl);
|
return mainForm(pl);
|
||||||
}
|
}
|
||||||
@@ -101,8 +101,7 @@ std::string getNameFormUuid(mce::UUID& uuid) {
|
|||||||
std::unordered_map<mce::UUID, std::string> generateUuidMap() {
|
std::unordered_map<mce::UUID, std::string> generateUuidMap() {
|
||||||
auto allUuids = GMLIB_Player::getAllUuids();
|
auto allUuids = GMLIB_Player::getAllUuids();
|
||||||
std::unordered_map<mce::UUID, std::string> allList;
|
std::unordered_map<mce::UUID, std::string> allList;
|
||||||
for (auto& strUuid : allUuids) {
|
for (auto& uuid : allUuids) {
|
||||||
auto uuid = mce::UUID::fromString(strUuid);
|
|
||||||
auto name = getNameFormUuid(uuid);
|
auto name = getNameFormUuid(uuid);
|
||||||
allList[uuid] = name;
|
allList[uuid] = name;
|
||||||
}
|
}
|
||||||
@@ -120,7 +119,7 @@ void checkAllForm(Player& pl) {
|
|||||||
if (allList.size() == 1) {
|
if (allList.size() == 1) {
|
||||||
return pl.sendMessage(tr("checkAll.empty"));
|
return pl.sendMessage(tr("checkAll.empty"));
|
||||||
}
|
}
|
||||||
fm.sendTo(pl, [](Player& pl, int index) {
|
fm.sendTo(pl, [](Player& pl, int index, ll::form::FormCancelReason) {
|
||||||
if (index == -1) {
|
if (index == -1) {
|
||||||
return mainForm(pl);
|
return mainForm(pl);
|
||||||
}
|
}
|
||||||
@@ -137,15 +136,15 @@ void searchPlayerForm(Player& pl) {
|
|||||||
{tr("form.searchPlayer.fuzzySearch"), tr("form.searchPlayer.preciseSearch")},
|
{tr("form.searchPlayer.fuzzySearch"), tr("form.searchPlayer.preciseSearch")},
|
||||||
0
|
0
|
||||||
);
|
);
|
||||||
fm.sendTo(pl, [](Player& pl, const ll::form::CustomFormResult& result) {
|
fm.sendTo(pl, [](Player& pl, ll::form::CustomFormResult const& result, ll::form::FormCancelReason) {
|
||||||
if (result.empty()) {
|
if (!result.has_value()) {
|
||||||
return mainForm(pl);
|
return mainForm(pl);
|
||||||
}
|
}
|
||||||
std::string inputName;
|
std::string inputName;
|
||||||
if (std::holds_alternative<std::string>(result.at("name"))) {
|
if (std::holds_alternative<std::string>(result->at("name"))) {
|
||||||
inputName = std::get<std::string>(result.at("name"));
|
inputName = std::get<std::string>(result->at("name"));
|
||||||
}
|
}
|
||||||
auto searchMode = std::get<std::string>(result.at("mode"));
|
auto searchMode = std::get<std::string>(result->at("mode"));
|
||||||
if (inputName.empty()) {
|
if (inputName.empty()) {
|
||||||
return invalidInputForm(pl);
|
return invalidInputForm(pl);
|
||||||
}
|
}
|
||||||
@@ -174,9 +173,9 @@ void searchPlayerForm(Player& pl) {
|
|||||||
void searchResultForm(Player& pl, std::unordered_map<mce::UUID, std::string> resultList) {
|
void searchResultForm(Player& pl, std::unordered_map<mce::UUID, std::string> resultList) {
|
||||||
auto fm = ll::form::SimpleForm(tr("form.checkList.title"), tr("form.checkList.content"));
|
auto fm = ll::form::SimpleForm(tr("form.checkList.title"), tr("form.checkList.content"));
|
||||||
for (auto& [uuid, name] : resultList) {
|
for (auto& [uuid, name] : resultList) {
|
||||||
fm.appendButton(name, [&uuid](Player& pl) { checkPlayerForm(pl, uuid); });
|
fm.appendButton(name, [uuid](Player& pl) { checkPlayerForm(pl, uuid); });
|
||||||
}
|
}
|
||||||
fm.sendTo(pl, [](Player& pl, int index) {
|
fm.sendTo(pl, [](Player& pl, int index, ll::form::FormCancelReason) {
|
||||||
if (index == -1) {
|
if (index == -1) {
|
||||||
return searchPlayerForm(pl);
|
return searchPlayerForm(pl);
|
||||||
}
|
}
|
||||||
@@ -190,8 +189,8 @@ void searchNotFoundForm(Player& pl, std::string& name) {
|
|||||||
tr("form.notFound.returnSearch"),
|
tr("form.notFound.returnSearch"),
|
||||||
tr("form.returnMainForm")
|
tr("form.returnMainForm")
|
||||||
);
|
);
|
||||||
fm.sendTo(pl, [](Player& pl, ll::form::ModalForm::SelectedButton result) {
|
fm.sendTo(pl, [](Player& pl, ll::form::ModalFormResult result, ll::form::FormCancelReason) {
|
||||||
if (result == ll::form::ModalForm::SelectedButton::Upper) {
|
if (result == ll::form::ModalFormSelectedButton::Upper) {
|
||||||
return searchPlayerForm(pl);
|
return searchPlayerForm(pl);
|
||||||
}
|
}
|
||||||
return mainForm(pl);
|
return mainForm(pl);
|
||||||
@@ -217,7 +216,7 @@ void checkPlayerForm(Player& pl, mce::UUID uuid) {
|
|||||||
fm.appendButton(tr("form.checkPlayer.deleteData"), [uuid, name](Player& pl) {
|
fm.appendButton(tr("form.checkPlayer.deleteData"), [uuid, name](Player& pl) {
|
||||||
return confirmDeleteForm(pl, uuid, name);
|
return confirmDeleteForm(pl, uuid, name);
|
||||||
});
|
});
|
||||||
fm.sendTo(pl, [](Player& pl, int index) {
|
fm.sendTo(pl, [](Player& pl, int index, ll::form::FormCancelReason) {
|
||||||
if (index == -1) {
|
if (index == -1) {
|
||||||
return mainForm(pl);
|
return mainForm(pl);
|
||||||
}
|
}
|
||||||
@@ -231,8 +230,8 @@ void invalidInputForm(Player& pl) {
|
|||||||
tr("form.invalidInput.returnSearch"),
|
tr("form.invalidInput.returnSearch"),
|
||||||
tr("form.returnMainForm")
|
tr("form.returnMainForm")
|
||||||
);
|
);
|
||||||
fm.sendTo(pl, [](Player& pl, ll::form::ModalForm::SelectedButton result) {
|
fm.sendTo(pl, [](Player& pl, ll::form::ModalFormResult result, ll::form::FormCancelReason) {
|
||||||
if (result == ll::form::ModalForm::SelectedButton::Upper) {
|
if (result == ll::form::ModalFormSelectedButton::Upper) {
|
||||||
return searchPlayerForm(pl);
|
return searchPlayerForm(pl);
|
||||||
}
|
}
|
||||||
return mainForm(pl);
|
return mainForm(pl);
|
||||||
@@ -246,8 +245,8 @@ void confirmWriteForm(Player& pl, mce::UUID uuid, std::string name) {
|
|||||||
tr("form.confirmAction"),
|
tr("form.confirmAction"),
|
||||||
tr("form.cancelAction")
|
tr("form.cancelAction")
|
||||||
);
|
);
|
||||||
fm.sendTo(pl, [uuid, name](Player& pl, ll::form::ModalForm::SelectedButton result) {
|
fm.sendTo(pl, [uuid, name](Player& pl, ll::form::ModalFormResult result, ll::form::FormCancelReason) {
|
||||||
if (result == ll::form::ModalForm::SelectedButton::Upper) {
|
if (result == ll::form::ModalFormSelectedButton::Upper) {
|
||||||
auto& self = static_cast<GMLIB_Player&>(pl);
|
auto& self = static_cast<GMLIB_Player&>(pl);
|
||||||
auto nbt = self.getNbt();
|
auto nbt = self.getNbt();
|
||||||
auto targetNbt = GMLIB_Player::getPlayerNbt(uuid);
|
auto targetNbt = GMLIB_Player::getPlayerNbt(uuid);
|
||||||
@@ -268,8 +267,8 @@ void confirmDeleteForm(Player& pl, mce::UUID uuid, std::string name) {
|
|||||||
tr("form.confirmAction"),
|
tr("form.confirmAction"),
|
||||||
tr("form.cancelAction")
|
tr("form.cancelAction")
|
||||||
);
|
);
|
||||||
fm.sendTo(pl, [uuid, name](Player& pl, ll::form::ModalForm::SelectedButton result) {
|
fm.sendTo(pl, [uuid, name](Player& pl, ll::form::ModalFormResult result, ll::form::FormCancelReason) {
|
||||||
if (result == ll::form::ModalForm::SelectedButton::Upper) {
|
if (result == ll::form::ModalFormSelectedButton::Upper) {
|
||||||
auto player = GMLIB_Level::getLevel()->getPlayer(uuid);
|
auto player = GMLIB_Level::getLevel()->getPlayer(uuid);
|
||||||
if (player) {
|
if (player) {
|
||||||
return deleteFailedForm(pl, uuid, name);
|
return deleteFailedForm(pl, uuid, name);
|
||||||
@@ -288,8 +287,8 @@ void deleteFailedForm(Player& pl, mce::UUID uuid, std::string name) {
|
|||||||
tr("form.deleteFailed.returnCheck"),
|
tr("form.deleteFailed.returnCheck"),
|
||||||
tr("form.returnMainForm")
|
tr("form.returnMainForm")
|
||||||
);
|
);
|
||||||
fm.sendTo(pl, [uuid](Player& pl, ll::form::ModalForm::SelectedButton result) {
|
fm.sendTo(pl, [uuid](Player& pl, ll::form::ModalFormResult result, ll::form::FormCancelReason) {
|
||||||
if (result == ll::form::ModalForm::SelectedButton::Upper) {
|
if (result == ll::form::ModalFormSelectedButton::Upper) {
|
||||||
return checkPlayerForm(pl, uuid);
|
return checkPlayerForm(pl, uuid);
|
||||||
}
|
}
|
||||||
return mainForm(pl);
|
return mainForm(pl);
|
||||||
|
|||||||
@@ -49,6 +49,8 @@ std::string defaultLanguage_en_US = R"(
|
|||||||
checkAll.empty=You've played the entire archive alone, and you're still playing here to check the bag? \nWhy don't you go and recruit people?
|
checkAll.empty=You've played the entire archive alone, and you're still playing here to check the bag? \nWhy don't you go and recruit people?
|
||||||
resumeInventory.success=Your backpack has been resumed!
|
resumeInventory.success=Your backpack has been resumed!
|
||||||
resumeInventory.failed=Unable to resume your backpack, no data was found on your backpack!
|
resumeInventory.failed=Unable to resume your backpack, no data was found on your backpack!
|
||||||
|
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"(
|
std::string defaultLanguage_zh_CN = R"(
|
||||||
@@ -99,4 +101,6 @@ std::string defaultLanguage_zh_CN = R"(
|
|||||||
checkAll.empty=整个存档就你一个人玩过,还在这玩查包呢?\n还不快去招人?
|
checkAll.empty=整个存档就你一个人玩过,还在这玩查包呢?\n还不快去招人?
|
||||||
resumeInventory.success=已成功复原你的背包!
|
resumeInventory.success=已成功复原你的背包!
|
||||||
resumeInventory.failed=无法复原你的背包,没有找到你的背包数据!
|
resumeInventory.failed=无法复原你的背包,没有找到你的背包数据!
|
||||||
|
error.protocolMismatch.info=此插件正在不兼容的版本协议上运行!这可能造成服务器崩溃!
|
||||||
|
error.protocolMismatch.version=此插件支持版本协议 %1$s,服务器版本协议 %2$s。
|
||||||
)";
|
)";
|
||||||
|
|||||||
+3
-3
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"format_version": 2,
|
"format_version": 2,
|
||||||
"tooth": "github.com/GroupMountain/InventoryCheck",
|
"tooth": "github.com/GroupMountain/InventoryCheck",
|
||||||
"version": "0.9.1",
|
"version": "0.11.0",
|
||||||
"info": {
|
"info": {
|
||||||
"name": "InventoryCheck",
|
"name": "InventoryCheck",
|
||||||
"description": "Check Player's Inventory",
|
"description": "Check Player's Inventory",
|
||||||
@@ -14,9 +14,9 @@
|
|||||||
"gmlib"
|
"gmlib"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"asset_url": "https://github.com/GroupMountain/InventoryCheck/releases/download/v0.9.1/InventoryCheck-windows-x64.zip",
|
"asset_url": "https://github.com/GroupMountain/InventoryCheck/releases/download/v0.11.0/InventoryCheck-windows-x64.zip",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"github.com/GroupMountain/GMLIB": ">=0.9.2"
|
"github.com/GroupMountain/GMLIB": ">=0.10.0"
|
||||||
},
|
},
|
||||||
"files": {
|
"files": {
|
||||||
"place": [
|
"place": [
|
||||||
|
|||||||
Reference in New Issue
Block a user