Skip to content

Commit 0fdafa3

Browse files
0.0.1
1 parent f24a473 commit 0fdafa3

8 files changed

+273
-0
lines changed

commands.lua

+174
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,174 @@
1+
local have_spawn_command = minetest.get_modpath("spawn_command")
2+
local enable_damage = core.settings:get_bool("enable_damage")
3+
local hide_names = {}
4+
5+
minetest.register_chatcommand("about_essentials", {
6+
description = "About the 'essentials' mod.",
7+
func = function(name, param)
8+
show_about(name)
9+
end
10+
})
11+
12+
-- 'spawn_command' mod
13+
if have_spawn_command then
14+
function set_the_spawn(name, param)
15+
local p = {}
16+
local posmessage = {x = 0, y = 0, z = 0}
17+
local player = minetest.get_player_by_name(name);
18+
local pos = player:get_pos();
19+
local static_spawnpoint = minetest.setting_get_pos("static_spawnpoint");
20+
local spawn_pos = vector.round(spawn_command.pos);
21+
p.x, p.y, p.z = string.match(param, "^([%d.~-]+)[, ] *([%d.~-]+)[, ] *([%d.~-]+)$");
22+
p = core.parse_coordinates(p.x, p.y, p.z, pos);
23+
24+
if player == nil then
25+
return false
26+
end
27+
28+
if p and p.x and p.y and p.z then
29+
spawn_command.pos = {x = p.x, y = p.y, z = p.z};
30+
static_spawnpoint = {x = p.x, y = p.y, z = p.z};
31+
posmessage = {x = p.x, y = p.y, z = p.z};
32+
minetest.chat_send_player(name, core.colorize("#00FF06", "Spawn sets successful at ".. posmessage.x .." ".. posmessage.y .." ".. posmessage.z .."!"))
33+
elseif param == "" then
34+
spawn_pos = vector.round(pos);
35+
spawn_command.pos = spawn_pos;
36+
static_spawnpoint = spawnpos;
37+
minetest.chat_send_player(name, core.colorize("#00FF06", "Spawn sets successful at ".. spawn_pos.x .." ".. spawn_pos.y .." ".. spawn_pos.z .."!"))
38+
else
39+
minetest.chat_send_player(name, core.colorize("red", "Wrong position!"))
40+
end
41+
end
42+
minetest.register_chatcommand("setspawn", {
43+
params = "<X>,<Y>,<Z>",
44+
description = "Sets a spawn point.",
45+
privs = {server = true},
46+
func = set_the_spawn,
47+
})
48+
end
49+
-- end
50+
51+
minetest.register_chatcommand("ip", {
52+
params = "<name>",
53+
description = "Show the IP of a player.",
54+
privs = {server = true},
55+
func = function(name, param)
56+
if param == "" then
57+
minetest.chat_send_player(name, "Your IP of is ".. minetest.get_player_ip(name))
58+
return
59+
end
60+
if minetest.get_player_by_name(param) == nil then
61+
minetest.chat_send_player(name, core.colorize("red", "Player ".. param .." not found!"))
62+
return
63+
end
64+
minetest.chat_send_player(name, "IP of ".. param .." is ".. minetest.get_player_ip(param))
65+
end,
66+
})
67+
68+
minetest.register_chatcommand("broadcast", {
69+
params = "<message>",
70+
description = "Send GLOBAL message in chat.",
71+
privs = {server = true},
72+
func = function(name, param)
73+
if param == "" then
74+
core.chat_send_player(name, core.colorize("red", "Message cannot be empty!"))
75+
else
76+
core.chat_send_all(core.colorize("#00FFC6", param))
77+
end
78+
end,
79+
})
80+
81+
if enable_damage then
82+
function god_mode(name, param)
83+
local player = minetest.get_player_by_name(name)
84+
local ag = player:get_armor_groups()
85+
if not ag["immortal"] then
86+
ag["immortal"] = 1
87+
core.chat_send_player(name, "God mode enabled")
88+
else
89+
ag["immortal"] = nil
90+
core.chat_send_player(name, "God mode diabled")
91+
end
92+
player:set_armor_groups(ag)
93+
end
94+
95+
minetest.register_chatcommand("god", {
96+
description = "Enable/Disabe the god mode.",
97+
privs = {god = true},
98+
func = god_mode
99+
})
100+
end
101+
102+
minetest.register_chatcommand("ban_menu", {
103+
description = "Open the ban menu.",
104+
privs = {ban = true},
105+
func = function(name, param)
106+
if core.is_singleplayer() then
107+
minetest.chat_send_player(name, core.colorize("red", "You cannot ban in single mode!"))
108+
else
109+
show_ban_menu(name)
110+
end
111+
end
112+
})
113+
114+
minetest.register_chatcommand("kick_menu", {
115+
description = "Open the kick menu.",
116+
privs = {kick = true},
117+
func = function(name, param)
118+
if core.is_singleplayer() then
119+
minetest.chat_send_player(name, core.colorize("red", "You cannot kick in single mode!"))
120+
else
121+
show_kick_menu(name)
122+
end
123+
end
124+
})
125+
126+
--minetest.register_chatcommand("mute_menu", {
127+
-- description = "Open the mute menu.",
128+
-- privs = {mute = true},
129+
-- func = function(name, param)
130+
-- if core.is_singleplayer() then
131+
-- minetest.chat_send_player(name, core.colorize("red", "You cannot mute in single mode!"))
132+
-- else
133+
-- show_mute_menu(name)
134+
-- end
135+
-- end
136+
--})
137+
138+
minetest.register_chatcommand("getpos", {
139+
params = "<name>",
140+
description = "Allows the player to find out the position of another player.",
141+
privs = {vip = true},
142+
func = function(name, param)
143+
local player = minetest.get_player_by_name(param);
144+
145+
if param == "" then
146+
minetest.chat_send_player(name, core.colorize("red", "Player name cannot be empty!"))
147+
return
148+
elseif minetest.get_player_by_name(param) == nil then
149+
minetest.chat_send_player(name, core.colorize("red", "Player ".. param .." not found!"))
150+
return
151+
else
152+
local pos = player:get_pos();
153+
local round_pos = vector.round(pos);
154+
minetest.chat_send_player(name, "Position of ".. param .." is ".. round_pos.x .." ".. round_pos.y .." ".. round_pos.z)
155+
end
156+
end,
157+
})
158+
159+
minetest.register_chatcommand("rename_me", {
160+
params = "<new_name>",
161+
description = "Hide your real name and rename it on fake.",
162+
privs = {},
163+
func = function(name, param)
164+
hide_names[name] = param
165+
end
166+
})
167+
168+
minetest.register_on_chat_message(function(name, message)
169+
local new_name = hide_names[name]
170+
if new_name then
171+
minetest.chat_send_all("<"..new_name.."> "..message)
172+
return true
173+
end
174+
end)

