summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHowaner <franzi.moos@googlemail.com>2014-08-04 21:48:33 +0200
committerHowaner <franzi.moos@googlemail.com>2014-08-04 21:48:33 +0200
commit434ea542e174bc686a7c981476e23d30d18989c3 (patch)
tree7c4a20b9974816158ba08f9c8440cac46aa9f72b
parentFixed #1286 (diff)
downloadcuberite-434ea542e174bc686a7c981476e23d30d18989c3.tar
cuberite-434ea542e174bc686a7c981476e23d30d18989c3.tar.gz
cuberite-434ea542e174bc686a7c981476e23d30d18989c3.tar.bz2
cuberite-434ea542e174bc686a7c981476e23d30d18989c3.tar.lz
cuberite-434ea542e174bc686a7c981476e23d30d18989c3.tar.xz
cuberite-434ea542e174bc686a7c981476e23d30d18989c3.tar.zst
cuberite-434ea542e174bc686a7c981476e23d30d18989c3.zip
-rw-r--r--src/Items/ItemBow.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/Items/ItemBow.h b/src/Items/ItemBow.h
index e7a77dcbc..90645dd9a 100644
--- a/src/Items/ItemBow.h
+++ b/src/Items/ItemBow.h
@@ -57,6 +57,12 @@ public:
}
Force = std::min(Force, 1.0);
+ // Has the player a arrow?
+ if (!a_Player->IsGameModeCreative() && !a_Player->GetInventory().HasItems(cItem(E_ITEM_ARROW)))
+ {
+ return;
+ }
+
// Create the arrow entity:
cArrowEntity * Arrow = new cArrowEntity(*a_Player, Force * 2);
if (Arrow == NULL)
@@ -73,6 +79,10 @@ public:
a_Player->GetWorld()->BroadcastSoundEffect("random.bow", a_Player->GetPosX(), a_Player->GetPosY(), a_Player->GetPosZ(), 0.5, (float)Force);
if (!a_Player->IsGameModeCreative())
{
+ if (a_Player->GetEquippedItem().m_Enchantments.GetLevel(cEnchantments::enchInfinity) == 0)
+ {
+ a_Player->GetInventory().RemoveItem(cItem(E_ITEM_ARROW));
+ }
a_Player->UseEquippedItem();
}
}