iTXTech / Genisys

Feature-rich server software for Minecraft: Pocket Edition & Windows 10 Edition Beta
https://itxtech.org/genisys/
GNU General Public License v3.0
433 stars 243 forks source link

A Floating Inventory + NBT tags Issue. #2387

Open Muqsit opened 7 years ago

Muqsit commented 7 years ago

Issue description

Items having at least 1 namedtag can/will keep glitching in and out of your inventory. When you drop them, it won't drop anything; and when you pick them up and open your inventory, the item drops by itself.

This does not happen with allow-cheats turned on.

Steps to reproduce the issue

Using this code:

$item = Item::get(Item::TNT, 0, 10);
$item->setCustomName(TextFormat::RESET.TextFormat::AQUA.'A Custom Named TNT');
Player::getInventory()->addItem($item);

Now throw the item. If the above code doesn't work, try with this item...

$item = Item::get(Item::DIAMOND_SWORD, 0, 10);
$item->setCustomName(TextFormat::RESET.TextFormat::AQUA.'A Custom Named TNT');
$nbt = $item->getNamedTag();
$nbt->tag1 = new StringTag('tag1', 'A custom tag');
$nbt->tag2 = new StringTag('tag2', 'Another custom tag');
$item->setNamedTag($nbt);
//Player::getInventory()->addItem($item);

OS and versions

Crashdump, backtrace, memory dumps, plugins list or other files

JunkDaCoder commented 7 years ago

Can confirm, if allow cheats are on there are possibilites for hackers unless there would be a plugin to cancel it

JackNoordhuis commented 7 years ago

Perhaps this has something to do with the deep equals issues?

JunkDaCoder commented 7 years ago

@JackNoordhuis no, i went into the src code and remove all the deepequals code and replaced the equals from the official pmmp

Muqsit commented 7 years ago

It works for most part if you remove the floating inventory lines off DropItemTransaction.

JunkDaCoder commented 7 years ago

ill keep looking to see if theres any issues, its probably 99% floating inventory though