Genisys icon indicating copy to clipboard operation
Genisys copied to clipboard

A Floating Inventory + NBT tags Issue.

Open Muqsit opened this issue 7 years ago • 5 comments

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

Muqsit avatar Mar 15 '17 11:03 Muqsit

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

JunkDaCoder avatar Mar 16 '17 02:03 JunkDaCoder

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

JackNoordhuis avatar Mar 16 '17 02:03 JackNoordhuis

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

JunkDaCoder avatar Mar 17 '17 05:03 JunkDaCoder

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

Muqsit avatar Mar 17 '17 05:03 Muqsit

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

JunkDaCoder avatar Mar 17 '17 14:03 JunkDaCoder