minetest / minetest_game

Minetest Game - A lightweight and well-maintained base for modding [https://github.com/minetest/minetest/]
http://minetest.net/
Other
1.42k stars 577 forks source link

Node default:chest breaks worlds expecting minetest:chest #2713

Closed neoh4x0r closed 4 years ago

neoh4x0r commented 4 years ago

Pull request #2127 breaks minetest_games installed before commit fb18a5b20d1837a7493e37af950d06266048c901. (and recent change to minetest/builtin/game/register.lua)

Break existing worlds that expect minetest:chest instead of default:chest.

-default.chest.register_chest("chest", {
+default.chest.register_chest("default:chest", {
    description = S("Chest"),
    tiles = {
        "default_chest_top.png",
@@ -303,7 +306,7 @@ default.chest.register_chest("chest", {
    groups = {choppy = 2, oddly_breakable_by_hand = 2},
})

-default.chest.register_chest("chest_locked", {
+default.chest.register_chest("default:chest_locked", {
    description = S("Locked Chest"),
    tiles = {
        "default_chest_top.png",

The error given by the minetest client is:

ERROR[Main]: ModError: Unknown node: minetest:chest

There clearly needs to be some mechanism to update worlds that reference minetest:chest and have them automagically use default:chest instead.

NOTE: the following method is probably the easiest method to solve the issue 1) Create a legacy mod named minetest that uses register_chest to register the minetest:chest. 2) and then upgrade those chests to default:minetest using a node replacement or some such

sfan5 commented 4 years ago

There has never been an node called minetest:chest and no code in MTG expects this.

neoh4x0r commented 4 years ago

There has never been an node called minetest:chest and no code in MTG expects this.

The chest was just defined as: default.chest.register_chest("chest",

I had no issue With minetest client v5.1 (commit: https://github.com/minetest/minetest/commit/a1401696dfed5ba9faf3bbc2c8754e79346aa15f) and minetest_game (commit 3bca295da882233b684830d94448298b41553138).

But when after updating the client to v5.3 (commit https://github.com/minetest/minetest/commit/42b0d612ef488dd5b4836fa303aeebe424f09e92) and minetest_game (commit fb18a5b20d1837a7493e37af950d06266048c901).

I get that message when attempting to load my world:

ERROR[Main]: ModError: Unknown node: minetest:chest

So clearly, something got broken due to the the update.

sfan5 commented 4 years ago

Can you post the full backtrace and the list of mods you have installed?

neoh4x0r commented 4 years ago

Can you post the full backtrace and the list of mods you have installed?

There was no back trace, just an error message: 2020-07-08 11:36:51: ERROR[Main]: ModError: Unknown node: minetest:chest

$ cat debug.txt 
-------------
  Separator
-------------
2020-07-08 11:36:49: WARNING[Main]: Irrlicht: X Error: BadWindow (invalid Window parameter)
2020-07-08 11:36:49: WARNING[Main]: Irrlicht: From call : X_ChangeProperty
2020-07-08 11:36:49: WARNING[Main]: Irrlicht: X Error: BadWindow (invalid Window parameter)
2020-07-08 11:36:49: WARNING[Main]: Irrlicht: From call : X_ChangeProperty
2020-07-08 11:36:49: WARNING[Main]: Irrlicht: X Error: BadWindow (invalid Window parameter)
2020-07-08 11:36:49: WARNING[Main]: Irrlicht: From call : X_ChangeProperty
2020-07-08 11:36:49: WARNING[Main]: Irrlicht: X Error: BadWindow (invalid Window parameter)
2020-07-08 11:36:49: WARNING[Main]: Irrlicht: From call : X_ChangeProperty
2020-07-08 11:36:49: WARNING[Main]: Irrlicht: X Error: BadWindow (invalid Window parameter)
2020-07-08 11:36:49: WARNING[Main]: Irrlicht: From call : X_ChangeProperty
2020-07-08 11:36:49: WARNING[Main]: Irrlicht: X Error: BadWindow (invalid Window parameter)
2020-07-08 11:36:49: WARNING[Main]: Irrlicht: From call : X_ChangeProperty
2020-07-08 11:36:51: WARNING[Main]: Mod name conflict detected: "weather"
2020-07-08 11:36:51: WARNING[Main]: Will not load: /home/william/.minetest/games/minetest_game/mods/weather
2020-07-08 11:36:51: WARNING[Main]: Overridden by: /home/william/.minetest/mods/weather/weather
2020-07-08 11:36:51: ACTION[Main]: [modutil] loading init
2020-07-08 11:36:51: ACTION[Main]: [modutil] loading logging
2020-07-08 11:36:51: ACTION[Main]: [modutil] loaded logging
2020-07-08 11:36:51: ACTION[Main]: [modutil] loading VenusParser
2020-07-08 11:36:51: WARNING[Main]: Undeclared global variable "VenusParser" accessed at .../william/.minetest/mods/modutil/VenusParser/init.lua:1
2020-07-08 11:36:51: ACTION[Main]: [modutil] loaded VenusParser
2020-07-08 11:36:51: ACTION[Main]: [modutil] loading local_require
2020-07-08 11:36:51: ACTION[Main]: [modutil] loaded local_require
2020-07-08 11:36:51: ACTION[Main]: [modutil] setting modutil global
2020-07-08 11:36:51: ACTION[Main]: [modutil] loaded init
2020-07-08 11:36:51: WARNING[Main]: Undeclared global variable "adv_spawning" accessed at /home/william/.minetest/mods/adv_spawning/init.lua:13
2020-07-08 11:36:51: ACTION[Main]: Advanced spawning mod version 0.0.13 loaded
2020-07-08 11:36:51: WARNING[Main]: Undeclared global variable "mcl_sounds" accessed at /home/william/.minetest/mods/pontoons/init.lua:42
2020-07-08 11:36:51: WARNING[Main]: Undeclared global variable "mcl_sounds" accessed at /home/william/.minetest/mods/pontoons/init.lua:96
2020-07-08 11:36:51: WARNING[Main]: Assignment to undeclared global "wood" inside a function at /home/william/.minetest/mods/moreores/init.lua:128.
2020-07-08 11:36:51: WARNING[Main]: Assignment to undeclared global "woodrow" inside a function at /home/william/.minetest/mods/moreores/init.lua:129.
2020-07-08 11:36:51: WARNING[Main]: Field "height_min": Deprecated: new name is "y_min".
2020-07-08 11:36:51: WARNING[Main]: Field "height_max": Deprecated: new name is "y_max".
2020-07-08 11:36:51: WARNING[Main]: Field "height_min": Deprecated: new name is "y_min".
2020-07-08 11:36:51: WARNING[Main]: Field "height_max": Deprecated: new name is "y_max".
2020-07-08 11:36:51: WARNING[Main]: Field "height_min": Deprecated: new name is "y_min".
2020-07-08 11:36:51: WARNING[Main]: Field "height_max": Deprecated: new name is "y_max".
2020-07-08 11:36:51: ERROR[Main]: ModError: Unknown node: minetest:chest
2020-07-08 11:36:51: ERROR[Main]: Check debug.txt for details.
2020-07-08 11:36:51: ACTION[Main]: Server: Shutting down
2020-07-08 11:36:53: ERROR[Main]: Please choose a name!

Installed mods:

adv_spawning
advtrains
advtrains_interlocking
advtrains_itrainmap
advtrains_line_automation
advtrains_luaautomation
advtrains_signals_ks
advtrains_train_industrial
advtrains_train_japan
advtrains_train_steam
advtrains_train_subway
advtrains_train_track
ambience
assets
basic_machines
basic_materials
bbq
biogasmachines
building_blocks
character_creator
computer
concrete
creative_mode
currency
digiboard
digilines
digilines_crafting
digilines_memory
digilines_weather_sensor
digiprinter
digtron
elevator
extractor
extranodes
factory
fake_fire
gravelsieve
homedecor_3d_extras
homedecor_bathroom
homedecor_bedroom
homedecor_books
homedecor_climate_control
homedecor_clocks
homedecor_cobweb
homedecor_common
homedecor_doors_and_gates
homedecor_electrical
homedecor_electronics
homedecor_exterior
homedecor_fences
homedecor_foyer
homedecor_furniture
homedecor_furniture_medieval
homedecor_gastronomy
homedecor_kitchen
homedecor_laundry
homedecor_lighting
homedecor_misc
homedecor_office
homedecor_pictures_and_paintings
homedecor_plastic
homedecor_roofing
homedecor_seating
homedecor_tables
homedecor_trash_cans
homedecor_wardrobe
homedecor_windows_and_treatments
inbox
infinite_chest
itemframes
laptop
lavalamp
lcdlib
maidroid
maidroid_core
maidroid_tool
matrix
memorandum
meseconductors
mesecons
mesecons_alias
mesecons_blinkyplant
mesecons_button
mesecons_commandblock
mesecons_delayer
mesecons_detector
mesecons_doors
mesecons_extrawires
mesecons_fpga
mesecons_gates
mesecons_hydroturbine
mesecons_insulated
mesecons_lamp
mesecons_lightstone
mesecons_luacontroller
mesecons_materials
mesecons_microcontroller
mesecons_movestones
mesecons_mvps
mesecons_noteblock
mesecons_pistons
mesecons_powerplant
mesecons_pressureplates
mesecons_random
mesecons_receiver
mesecons_solarpanel
mesecons_stickyblocks
mesecons_switch
mesecons_torch
mesecons_walllever
mesecons_window
mesecons_wires
minerchest
minertools
moderntables
modutil
moreblocks
morelights
morelights_extras
morelights_modern
morelights_vintage
moremesecons_adjustable_blinkyplant
moremesecons_adjustable_player_detector
moremesecons_commandblock
moremesecons_conductor_signalchanger
moremesecons_dual_delayer
moremesecons_entity_detector
moremesecons_igniter
moremesecons_induction_transmitter
moremesecons_injector_controller
moremesecons_jammer
moremesecons_luablock
moremesecons_luacontroller_tool
moremesecons_mesechest
moremesecons_playerkiller
moremesecons_sayer
moremesecons_signalchanger
moremesecons_switchtorch
moremesecons_teleporter
moremesecons_timegate
moremesecons_utils
moremesecons_wireless
moreores
my_castle_doors
my_cottage_doors
mydeck
my_default_doors
my_door_wood
my_fancy_doors
my_future_doors
my_garage_door
my_hidden_doors
my_misc_doors
my_old_doors
my_saloon_doors
my_sliding_doors
nether
nixie_tubes
pipeworks
plasmascreen
pontoons
quartz
remove_unknown
rhotator
safer_lua
scaffolding
sl_controller
slmodules
slprogtools
smartline
technic
technic_chests
technic_cnc
technic_worldgen
techpack_stairway
techpack_warehouse
torches
treecapitator
tubelib
tubelib2
tubelib_addons1
tubelib_addons2
tubelib_addons3
unifieddyes
waterworks
weather
wireless
worldedit
worldedit_brush
worldedit_commands
worldedit_gui
worldedit_shortcommands
wrench
neoh4x0r commented 4 years ago

I just figured out that it was the extractor mod from https://github.com/yawin123/utilities/tree/master/extractor/init.lua local chest = minetest.get_content_id("minetest:chest");

That mod never caused a problem until I updated.....

I'll close this issue, since it isn't a problem with minetest_game.