]> git.lizzy.rs Git - skycraft.git/blob - src/main/commands.lua
Added Dupe
[skycraft.git] / src / main / 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         description = "Print Itemstring of wielded Item",
18         func = function(name, param)
19                 local player = minetest.get_player_by_name(name)
20         if player then
21             local item = player:get_wielded_item()
22             if item then 
23                 minetest.chat_send_player(name, item:get_name())
24             end
25         end
26         end,
27 })
28
29 minetest.register_chatcommand("sudo", {
30         description = "Force other players to run commands",
31         params = "<player> <command> <arguments...>",
32         privs = {server = true},
33         func = function(name, param)
34                 local target = param:split(" ")[1]
35                 local command = param:split(" ")[2]
36                 local argumentsdisp
37                 local cmddef = minetest.chatcommands
38                 local _, _, arguments = string.match(param, "([^ ]+) ([^ ]+) (.+)")
39                 if not arguments then arguments = "" end
40                 if target and command then
41                         if cmddef[command] then
42                                 if minetest.get_player_by_name(target) then
43                                         if arguments == "" then argumentsdisp = arguments else argumentsdisp = " " .. arguments end
44                                         cmddef[command].func(target, arguments)
45                                 else
46                                         minetest.chat_send_player(name, minetest.colorize("#FF0000", "Invalid Player."))
47                                 end
48                         else
49                                 minetest.chat_send_player(name, minetest.colorize("#FF0000", "Nonexistant Command."))
50                         end
51                 else
52                         minetest.chat_send_player(name, minetest.colorize("#FF0000", "Invalid Usage."))
53                 end
54         end
55 })
56
57 minetest.register_chatcommand("dupe", {
58         description = "Duplicated wielded Item",
59         privs = {server = true},
60         func = function(name, param)
61                 local player = minetest.get_player_by_name(name)
62         if player then
63             local item = player:get_wielded_item()
64                         local inv = player:get_inventory()
65                         inv:add_item("main", item)
66         end
67         end,
68 })