diff options
author | Mattes D <github@xoft.cz> | 2014-04-20 13:34:38 +0200 |
---|---|---|
committer | Mattes D <github@xoft.cz> | 2014-04-20 13:34:38 +0200 |
commit | f99bdfb457bc1e497dd74932611a91add72b4f27 (patch) | |
tree | c5f0b53b4208b96089788719dfe2a1115ca5804d /src/ClientHandle.cpp | |
parent | APIDump: Added a ChunkStay article. (diff) | |
parent | Fixed Code (diff) | |
download | cuberite-f99bdfb457bc1e497dd74932611a91add72b4f27.tar cuberite-f99bdfb457bc1e497dd74932611a91add72b4f27.tar.gz cuberite-f99bdfb457bc1e497dd74932611a91add72b4f27.tar.bz2 cuberite-f99bdfb457bc1e497dd74932611a91add72b4f27.tar.lz cuberite-f99bdfb457bc1e497dd74932611a91add72b4f27.tar.xz cuberite-f99bdfb457bc1e497dd74932611a91add72b4f27.tar.zst cuberite-f99bdfb457bc1e497dd74932611a91add72b4f27.zip |
Diffstat (limited to '')
-rw-r--r-- | src/ClientHandle.cpp | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/ClientHandle.cpp b/src/ClientHandle.cpp index 07e91f59a..c7805e4de 100644 --- a/src/ClientHandle.cpp +++ b/src/ClientHandle.cpp @@ -2729,4 +2729,27 @@ void cClientHandle::SocketClosed(void) +void cClientHandle::HandleEnchantItem(Byte & WindowID, Byte & Enchantment) +{ + cEnchantingWindow * Window = (cEnchantingWindow*)m_Player->GetWindow(); + cItem Item = *Window->m_SlotArea->GetSlot(0, *m_Player); + int BaseEnchantmentLevel = Window->GetPropertyValue(Enchantment); + + if (Item.EnchantByXPLevels(BaseEnchantmentLevel)) + { + if (m_Player->IsGameModeCreative() || m_Player->DeltaExperience(-m_Player->XpForLevel(BaseEnchantmentLevel)) >= 0) + { + Window->m_SlotArea->SetSlot(0, *m_Player, Item); + Window->SendSlot(*m_Player, Window->m_SlotArea, 0); + Window->BroadcastWholeWindow(); + + Window->SetProperty(0, 0, *m_Player); + Window->SetProperty(1, 0, *m_Player); + Window->SetProperty(2, 0, *m_Player); + } + } +} + + + |