Genisys
Genisys copied to clipboard
A Floating Inventory + NBT tags Issue.
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
- Genisys: 0fa8ebf
- PHP: 7.0.16
- Server OS: Ubuntu 14.04
- Game version: 1.0.4
Crashdump, backtrace, memory dumps, plugins list or other files
Can confirm, if allow cheats are on there are possibilites for hackers unless there would be a plugin to cancel it
Perhaps this has something to do with the deep equals issues?
@JackNoordhuis no, i went into the src code and remove all the deepequals code and replaced the equals from the official pmmp
It works for most part if you remove the floating inventory lines off DropItemTransaction.
ill keep looking to see if theres any issues, its probably 99% floating inventory though