diff --git a/Minecraft.Server/WorldManager.cpp b/Minecraft.Server/WorldManager.cpp index 57b27f86..a04d7344 100644 --- a/Minecraft.Server/WorldManager.cpp +++ b/Minecraft.Server/WorldManager.cpp @@ -136,8 +136,8 @@ static bool EnsureDirectoryExists(const std::wstring &directoryPath, bool *outCr /** * Prepares the save root used by the Windows64 storage layout - * - Creates `Windows64` first because `CreateDirectoryW` is not recursive - * - Creates `Windows64\\GameHDD` when missing before world bootstrap starts + * - Creates `Data` first because `CreateDirectoryW` is not recursive + * - Creates `Data\Saves` when missing before world bootstrap starts * Windows64用保存先ディレクトリの存在保証 */ static bool EnsureGameHddRootExists() diff --git a/Minecraft.World/ArmorItem.cpp b/Minecraft.World/ArmorItem.cpp index e5b7e571..bcd8ff8f 100644 --- a/Minecraft.World/ArmorItem.cpp +++ b/Minecraft.World/ArmorItem.cpp @@ -266,15 +266,27 @@ Icon *ArmorItem::getEmptyIcon(int slot) } // TU25 Addition -shared_ptr ArmorItem::use(shared_ptr item, Level *level, shared_ptr player) +bool ArmorItem::use(shared_ptr itemInstance, Level *level, shared_ptr player) { - if ((player->getArmor(Mob::getEquipmentSlotForItem(item) - 1)) == nullptr) + if ((player->getArmor(Mob::getEquipmentSlotForItem(itemInstance) - 1)) == nullptr) { - shared_ptr equip = item->copy(); + shared_ptr equip = itemInstance->copy(); equip->count = 1; - player->setEquippedSlot(Mob::getEquipmentSlotForItem(item) - 1, equip); + player->setEquippedSlot(Mob::getEquipmentSlotForItem(itemInstance) - 1, equip); item->count--; } + return item; +} + +bool ArmorItem::TestUse(shared_ptr itemInstance, Level *level, shared_ptr player) +{ + if ((player->getArmor(Mob::getEquipmentSlotForItem(itemInstance) - 1)) == nullptr) + { + shared_ptr equip = itemInstance->copy(); + equip->count = 1; + player->setEquippedSlot(Mob::getEquipmentSlotForItem(itemInstance) - 1, equip); + } + return item; } \ No newline at end of file diff --git a/Minecraft.World/ArmorItem.h b/Minecraft.World/ArmorItem.h index 5b5c4d55..6376ad6b 100644 --- a/Minecraft.World/ArmorItem.h +++ b/Minecraft.World/ArmorItem.h @@ -89,5 +89,6 @@ public: static Icon *getEmptyIcon(int slot); - virtual shared_ptr use(shared_ptr itemInstance, Level *level, shared_ptr player); + virtual bool TestUse(shared_ptr itemInstance, Level *level, shared_ptr player); + virtual bool use(shared_ptr itemInstance, Level *level, shared_ptr player); }; \ No newline at end of file diff --git a/README.md b/README.md index f74a9d4c..1a456c45 100644 --- a/README.md +++ b/README.md @@ -170,7 +170,7 @@ Fixed server runtime behavior in container: Persistent files are bind-mounted to host: - `./server-data/server.properties` -> `/srv/mc/server.properties` -- `./server-data/GameHDD` -> `/srv/mc/Windows64/GameHDD` +- `./server-data/Saves` -> `/srv/mc/Data/Saves` ## Build & Run diff --git a/docker/dedicated-server/Dockerfile b/docker/dedicated-server/Dockerfile index 14760afd..863a3a4c 100644 --- a/docker/dedicated-server/Dockerfile +++ b/docker/dedicated-server/Dockerfile @@ -23,7 +23,7 @@ WORKDIR /srv/mc COPY ${MC_RUNTIME_DIR}/Minecraft.Server.exe /srv/mc/Minecraft.Server.exe COPY ${MC_RUNTIME_DIR}/iggy_w64.dll /srv/mc/iggy_w64.dll COPY ${MC_RUNTIME_DIR}/Common /srv/mc/Common -COPY ${MC_RUNTIME_DIR}/Windows64 /srv/mc/Windows64 +COPY ${MC_RUNTIME_DIR}/Data /srv/mc/Data COPY docker/dedicated-server/entrypoint.sh /usr/local/bin/entrypoint.sh RUN chmod 0755 /usr/local/bin/entrypoint.sh \