aboutsummaryrefslogtreecommitdiff
path: root/src/server
diff options
context:
space:
mode:
Diffstat (limited to 'src/server')
-rw-r--r--src/server/player_sao.cpp15
-rw-r--r--src/server/player_sao.h3
2 files changed, 18 insertions, 0 deletions
diff --git a/src/server/player_sao.cpp b/src/server/player_sao.cpp
index 9aa7ce39f..16983ef4d 100644
--- a/src/server/player_sao.cpp
+++ b/src/server/player_sao.cpp
@@ -531,6 +531,11 @@ ItemStack PlayerSAO::getWieldedItem(ItemStack *selected, ItemStack *hand) const
return m_player->getWieldedItem(selected, hand);
}
+bool PlayerSAO::getOffhandWieldedItem(ItemStack *offhand, ItemStack *place, IItemDefManager *itemdef_manager, PointedThing pointed) const
+{
+ return m_player->getOffhandWieldedItem(offhand, place, itemdef_manager, pointed);
+}
+
bool PlayerSAO::setWieldedItem(const ItemStack &item)
{
InventoryList *mlist = m_player->inventory.getList(getWieldList());
@@ -541,6 +546,16 @@ bool PlayerSAO::setWieldedItem(const ItemStack &item)
return false;
}
+bool PlayerSAO::setOffhandWieldedItem(const ItemStack &item)
+{
+ InventoryList *olist = m_player->inventory.getList("offhand");
+ if (olist) {
+ olist->changeItem(0, item);
+ return true;
+ }
+ return false;
+}
+
void PlayerSAO::disconnected()
{
m_peer_id = PEER_ID_INEXISTENT;
diff --git a/src/server/player_sao.h b/src/server/player_sao.h
index bd190d323..eeaab6370 100644
--- a/src/server/player_sao.h
+++ b/src/server/player_sao.h
@@ -24,6 +24,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include "network/networkprotocol.h"
#include "unit_sao.h"
#include "util/numeric.h"
+#include "util/pointedthing.h"
/*
PlayerSAO needs some internals exposed.
@@ -130,7 +131,9 @@ public:
std::string getWieldList() const override { return "main"; }
u16 getWieldIndex() const override;
ItemStack getWieldedItem(ItemStack *selected, ItemStack *hand = nullptr) const override;
+ bool getOffhandWieldedItem(ItemStack *offhand, ItemStack *place, IItemDefManager *itemdef_manager, PointedThing pointed) const;
bool setWieldedItem(const ItemStack &item) override;
+ bool setOffhandWieldedItem(const ItemStack &item);
/*
PlayerSAO-specific