summaryrefslogtreecommitdiffstats
path: root/src/ClientHandle.cpp
diff options
context:
space:
mode:
authorHowaner <franzi.moos@googlemail.com>2014-08-02 00:14:05 +0200
committerHowaner <franzi.moos@googlemail.com>2014-08-02 00:14:05 +0200
commit3b4255dbfe6dc0fa2ecd861221a2ed5b124a81ad (patch)
tree91b4dfb63a419f88333b2c7bfc0beacd431d2d22 /src/ClientHandle.cpp
parentFixed issues with autocomplete and time loading (diff)
downloadcuberite-3b4255dbfe6dc0fa2ecd861221a2ed5b124a81ad.tar
cuberite-3b4255dbfe6dc0fa2ecd861221a2ed5b124a81ad.tar.gz
cuberite-3b4255dbfe6dc0fa2ecd861221a2ed5b124a81ad.tar.bz2
cuberite-3b4255dbfe6dc0fa2ecd861221a2ed5b124a81ad.tar.lz
cuberite-3b4255dbfe6dc0fa2ecd861221a2ed5b124a81ad.tar.xz
cuberite-3b4255dbfe6dc0fa2ecd861221a2ed5b124a81ad.tar.zst
cuberite-3b4255dbfe6dc0fa2ecd861221a2ed5b124a81ad.zip
Diffstat (limited to 'src/ClientHandle.cpp')
-rw-r--r--src/ClientHandle.cpp17
1 files changed, 16 insertions, 1 deletions
diff --git a/src/ClientHandle.cpp b/src/ClientHandle.cpp
index d71c6a9d8..72257028a 100644
--- a/src/ClientHandle.cpp
+++ b/src/ClientHandle.cpp
@@ -795,7 +795,22 @@ void cClientHandle::HandleBeaconSelection(const char * a_Data, size_t a_Length)
Window->SetSlot(*m_Player, 0, cItem());
BeaconWindow->GetBeaconEntity()->SetPrimaryEffect(PrimaryEffect);
- BeaconWindow->GetBeaconEntity()->SetSecondaryEffect(SecondaryEffect);
+
+ // Valid effect check. Vanilla don't check this, but we do it :)
+ if (
+ (SecondaryEffect == cEntityEffect::effNoEffect) ||
+ (SecondaryEffect == cEntityEffect::effRegeneration) ||
+ (SecondaryEffect == BeaconWindow->GetBeaconEntity()->GetPrimaryEffect())
+ )
+ {
+ BeaconWindow->GetBeaconEntity()->SetSecondaryEffect(SecondaryEffect);
+ }
+ else
+ {
+ BeaconWindow->GetBeaconEntity()->SetSecondaryEffect(cEntityEffect::effNoEffect);
+ }
+
+ m_Player->CloseWindow(true);
}