]> git.lizzy.rs Git - skycraft.git/blob - commands.lua
Modularisation
[skycraft.git] / commands.lua
1 minetest.register_chatcommand("message", {
2         params = "<message>[|<color>[|<player>]]",
3         description = "Send a optional colored message as the server to one or all players.",
4         privs = {server = true},
5         func = function(name, param)
6                 local param_list = param:split("|")
7                 param_list[1] = minetest.colorize(param_list[2] or "#FFFFFF", param_list[1])
8                 if param_list[3] then
9                         minetest.chat_send_player(param_list[3], param_list[1])
10                 else
11                         minetest.chat_send_all(param_list[1])
12                 end
13         end,
14 })
15
16 minetest.register_chatcommand("wielded", {
17         params = "",
18         description = "Print Itemstring of wielded Item",
19         func = function(name, param)
20                 local player = minetest.get_player_by_name(name)
21         if player then
22             local item = player:get_wielded_item()
23             if item then 
24                 minetest.chat_send_player(name, item:get_name())
25             end
26         end
27         end,
28 })
29
30 minetest.register_chatcommand("sudo", {
31         description = "Force other players to run commands",
32         params = "<player> <command> <arguments...>",
33         privs = {server = true},
34         func = function(name, param)
35                 local target = param:split(" ")[1]
36                 local command = param:split(" ")[2]
37                 local argumentsdisp
38                 local cmddef = minetest.chatcommands
39                 local _, _, arguments = string.match(param, "([^ ]+) ([^ ]+) (.+)")
40                 if not arguments then arguments = "" end
41                 if target and command then
42                         if cmddef[command] then
43                                 if minetest.get_player_by_name(target) then
44                                         if arguments == "" then argumentsdisp = arguments else argumentsdisp = " " .. arguments end
45                                         cmddef[command].func(target, arguments)
46                                 else
47                                         minetest.chat_send_player(name, minetest.colorize("#FF0000", "Invalid Player."))
48                                 end
49                         else
50                                 minetest.chat_send_player(name, minetest.colorize("#FF0000", "Nonexistant Command."))
51                         end
52                 else
53                         minetest.chat_send_player(name, minetest.colorize("#FF0000", "Invalid Usage."))
54                 end
55         end
56 })