depends.txt

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
spawn_command?
2+
unified_inventory?

description.txt

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Adds a lot of helpful commands for your Minetest server

init.lua

+27
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
local version = "0.0.1"
2+
local stat_version = "ALPHA"
3+
local modpath = minetest.get_modpath(minetest.get_current_modname())
4+
local send_version = true
5+
--local name = player:get_player_name()
6+
7+
-- connections
8+
dofile(modpath.."/commands.lua")
9+
--dofile(modpath.."/settings.lua")
10+
dofile(modpath.."/priveleges.lua")
11+
--dofile(modpath.."/watermark.lua")
12+
dofile(modpath.."/unified_inventory.lua")
13+
dofile(modpath.."/ui/ban_menu.lua")
14+
dofile(modpath.."/ui/kick_menu.lua")
15+
dofile(modpath.."/ui/mute_menu.lua")
16+
17+
minetest.log("action", "[Essentials] Mod initialised. Version: ".. version)
18+
19+
minetest.register_on_joinplayer(function(player)
20+
local name = player:get_player_name()
21+
22+
if send_version == true then
23+
minetest.chat_send_player(name, core.colorize("orange", "Essentials mod installed.").. " " ..core.colorize("#0050b3", "By Builder Mods STUDIO.").. " " ..core.colorize("green", "Version: ".. version .." ".. stat_version))
24+
elseif send_version == false then
25+
minetest.log("action", "[Essentials] send_version is false. Cant send the message")
26+
end
27+
end)

mod.conf

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
name = essentials
2+
release = 1
3+
author = SkyBuilder
4+
description = Adds a lot of helpful commands for your Minetest server
5+
title = Essentials
6+
optional_depends = spawn_command, unified_inventory

priveleges.lua

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
-- god mode
2+
if enable_damage then
3+
core.register_privilege("god", {
4+
description = "Can use /god command",
5+
give_to_singleplayer = false,
6+
})
7+
end
8+
9+
core.register_privilege("vip", {
10+
description = "Can use vip commands",
11+
give_to_singleplayer = false,
12+
})
13+
14+
core.register_privilege("mute", {
15+
description = "Can mute/unmute players.",
16+
give_to_singleplayer = false,
17+
})

screenshot.png

59.7 KB
Loading

unified_inventory.lua

+46
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
local have_unified_inventory = minetest.get_modpath("unified_inventory")
2+
local FORMNAME = "essentials:ban_menu"
3+
4+
if have_unified_inventory then
5+
unified_inventory.register_button("ban_menu", {
6+
type = "image",
7+
image = "unified_inventory_ban.png",
8+
tooltip = "Ban menu",
9+
action = function(player)
10+
local name = player:get_player_name()
11+
if minetest.check_player_privs(name, {ban=true}) then
12+
show_ban_menu(name)
13+
else
14+
core.chat_send_player(name, "You dont have privilege 'ban'!")
15+
end
16+
end
17+
})
18+
19+
unified_inventory.register_button("kick_menu", {
20+
type = "image",
21+
image = "unified_inventory_kick.png",
22+
tooltip = "Kick menu",
23+
action = function(player)
24+
local name = player:get_player_name()
25+
if minetest.check_player_privs(name, {kick=true}) then
26+
show_kick_menu(name)
27+
else
28+
core.chat_send_player(name, "You dont have privilege 'kick'!")
29+
end
30+
end
31+
})
32+
33+
--unified_inventory.register_button("mute_menu", {
34+
-- type = "image",
35+
-- image = "unified_inventory_mute.png",
36+
-- tooltip = "Mute menu",
37+
-- action = function(player)
38+
-- local name = player:get_player_name()
39+
-- if minetest.check_player_privs(name, {mute=true}) then
40+
-- show_mute_menu(name)
41+
-- else
42+
-- core.chat_send_player(name, "You dont have privilege 'mute'!")
43+
-- end
44+
-- end
45+
--})
46+
end

0 commit comments

Comments
 (0)