Coder Social home page Coder Social logo

diamond-gold / dummyitemsblocks Goto Github PK

View Code? Open in Web Editor NEW
24.0 2.0 9.0 289 KB

🗿 Adds items and blocks for decoration purposes

Home Page: https://poggit.pmmp.io/p/DummyItemsBlocks

License: MIT License

PHP 100.00%
mcpe pocketmine pocketmine-mp pmmp bedrock-edition mcbedrock mcpe-plugin minecraft-plugin pmmp-plugin pmmp-plugins

dummyitemsblocks's Introduction

DummyItemsBlocks

Items and blocks added are not functional, they are just for decoration purposes.

  • Except for lingering potions which are functional as normal splash potions.

Supports all items and blocks up to Minecraft 1.20

Allows worlds with such items or blocks to be loaded

Freedom to control items and blocks added via config.yml

Encountered a bug? Want something added? Create an issue (#°Д°)

Have questions? Start a discussion ✍(◔◡◔)

Starring the GitHub repository is like sprinkling stardust—help me create magic! (。・∀・)ノ

Feeling generous? Buy me some snacks! (❤´艸`❤)

Feature Requests Bug Reports

Known issue when another plugin that add vanilla items or blocks is installed

[Server thread/CRITICAL]: InvalidArgumentException: "Deserializer is already assigned for "minecraft:shield"" (EXCEPTION) in "pmsrc/src/data/bedrock/item/ItemDeserializer" at line 55

If you encounter similar error in another plugin, please delete minecraft:shield in config.yml

Replace minecraft:shield with the item or block specified in the error message.

Special behavior

By default, the following is required to change block states by right-clicking

  • Player is in creative mode
  • Have dummyitemsblocks.changestate permission, default: op
  • Holding an arrow named Change State in either main hand or offhand
    • Can be obtained by: /give player arrow 1 {display:{Name:"Change State"}}

Customizable using the Main::setCanChangeStatesClosure() method

Examples of block state changes by right-clicking:

Block Sneak-right-click Right-click
(Soul) Campfire Toggle fire Place item
Crafter Toggle triggered Toggle crafting
Decorated Pot Toggle animation Place sherd pattern
(Sticky) Piston - Toggle extended
Turtle Egg Increase cracks Increase egg Count

There are many other blocks that can change state by right-clicking.

Acknowledgements

Referenced from various PRs on the PocketMine-MP repo

Contains code adapted from

  • #5232 Goat Horn
  • #5455 Firework Star/Rocket

Icon created using textures from: https://modrinth.com/resourcepack/vanillaxbr

dummyitemsblocks's People

Contributors

diamond-gold avatar poggit-bot avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

dummyitemsblocks's Issues

Incompatible API version

I have a server with pocketmine 5.6.0, I installed the plugin and it shows this error and then the server shuts down.

Could not load plugin 'DummyItemsBlocks': Incompatible API version

image

Minecraft: 1.20.30
Plugin Version: 1.0.2

Add minecraft:enchanted_book

Can you add minecraft:enchanted_book? It would be useful because some of my players still have the book and I don't have a replacement for it atm.

"Block observer is not supported" error

I'm getting the error message Block observer is not supported when the plugin enables; from what I found in the code, it seems to be an issue with unmapped block states, but why is that? Is there any easy way to fix/workaround this? Thanks.

Incompatible with NetherGames fork

Fatal error: Declaration of diamondgold\DummyItemsBlocks\tile\DummyTile::addAdditionalSpawnData(pocketmine\nbt\tag\CompoundTag $nbt): void must be compatible with pocketmine\block\tile\Spawnable::addAdditionalSpawnData(pocketmine\nbt\tag\CompoundTag $nbt, pocketmine\network\mcpe\convert\TypeConverter $typeConverter): void in C:\Users\LENOVO\Desktop\Total\IceCubeSV-NW-PM5\IceCubeNW-ROLEPLAY\plugins\DummyItemsBlocks-43e90efa11e4cd07930ea66c608e197b3a9289a4\src\diamondgold\DummyItemsBlocks\tile\DummyTile.php on line 14
[15:37:05.093] [Server thread/EMERGENCY]: An unrecoverable error has occurred and the server has crashed. Creating a crash dump
[15:37:05.099] [Server thread/EMERGENCY]: Please upload the "C:/Users/LENOVO/Desktop/Total/IceCubeSV-NW-PM5/IceCubeNW-ROLEPLAY/crashdumps/Tue_Nov_14-15.37.05-+0330_2023.log" file to the Crash Archive and submit the link to the Bug Reporting page. Give as much info as you can.
[15:37:05.100] [Server thread/EMERGENCY]: Forcing server shutdown

Conflict with Customies / NetherReactor plugin

Describe the bug
Netherreactor + Customies plugin works fine in isolation. Add in dummy blocks, even though there are no overlapping blocks and suddenly pumpkins appear everywhere whenever you place or break a block. If you restart the server the pumpkins vanish but you get stuck inside them as they generate.

To Reproduce
Add Customies, NetherReactor and DummyBlocks plugins and activate the nether reactor.

Expected behavior
A spire of netherrack should form. Instead pumpkins and netherrack form.

Screenshots
If applicable, add screenshots to help explain your problem.

Version information
PocketMine: 5.10.0
Plugin: NetherReactor dev5, Mobplugin dev51, Customies (latest)
Minecraft: 1.20.50
Minecraft 22_01_2024 21_31_49
image

Uncompability with Campfire Plugin

  1. Install a third-party plugin that will add a working campfire
  2. start the server
THIS CRASH WAS CAUSED BY A PLUGIN
BAD PLUGIN: DummyItemsBlocks

Thread: AsyncWorker#0
Error: diamondgold\DummyItemsBlocks\util\BlockStateRegistration::diamondgold\DummyItemsBlocks\util\{closure}(): Argument #1 ($block) must be of type pocketmine\block\SimplePillar, pocketmine\block\UnknownBlock given, called in /root/MerryWorld/src/data/bedrock/block/convert/BlockObjectToStateSerializer.php on line 270
File: plugins/DummyItemsBlocks/src/diamondgold/DummyItemsBlocks/util/BlockStateRegistration
Line: 211
Type: TypeError
Backtrace:
#0 pmsrc/src/data/bedrock/block/convert/BlockObjectToStateSerializer(270): diamondgold\DummyItemsBlocks\util\BlockStateRegistration::diamondgold\DummyItemsBlocks\util\{closure}(object pocketmine\block\UnknownBlock#167248)
#1 pmsrc/src/data/bedrock/block/convert/BlockObjectToStateSerializer(214): pocketmine\data\bedrock\block\convert\BlockObjectToStateSerializer->serializeBlock(object pocketmine\block\UnknownBlock#167248)
#2 pmsrc/src/network/mcpe/convert/BlockTranslator(61): pocketmine\data\bedrock\block\convert\BlockObjectToStateSerializer->serialize(int 21975721)
#3 pmsrc/src/network/mcpe/serializer/ChunkSerializer(148): pocketmine\network\mcpe\convert\BlockTranslator->internalIdToNetworkId(int 21975721)
#4 pmsrc/src/network/mcpe/serializer/ChunkSerializer(94): pocketmine\network\mcpe\serializer\ChunkSerializer::serializeSubChunk(object pocketmine\world\format\SubChunk#33861, object pocketmine\network\mcpe\convert\BlockTranslator#49166, object pocketmine\network\mcpe\protocol\serializer\PacketSerializer#167349, false)
#5 pmsrc/src/network/mcpe/ChunkRequestTask(74): pocketmine\network\mcpe\serializer\ChunkSerializer::serializeFullChunk(object pocketmine\world\format\Chunk#49173, int 0, object pocketmine\network\mcpe\convert\BlockTranslator#49166, string[0] )
#6 pmsrc/src/scheduler/AsyncTask(81): pocketmine\network\mcpe\ChunkRequestTask->onRun()
#7 (): pocketmine\scheduler\AsyncTask->run()

Code:
[202]     {
[203]         $block = new SimplePillar(new BlockIdentifier(BlockTypeIds::newId()), Utils::generateNameFromId($id), new BlockTypeInfo(BlockBreakInfo::instant()));
[204]         self::register($block, [$id]);
[205] 
[206]         GlobalBlockStateHandlers::getDeserializer()->map($id,
[207]             fn(Reader $reader): SimplePillar => (clone $block)
[208]                 ->setAxis($reader->readPillarAxis())
[209]         );
[210]         GlobalBlockStateHandlers::getSerializer()->map($block,
[211]             fn(SimplePillar $block) => Writer::create($id)
[212]                 ->writePillarAxis($block->getAxis())
[213]         );
[214]     }
[215] 
[216]     public static function sign(string $standingId, string $wallId, FloorSign $floor, WallSign $wall): void
[217]     {
[218]         self::register($floor, [$standingId], false);
[219] 
[220]         GlobalBlockStateHandlers::getDeserializer()->map($standingId,
[221]             fn(Reader $reader): FloorSign => BlockStateDeserializerHelper::decodeFloorSign(clone $floor, $reader)

Incompatible with NetherGames fork

What is this?

PocketMine-MP version: 5.3.3 [Protocol 594]
PHP version: 8.2.7
OS: Linux, linux

THIS CRASH WAS CAUSED BY A PLUGIN
BAD PLUGIN: DummyItemsBlocks

Error: Declaration of diamondgold\DummyItemsBlocks\tile\DummyTile::addAdditionalSpawnData(pocketmine\nbt\tag\CompoundTag $nbt): void must be compatible with pocketmine\block\tile\Spawnable::addAdditionalSpawnData(pocketmine\nbt\tag\CompoundTag $nbt, pocketmine\network\mcpe\convert\TypeConverter $typeConverter): void
File: plugins/DummyItemsBlocks/src/diamondgold/DummyItemsBlocks/tile/DummyTile
Line: 14
Type: E_COMPILE_ERROR

Deserializer is already assigned

[04:38:29.160] [Server thread/CRITICAL]: InvalidArgumentException: "Deserializer is already assigned for "minecraft:axolotl_spawn_egg"" (EXCEPTION) in "pmsrc/src/data/bedrock/item/ItemDeserializer" at line 55

v1.20.60.4 - Update Blocks

The bug
Latest Minecraft update has left us with update blocks and also some block identities are no longer correct eg. lodestone is bamboo planks now, wool carpet is cyan concrete?

Version information
PocketMine: 5.11.0
Minecraft: 1.20.60

Screenshots
Minecraft 10_02_2024 21_23_54
Minecraft 08_02_2024 18_11_43

Proxy!

I use This Plugin In My Server Which Is Run In Waterdog Proxy I Add This Plugin In My Lobby And Main Both Servers still it's make issue Like When I Go Lobby To Main Server Some Items Are Change Like Wood Look Like Stone ☠️ Cam You Slove This Issue?

minecraft:warped_nylium does not work

2023-08-18 [06:34:48.395] [Server thread/EMERGENCY]: Crash occurred while handling a packet from session: XXXXXXX
2023-08-18 [06:34:48.396] [Server thread/CRITICAL]: pocketmine\data\SavedDataLoadingException: "No deserializer found for ID minecraft:warped_nylium" (EXCEPTION) in "pmsrc/src/item/Item" at line 723

To Reproduce
Steps to reproduce the behavior:

  1. have an inventory with warped_nylium
  2. join
  3. crash

Version information
PocketMine: 5.4.2
Plugin: 1.0.1
Minecraft: latest

1.20.30 Support

Many blocks changed by 1.20.30 are unsupported with DummyItemsBlocks.

Error

Fatal error: Declaration of diamondgold\DummyItemsBlocks\tile\DummyTile::addAdditionalSpawnData(pocketmine\nbt\tag\CompoundTag $nbt): void must be compatible with pocketmine\block\tile\Spawnable::addAdditionalSpawnData(pocketmine\nbt\tag\CompoundTag $nbt, pocketmine\network\mcpe\convert\TypeConverter $typeConverter): void in phar:///media/angga7togk/MyDisk/serverlocal/PocketMine-MP/plugins/DummyItemsBlocks (2).phar/src/diamondgold/DummyItemsBlocks/tile/DummyTile.php on line 1

Unmapped string ID

[Server thread/WARNING]: [DummyItemsBlocks] Block minecraft:acacia_leaves is not supported: Unmapped string ID "minecraft:acacia_leaves"
[12:55:38.216] [Server thread/WARNING]: [DummyItemsBlocks] Block minecraft:acacia_slab is not supported: Unmapped string ID "minecraft:acacia_slab"
[12:55:38.216] [Server thread/WARNING]: [DummyItemsBlocks] Block minecraft:acacia_wood is not supported: Unmapped string ID "minecraft:acacia_wood"
[12:55:38.219] [Server thread/WARNING]: [DummyItemsBlocks] Block minecraft:birch_leaves is not supported: Unmapped string ID "minecraft:birch_leaves"
[12:55:38.220] [Server thread/WARNING]: [DummyItemsBlocks] Block minecraft:birch_slab is not supported: Unmapped string ID "minecraft:birch_slab"
[12:55:38.220] [Server thread/WARNING]: [DummyItemsBlocks] Block minecraft:birch_wood is not supported: Unmapped string ID "minecraft:birch_wood"
[12:55:38.227] [Server thread/WARNING]: [DummyItemsBlocks] Block minecraft:dark_oak_leaves is not supported: Unmapped string ID "minecraft:dark_oak_leaves"
[12:55:38.228] [Server thread/WARNING]: [DummyItemsBlocks] Block minecraft:dark_oak_slab is not supported: Unmapped string ID "minecraft:dark_oak_slab"
[12:55:38.228] [Server thread/WARNING]: [DummyItemsBlocks] Block minecraft:dark_oak_wood is not supported: Unmapped string ID "minecraft:dark_oak_wood"
[12:55:38.231] [Server thread/WARNING]: [DummyItemsBlocks] Block minecraft:double_wood_slab is not supported: Unmapped string ID "minecraft:oak_slab"
[12:55:38.232] [Server thread/WARNING]: [DummyItemsBlocks] Block minecraft:double_wood_slabs is not supported: Unmapped string ID "minecraft:oak_slab"
[12:55:38.232] [Server thread/WARNING]: [DummyItemsBlocks] Block minecraft:double_wooden_slab is not supported: Unmapped string ID "minecraft:oak_slab"
[12:55:38.232] [Server thread/WARNING]: [DummyItemsBlocks] Block minecraft:double_wooden_slabs is not supported: Unmapped string ID "minecraft:oak_slab"
[12:55:38.243] [Server thread/WARNING]: [DummyItemsBlocks] Block minecraft:grass is not supported: Unmapped string ID "minecraft:grass_block"
[12:55:38.245] [Server thread/WARNING]: [DummyItemsBlocks] Block minecraft:jungle_leaves is not supported: Unmapped string ID "minecraft:jungle_leaves"
[12:55:38.246] [Server thread/WARNING]: [DummyItemsBlocks] Block minecraft:jungle_slab is not supported: Unmapped string ID "minecraft:jungle_slab"
[12:55:38.246] [Server thread/WARNING]: [DummyItemsBlocks] Block minecraft:jungle_wood is not supported: Unmapped string ID "minecraft:jungle_wood"
[12:55:38.247] [Server thread/WARNING]: [DummyItemsBlocks] Block minecraft:leave is not supported: Unmapped string ID "minecraft:oak_leaves"
[12:55:38.247] [Server thread/WARNING]: [DummyItemsBlocks] Block minecraft:leave2 is not supported: Unmapped string ID "minecraft:acacia_leaves"

Latest PM and DummyItemsBlocks

I don't have any blocks from this log in the config

Could not check compatibility between pocketmine\block\Block`s default methods

some blocks may not be placed properly (for example, Kelp can be placed in air), I wanted to implement a restriction on such actions, but I got an error:

Thread: Main
Error: Could not check compatibility between diamondgold\DummyItemsBlocks\block\Kelp::canBePlacedAt(diamondgold\DummyItemsBlocks\block\Block $blockReplace, pocketmine\math\Vector3 $clickVector, int $face, bool $isClickedBlock): bool and pocketmine\block\Block::canBePlacedAt(pocketmine\block\Block $blockReplace, pocketmine\math\Vector3 $clickVector, int $face, bool $isClickedBlock): bool, because class diamondgold\DummyItemsBlocks\block\Block is not available
File: plugins/DummyItemsBlocks/src/diamondgold/DummyItemsBlocks/block/Kelp
Line: 46
Type: E_COMPILE_ERROR

Due to this error, I cannot properly implement the functionality of some blocks.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.