wardrobe = wardrobe or {}; local MOD_NAME = minetest.get_current_modname(); local MOD_PATH = minetest.get_modpath(MOD_NAME); local WORLD_PATH = minetest.get_worldpath(); if MOD_NAME ~= "wardrobe" then error("mod directory must be named 'wardrobe'"); end dofile(MOD_PATH.."/storage.lua"); dofile(MOD_PATH.."/wardrobe.lua"); wardrobe.storage.loadSkins(); wardrobe.storage.loadPlayerSkins(); function wardrobe.setPlayerSkin(player) local playerName = player:get_player_name(); if not playerName or playerName == "" then return; end local skin = wardrobe.playerSkins[playerName]; if not skin or not wardrobe.skinNames[skin] then return; end player:set_properties( { visual = "mesh", visual_size = { x = 1, y = 1 }, mesh = "character.b3d", textures = { skin } }); end function wardrobe.changePlayerSkin(playerName, skin) local player = minetest.get_player_by_name(playerName); if not player then error("unknown player '"..playerName.."'"); end if skin and not wardrobe.skinNames[skin] then error("unknown skin '"..skin.."'"); end wardrobe.playerSkins[playerName] = skin; wardrobe.storage.savePlayerSkins(); wardrobe.setPlayerSkin(player); end minetest.register_on_joinplayer( function(player) minetest.after(1, function(player) wardrobe.setPlayerSkin(player); end, player); end);