improve killme detection and feature sintax of code

This commit is contained in:
mckaygerhard 2023-06-20 11:41:04 -04:00
parent 4d43d40eb2
commit 19ed0485c1
3 changed files with 53 additions and 49 deletions

View File

@ -11,27 +11,29 @@
----------------------------------------------------------------------------
minetest.register_chatcommand("killme", {
description = "Kill yourself to respawn",
func = function(name)
local player = minetest.get_player_by_name(name)
if player then
if minetest.settings:get_bool("enable_damage") and player:is_player() then
player:set_hp(0)
return true
else
for _, callback in pairs(core.registered_on_respawnplayers) do
if callback(player) then
return true
if not governing.modkillme then
minetest.register_chatcommand("killme", {
description = "Kill player or yourselft to respawn",
func = function(name)
local player = minetest.get_player_by_name(name)
if player then
if minetest.settings:get_bool("enable_damage") and player:is_player() then
player:set_hp(0)
return true
else
for _, callback in pairs(minetest.registered_on_respawnplayers) do
if callback(player) then
return true
end
end
-- There doesn't seem to be a way to get a default spawn pos from the lua API
return false, "No static_spawnpoint defined"
end
-- There doesn't seem to be a way to get a default spawn pos from the lua API
return false, "No static_spawnpoint defined"
else
-- Show error message if used when not logged in, eg: from IRC mod
return false, "You need to be online to be killed!"
end
else
-- Show error message if used when not logged in, eg: from IRC mod
return false, "You need to be online to be killed!"
end
end
})
})
end

View File

@ -12,39 +12,37 @@
----------------------------------------------------------------------------
local modname = "governing"
local modpath = minetest.get_modpath(modname)
local modpath = minetest.get_modpath("governing")
local modstor = minetest.get_mod_storage()
local worlddir = minetest.get_worldpath()
local modmail = minetest.get_modpath("mail")
local modgeoip = minetest.get_modpath("geoip")
local moddefault = minetest.get_modpath("default")
local modkillme = minetest.get_modpath("killme")
local modcommand = minetest.get_modpath("game_commands")
if not killme_mod or not command_mod
local modcreative = minetest.get_modpath("creative")
local S
if minetest.get_translator ~= nil then
S = minetest.get_translator(modname) -- 5.x translation function
S = minetest.get_translator(modname) -- 5.x translation function
else
if minetest.get_modpath("intllib") then
dofile(minetest.get_modpath("intllib") .. "/init.lua")
if intllib.make_gettext_pair then
gettext, ngettext = intllib.make_gettext_pair() -- new gettext method
else
gettext = intllib.Getter() -- old text file method
end
S = gettext
else -- boilerplate function
S = function(str, ...)
local args = {...}
return str:gsub("@%d+", function(match)
return args[tonumber(match:sub(2))]
end)
end
end
if minetest.get_modpath("intllib") then
dofile(minetest.get_modpath("intllib") .. "/init.lua")
if intllib.make_gettext_pair then
gettext, ngettext = intllib.make_gettext_pair() -- new gettext method
else
gettext = intllib.Getter() -- old text file method
end
S = gettext
else -- boilerplate function
S = function(str, ...)
local args = {...}
return str:gsub("@%d+", function(match)
return args[tonumber(match:sub(2))]
end)
end
end
end
local creative_mode_cache = minetest.settings:get_bool("creative_mode")
@ -56,18 +54,22 @@ governing.modname = modname -- name of the mod
governing.modpath = modpath -- path of the mod
governing.modstor = modstor -- request of storage for the mod
governing.worlddir = worlddir -- path of the world were the mod is running
governing.modgeoip = modgeoip -- path of the mail mod if available for sending messages internaly on private
governing.modmail = modmail -- path of the mail mod if available for sending messages internaly on private
governing.moddefault = moddefault -- path of default mod if availalbe
governing.modkillme = modkillme -- if killme is present as mod if available
governing.modcommand = modcommand -- if same killme and commands is present as mod if available
function governing.is_creative(name)
return minetest.check_player_privs(name, {creative = true}) or creative_mode_cache
if creative then
return creative.is_creative(name)
else
return minetest.check_player_privs(name, {creative = true}) or creative_mode_cache
end
end
if not goberning.modkillme and not goberning.moddefault then
dofile(goberning.modpath.."/commands.lua")
end
--dofile(governing.modpath.."/geoip.lua")
dofile(governing.modpath.."/commands.lua")
print("[MOD] governor mod loaded" )
print("[MOD] governing mod loaded" )

View File

@ -1,2 +1,2 @@
name = goberning
depends = default
name = governing
optional_depends = default