mc-shell 0.7.1__tar.gz → 0.7.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {mc_shell-0.7.1 → mc_shell-0.7.2}/PKG-INFO +1 -1
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/__init__.py +185 -6
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/constants.py +9 -4
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/app/index.html +2 -2
- mc_shell-0.7.1/mcshell/data/app/mced.de838669.js → mc_shell-0.7.2/mcshell/data/app/mced.3d4a5c3d.js +43 -25
- mc_shell-0.7.1/mcshell/data/app/mced.de838669.js.map → mc_shell-0.7.2/mcshell/data/app/mced.3d4a5c3d.js.map +1 -1
- mc_shell-0.7.1/mcshell/data/app/toolbox.63a7b2d6.xml → mc_shell-0.7.2/mcshell/data/app/toolbox.193e3fba.xml +40 -19
- mc_shell-0.7.2/mcshell/data/materials/item_id_map.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/toolbox_template.xml +1 -1
- mc_shell-0.7.2/mcshell/digitalsetactions.py +243 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/mcactions.py +5 -3
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/mcactions_base.py +15 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/mcclient.py +2 -1
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/mcplayer.py +4 -3
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/mcscraper.py +63 -3
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/mcserver.py +2 -2
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/mcturtle.py +63 -18
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/pyncraftcactions.py +20 -8
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/qturtleactions.py +2 -2
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/registry_builder.py +50 -25
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/serveractions.py +74 -8
- {mc_shell-0.7.1 → mc_shell-0.7.2}/pyproject.toml +1 -1
- {mc_shell-0.7.1 → mc_shell-0.7.2}/LICENSE +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/README.md +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/Matrix3.py +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/Vec3.py +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/blueprints/control_api.py +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/blueprints/ipython_api.py +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/blueprints/powers_api.py +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/FruitJuice-0.3.0.jar +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/FruitJuice-0.4.0.jar +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/FruitJuice-0.4.1.jar +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/app/control.a8439284.css +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/app/control.a8439284.css.map +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/app/control.b03e9afc.js +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/app/control.b03e9afc.js.map +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/app/control.html +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/app/mced.3f8a9cca.css +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/app/mced.3f8a9cca.css.map +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/app/mced.a4de160c.js +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/app/mced.a4de160c.js.map +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/app/mced.efd4d8e7.css +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/app/mced.efd4d8e7.css.map +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/control_layout.json +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/datapacks/flat_world/data/minecraft/dimension/overworld.json +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/datapacks/flat_world/data/minecraft/worldgen/biome/the_void.json +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/datapacks/flat_world/pack.mcmeta +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/datapacks/void_world/data/minecraft/dimension/overworld.json +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/datapacks/void_world/data/minecraft/functions/init.mcfunction +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/datapacks/void_world/data/minecraft/tags/functions/load.json +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/datapacks/void_world/data/minecraft/worldgen/biome/the_void.json +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/datapacks/void_world/pack.mcmeta +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/doc/command_docs.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/entities/entity_id_map.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/entities/generate_entity_blocks.mjs +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/entities/pickers.json +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/materials/colourables.json +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/materials/entity_overrides.json +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/materials/generate_material_blocks.mjs +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/materials/materials.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/materials/mcblocks.csv +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/materials/pickers.json +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/materials/singles.json +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/paper-global-template.yaml +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/powers/stdlib.json +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/%3F.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/Commands.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/EntityType.java.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/Material.html.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/ability.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/advancement.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/alwaysday.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/attribute.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/ban-ip.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/ban.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/banlist.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/bossbar.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/camera.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/camerashake.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/changesetting.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/clear.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/clearspawnpoint.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/clone.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/connect.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/damage.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/data.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/datapack.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/daylock.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/debug.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/dedicatedwsserver.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/defaultgamemode.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/deop.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/dialogue.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/difficulty.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/effect.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/enchant.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/event.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/execute.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/experience.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/fill.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/fillbiome.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/fog.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/forceload.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/function.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/gamemode.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/gamerule.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/gametest.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/give.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/help.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/immutableworld.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/item.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/jfr.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/kick.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/kill.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/list.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/locate.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/loot.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/me.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/mobevent.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/msg.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/music.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/op.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/ops.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/pardon-ip.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/pardon.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/particle.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/perf.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/permission.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/place_(Java_Edition).pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/playanimation.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/playsound.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/publish.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/random.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/recipe.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/reload.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/remove.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/replaceitem.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/return.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/ride.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/save-all.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/save-off.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/save-on.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/save.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/say.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/schedule.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/scoreboard.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/script.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/scriptevent.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/seed.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/setblock.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/setidletimeout.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/setmaxplayers.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/setworldspawn.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/spawnpoint.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/spectate.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/spreadplayers.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/stop.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/stopsound.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/structure.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/summon.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/tag.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/team.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/teammsg.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/teleport.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/tell.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/tellraw.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/testfor.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/testforblock.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/testforblocks.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/tickingarea.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/time.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/title.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/titleraw.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/tm.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/toggledownfall.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/tp.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/transferserver.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/trigger.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/volumearea.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/w.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/wb.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/weather.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/whitelist.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/worldborder.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/worldbuilder.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/wsserver.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/data/webpage-cache/xp.pkl +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/digitalgeometryactions.py +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/eventactions.py +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/mcblockly.py +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/mcexperience_base.py +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/mclsystem.py +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/mcrepo.py +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/mcshell.py +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/mcvoxel.py +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/mcvoxel_original.py +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/playeractions.py +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/ppdownloader.py +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/ppmanager.py +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/vendored/pyncraft/__init__.py +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/vendored/pyncraft/block.py +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/vendored/pyncraft/connection.py +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/vendored/pyncraft/entity.py +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/vendored/pyncraft/event.py +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/vendored/pyncraft/logger.py +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/vendored/pyncraft/minecraft.py +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/vendored/pyncraft/util.py +0 -0
- {mc_shell-0.7.1 → mc_shell-0.7.2}/mcshell/vendored/pyncraft/vec3.py +0 -0
|
@@ -18,6 +18,7 @@ from mcshell.ppmanager import *
|
|
|
18
18
|
from mcshell.ppdownloader import *
|
|
19
19
|
|
|
20
20
|
from mcshell.mcserver import stop_app_server
|
|
21
|
+
from mcshell.mcplayer import MCPlayer
|
|
21
22
|
|
|
22
23
|
import atexit
|
|
23
24
|
|
|
@@ -147,7 +148,9 @@ class MCShell(Magics):
|
|
|
147
148
|
print("\nWorld creation cancelled.")
|
|
148
149
|
return
|
|
149
150
|
|
|
150
|
-
self.server_data
|
|
151
|
+
self.server_data['password'] = password
|
|
152
|
+
|
|
153
|
+
# self.server_data = {"host": '127.0.0.1','port':MC_SERVER_PORT, "rcon_port": MC_RCON_PORT, "password": password, "fj_port":FJ_PLUGIN_PORT} # Port can be dynamic if needed
|
|
151
154
|
|
|
152
155
|
print("Input the ports for the server, rcon and plugin. These only need to be changed if you are running more than one mc-shell!")
|
|
153
156
|
try:
|
|
@@ -155,13 +158,22 @@ class MCShell(Magics):
|
|
|
155
158
|
resp_port = Prompt.ask('Server Port:', default=str(self.server_data['port']))
|
|
156
159
|
resp_rcon = Prompt.ask('RCON Port:', default=str(self.server_data['rcon_port']))
|
|
157
160
|
resp_fj = Prompt.ask('FruitJuice Port:', default=str(self.server_data['fj_port']))
|
|
161
|
+
resp_app = Prompt.ask('Application Port:', default=str(self.server_data['app_port']))
|
|
158
162
|
|
|
159
163
|
# Robust casting logic
|
|
160
164
|
ports = {
|
|
161
165
|
'port': int(resp_port) if resp_port else self.server_data['port'],
|
|
162
166
|
'rcon_port': int(resp_rcon) if resp_rcon else self.server_data['rcon_port'],
|
|
163
|
-
'fj_port': int(resp_fj) if resp_fj else self.server_data['fj_port']
|
|
167
|
+
'fj_port': int(resp_fj) if resp_fj else self.server_data['fj_port'],
|
|
168
|
+
'app_port': int(resp_app) if resp_app else self.server_data['app_port']
|
|
164
169
|
}
|
|
170
|
+
|
|
171
|
+
|
|
172
|
+
self.server_data['port'] = ports['port']
|
|
173
|
+
self.server_data['rcon_port'] = ports['rcon_port']
|
|
174
|
+
self.server_data['fj_port'] = ports['fj_port']
|
|
175
|
+
self.server_data['app_port'] = ports['app_port']
|
|
176
|
+
|
|
165
177
|
except (EOFError, KeyboardInterrupt):
|
|
166
178
|
print("\nWorld creation cancelled.")
|
|
167
179
|
return
|
|
@@ -210,7 +222,8 @@ class MCShell(Magics):
|
|
|
210
222
|
"server-port": self.server_data.get('port', MC_SERVER_PORT),
|
|
211
223
|
"query.port": self.server_data.get('port', MC_SERVER_PORT),
|
|
212
224
|
"rcon.port": self.server_data.get('rcon_port', MC_RCON_PORT),
|
|
213
|
-
"
|
|
225
|
+
"app.port": self.server_data.get('app_port', MC_APP_PORT),
|
|
226
|
+
"rcon.password": self.server_data.get('password'),
|
|
214
227
|
"enable-command-block":'true',
|
|
215
228
|
},
|
|
216
229
|
"FruitJuice" : {
|
|
@@ -326,6 +339,8 @@ class MCShell(Magics):
|
|
|
326
339
|
with creds_path.open('r') as f:
|
|
327
340
|
self.server_data = json.load(f)
|
|
328
341
|
|
|
342
|
+
if not 'app_port' in list(self.server_data.keys()):
|
|
343
|
+
self.server_data['app_port'] = 5001
|
|
329
344
|
# start the app server
|
|
330
345
|
self.ip.run_line_magic('mc_start_app','')
|
|
331
346
|
|
|
@@ -1049,14 +1064,14 @@ class MCShell(Magics):
|
|
|
1049
1064
|
self.server_data = {
|
|
1050
1065
|
'host': Prompt.ask('Server Address:', default=self.server_data['host']),
|
|
1051
1066
|
'fj_port': int(Prompt.ask('Plugin Port:', default=str(self.server_data['fj_port']))),
|
|
1052
|
-
'rcon_port':
|
|
1067
|
+
'rcon_port': int(Prompt.ask('Server Port:', default=str(self.server_data['rcon_port']))),
|
|
1068
|
+
'app_port': int(Prompt.ask('Application Port:', default=str(self.server_data['app_port']))),
|
|
1053
1069
|
'password':None,
|
|
1054
1070
|
}
|
|
1055
1071
|
|
|
1056
1072
|
login_to_server = Prompt.ask('Do you want to be a server op?',choices=['yes','no'],default='no')
|
|
1057
1073
|
if login_to_server.lower() == 'yes':
|
|
1058
1074
|
self.server_data.update({
|
|
1059
|
-
'rcon_port': int(Prompt.ask('Server Port:', default=str(self.server_data['rcon_port']))),
|
|
1060
1075
|
'password': Prompt.ask('Server Password:', password=True)
|
|
1061
1076
|
})
|
|
1062
1077
|
|
|
@@ -1066,6 +1081,10 @@ class MCShell(Magics):
|
|
|
1066
1081
|
stop_app_server()
|
|
1067
1082
|
print(f"Starting application server for authorized Minecraft player: {minecraft_name}")
|
|
1068
1083
|
start_app_server(self.server_data,minecraft_name,self.shell,power_repo)
|
|
1084
|
+
print(f"Open a browser here to use the editor:")
|
|
1085
|
+
print(f"\thttp://{socket.gethostname()}.local:{self.server_data['app_port']}")
|
|
1086
|
+
print(f"Open a browser here to use the control:")
|
|
1087
|
+
print(f"\thttp://{socket.gethostname()}.local:{self.server_data['app_port']}/control")
|
|
1069
1088
|
return
|
|
1070
1089
|
|
|
1071
1090
|
@line_magic
|
|
@@ -1138,7 +1157,6 @@ class MCShell(Magics):
|
|
|
1138
1157
|
except requests.exceptions.RequestException as e:
|
|
1139
1158
|
print(f"Error: Could not connect to the other player's application server. {e}")
|
|
1140
1159
|
|
|
1141
|
-
|
|
1142
1160
|
@line_magic
|
|
1143
1161
|
def mc_stdlib(self, line):
|
|
1144
1162
|
"""
|
|
@@ -1337,6 +1355,167 @@ class MCShell(Magics):
|
|
|
1337
1355
|
except Exception as e:
|
|
1338
1356
|
print(f"Sync failed: {e}")
|
|
1339
1357
|
|
|
1358
|
+
@line_magic
|
|
1359
|
+
def mc_library(self, line):
|
|
1360
|
+
"""
|
|
1361
|
+
Management magic for your personal Minecraft Shell Power Library.
|
|
1362
|
+
Usage:
|
|
1363
|
+
%mc_library list - List all powers in your library.
|
|
1364
|
+
%mc_library rename-category <old> <new> - Rename a category in your library.
|
|
1365
|
+
%mc_library remove - Interactively remove powers from your library.
|
|
1366
|
+
%mc_library export <filepath.json> - Export selected powers to a JSON file.
|
|
1367
|
+
%mc_library import <filepath.json> - Import powers from a JSON file into your library.
|
|
1368
|
+
"""
|
|
1369
|
+
import shlex # Ensure shlex is available
|
|
1370
|
+
from mcshell.mcrepo import PowerRepository, SQLiteRepository
|
|
1371
|
+
|
|
1372
|
+
try:
|
|
1373
|
+
args = shlex.split(line)
|
|
1374
|
+
except ValueError as e:
|
|
1375
|
+
print(f"Error parsing command line: {e}")
|
|
1376
|
+
return
|
|
1377
|
+
|
|
1378
|
+
if not args:
|
|
1379
|
+
print("Usage: %mc_library [list|rename-category|remove|export|import]")
|
|
1380
|
+
return
|
|
1381
|
+
|
|
1382
|
+
command = args[0]
|
|
1383
|
+
player = self.mc_name or self._get_mc_name()
|
|
1384
|
+
if not player:
|
|
1385
|
+
return
|
|
1386
|
+
|
|
1387
|
+
# Treat the repository purely as its interface type
|
|
1388
|
+
repo: PowerRepository = SQLiteRepository(player)
|
|
1389
|
+
|
|
1390
|
+
if command == "list":
|
|
1391
|
+
powers = repo.list_powers()
|
|
1392
|
+
if not powers:
|
|
1393
|
+
print(f"No powers found in your library ({player}).")
|
|
1394
|
+
return
|
|
1395
|
+
print(f"\nPowers in your library ({player}):")
|
|
1396
|
+
for i, p in enumerate(powers):
|
|
1397
|
+
print(f" [{i}] {p['name']} ({p.get('category', 'General')})")
|
|
1398
|
+
|
|
1399
|
+
elif command == "rename-category":
|
|
1400
|
+
if len(args) < 3:
|
|
1401
|
+
print("Usage: %mc_library rename-category <old_name> <new_name>")
|
|
1402
|
+
return
|
|
1403
|
+
old_name, new_name = args[1], args[2]
|
|
1404
|
+
|
|
1405
|
+
# Utilizing strictly the PowerRepository interface
|
|
1406
|
+
powers = repo.list_full_powers()
|
|
1407
|
+
count = 0
|
|
1408
|
+
for p in powers:
|
|
1409
|
+
cat = p.get('category', '')
|
|
1410
|
+
if cat == old_name:
|
|
1411
|
+
p['category'] = new_name
|
|
1412
|
+
repo.save_power(p)
|
|
1413
|
+
count += 1
|
|
1414
|
+
elif cat.startswith(f"{old_name}/"):
|
|
1415
|
+
p['category'] = new_name + cat[len(old_name):]
|
|
1416
|
+
repo.save_power(p)
|
|
1417
|
+
count += 1
|
|
1418
|
+
|
|
1419
|
+
print(f"Renamed {count} powers from '{old_name}' to '{new_name}'.")
|
|
1420
|
+
print("Refresh the editor to see changes.")
|
|
1421
|
+
|
|
1422
|
+
elif command == "remove":
|
|
1423
|
+
powers = repo.list_powers()
|
|
1424
|
+
if not powers:
|
|
1425
|
+
print("Your library is empty.")
|
|
1426
|
+
return
|
|
1427
|
+
|
|
1428
|
+
print("\nSelect powers to remove from your library:")
|
|
1429
|
+
for i, p in enumerate(powers):
|
|
1430
|
+
print(f" [{i}] {p['name']} ({p.get('category', 'General')})")
|
|
1431
|
+
|
|
1432
|
+
selection = Prompt.ask("Enter indices to remove (space separated)")
|
|
1433
|
+
try:
|
|
1434
|
+
indices_to_remove = [int(i) for i in selection.split()]
|
|
1435
|
+
except ValueError:
|
|
1436
|
+
print("Invalid selection.")
|
|
1437
|
+
return
|
|
1438
|
+
|
|
1439
|
+
removed_count = 0
|
|
1440
|
+
for idx in indices_to_remove:
|
|
1441
|
+
if 0 <= idx < len(powers):
|
|
1442
|
+
power_id = powers[idx]['power_id']
|
|
1443
|
+
if repo.delete_power(power_id):
|
|
1444
|
+
removed_count += 1
|
|
1445
|
+
|
|
1446
|
+
print(f"Successfully removed {removed_count} powers from your library.")
|
|
1447
|
+
|
|
1448
|
+
elif command == "export":
|
|
1449
|
+
if len(args) < 2:
|
|
1450
|
+
print("Usage: %mc_library export <filepath.json>")
|
|
1451
|
+
return
|
|
1452
|
+
|
|
1453
|
+
export_path = Path(args[1]).expanduser()
|
|
1454
|
+
powers = repo.list_full_powers()
|
|
1455
|
+
if not powers:
|
|
1456
|
+
print("Your library is empty. Nothing to export.")
|
|
1457
|
+
return
|
|
1458
|
+
|
|
1459
|
+
print(f"\nSelect powers to export to {export_path}:")
|
|
1460
|
+
for i, p in enumerate(powers):
|
|
1461
|
+
print(f" [{i}] {p['name']} ({p.get('category', 'General')})")
|
|
1462
|
+
|
|
1463
|
+
selection = Prompt.ask("Enter indices to export (space separated, or 'all')")
|
|
1464
|
+
|
|
1465
|
+
if selection.lower() == 'all':
|
|
1466
|
+
powers_to_export = powers
|
|
1467
|
+
else:
|
|
1468
|
+
try:
|
|
1469
|
+
selected_indices = [int(i) for i in selection.split()]
|
|
1470
|
+
powers_to_export = [powers[i] for i in selected_indices if 0 <= i < len(powers)]
|
|
1471
|
+
except (ValueError, IndexError):
|
|
1472
|
+
print("Invalid selection.")
|
|
1473
|
+
return
|
|
1474
|
+
|
|
1475
|
+
if not powers_to_export:
|
|
1476
|
+
print("No valid powers selected for export.")
|
|
1477
|
+
return
|
|
1478
|
+
|
|
1479
|
+
export_data = {"powers": powers_to_export}
|
|
1480
|
+
export_path.parent.mkdir(parents=True, exist_ok=True)
|
|
1481
|
+
with export_path.open('w') as f:
|
|
1482
|
+
json.dump(export_data, f, indent=4)
|
|
1483
|
+
|
|
1484
|
+
print(f"Successfully exported {len(powers_to_export)} powers to {export_path}.")
|
|
1485
|
+
|
|
1486
|
+
elif command == "import":
|
|
1487
|
+
if len(args) < 2:
|
|
1488
|
+
print("Usage: %mc_library import <filepath.json>")
|
|
1489
|
+
return
|
|
1490
|
+
|
|
1491
|
+
import_path = Path(args[1]).expanduser()
|
|
1492
|
+
if not import_path.exists():
|
|
1493
|
+
print(f"Error: File not found at {import_path}")
|
|
1494
|
+
return
|
|
1495
|
+
|
|
1496
|
+
try:
|
|
1497
|
+
with import_path.open('r') as f:
|
|
1498
|
+
data = json.load(f)
|
|
1499
|
+
|
|
1500
|
+
# Handle standard {"powers": [...]} structure or legacy flat list/dict structures
|
|
1501
|
+
if isinstance(data, dict) and "powers" in data:
|
|
1502
|
+
powers_to_import = data["powers"]
|
|
1503
|
+
else:
|
|
1504
|
+
powers_to_import = data if isinstance(data, list) else data.values()
|
|
1505
|
+
|
|
1506
|
+
count = 0
|
|
1507
|
+
for p_data in powers_to_import:
|
|
1508
|
+
repo.save_power(p_data)
|
|
1509
|
+
count += 1
|
|
1510
|
+
|
|
1511
|
+
print(f"Successfully imported {count} powers into your library from {import_path}.")
|
|
1512
|
+
except Exception as e:
|
|
1513
|
+
print(f"Error importing powers: {e}")
|
|
1514
|
+
|
|
1515
|
+
else:
|
|
1516
|
+
print(f"Unknown command: {command}")
|
|
1517
|
+
print("Usage: %mc_library [list|rename-category|remove|export|import]")
|
|
1518
|
+
|
|
1340
1519
|
def sync_datapack_library():
|
|
1341
1520
|
"""
|
|
1342
1521
|
Synchronizes the internal datapack library to the user's worlds directory.
|
|
@@ -49,11 +49,12 @@ except ImportError: # Graceful fallback if IceCream isn't installed.
|
|
|
49
49
|
# the default version when using %pp_create_world
|
|
50
50
|
MC_VERSION = '1.21.11' # this must match the client version
|
|
51
51
|
|
|
52
|
-
# default server data
|
|
52
|
+
# default server data; avoid common ports
|
|
53
53
|
MC_SERVER_HOST = 'localhost'
|
|
54
|
-
MC_RCON_PORT =
|
|
55
|
-
MC_SERVER_PORT =
|
|
56
|
-
FJ_PLUGIN_PORT =
|
|
54
|
+
MC_RCON_PORT = 25576
|
|
55
|
+
MC_SERVER_PORT = 25566
|
|
56
|
+
FJ_PLUGIN_PORT = 4712
|
|
57
|
+
MC_APP_PORT = 5001
|
|
57
58
|
|
|
58
59
|
|
|
59
60
|
MC_SERVER_DATA = {
|
|
@@ -61,6 +62,7 @@ MC_SERVER_DATA = {
|
|
|
61
62
|
'port':MC_SERVER_PORT,
|
|
62
63
|
'rcon_port':MC_RCON_PORT,
|
|
63
64
|
'fj_port': FJ_PLUGIN_PORT,
|
|
65
|
+
'app_port': MC_APP_PORT,
|
|
64
66
|
'password': None,
|
|
65
67
|
}
|
|
66
68
|
|
|
@@ -79,11 +81,14 @@ MC_COLOURABLE_MATERIALS_DATA_PATH = MC_DATA_DIR.joinpath('materials/colourables.
|
|
|
79
81
|
MC_PICKER_MATERIALS_DATA_PATH = MC_DATA_DIR.joinpath('materials/pickers.json')
|
|
80
82
|
MC_SINGLE_MATERIALS_DATA_PATH = MC_DATA_DIR.joinpath('materials/singles.json')
|
|
81
83
|
|
|
84
|
+
MC_ITEM_ID_MAP_PATH = MC_DATA_DIR.joinpath('materials/item_id_map.pkl')
|
|
85
|
+
|
|
82
86
|
# here is the source of truth for Entity IDs like in pyncraft.entity
|
|
83
87
|
MC_ENTITY_TYPE_URL = yarl.URL("https://raw.githubusercontent.com/PaperMC/Paper/refs/heads/main/paper-api/src/main/java/org/bukkit/entity/EntityType.java")
|
|
84
88
|
MC_ENTITY_ID_MAP_PATH = MC_DATA_DIR.joinpath('entities/entity_id_map.pkl')
|
|
85
89
|
MC_ENTITY_PICKERS_PATH = MC_DATA_DIR.joinpath('entities/pickers.json')
|
|
86
90
|
|
|
91
|
+
|
|
87
92
|
MC_APP_DIR = MC_DATA_DIR.joinpath('app')
|
|
88
93
|
|
|
89
94
|
MC_APP_STATIC_DIR = MC_DATA_DIR.joinpath('static')
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang=en><script type=importmap>{"imports":{"2N3MJ":"/toolbox.
|
|
1
|
+
<!DOCTYPE html><html lang=en><script type=importmap>{"imports":{"2N3MJ":"/toolbox.193e3fba.xml"}}</script><script type=module src=/mced.a4de160c.js></script><link rel=stylesheet href=/mced.efd4d8e7.css><meta charset=utf-8><title>MC-ED Editor</title><link rel=stylesheet href=/mced.3f8a9cca.css><body x-data="{ isLibraryCollapsed: true, isCodeCollapsed: true, keyboardVisible: false }">
|
|
2
2
|
|
|
3
3
|
<div class="code-collapsed editor-layout library-collapsed" :class="{ 'library-collapsed': isLibraryCollapsed, 'code-collapsed': isCodeCollapsed }">
|
|
4
4
|
<aside id=power-library-panel>
|
|
@@ -128,7 +128,7 @@
|
|
|
128
128
|
|
|
129
129
|
</div>
|
|
130
130
|
|
|
131
|
-
<script type=module src=/mced.
|
|
131
|
+
<script type=module src=/mced.3d4a5c3d.js></script>
|
|
132
132
|
<div class=simple-keyboard x-show=keyboardVisible style=z-index:20000;background:#fff;width:100%;position:fixed;bottom:0;left:0>
|
|
133
133
|
</div>
|
|
134
134
|
|