First commit

This commit is contained in:
ShadowNinja 2013-03-26 00:54:29 -04:00
commit 8d5af54830
3 changed files with 58 additions and 0 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
*~

1
depends.txt Normal file
View File

@ -0,0 +1 @@
irc

56
init.lua Normal file
View File

@ -0,0 +1,56 @@
irc_users = {}
mt_irc.register_bot_command("login", {
params = "<username> <password>",
description = "Login as a user to run commands",
func = function (from, args)
if (args == "") then
mt_irc.say(from, "You need a username and password")
return
end
local found, _, username, password = args:find("^([^%s]+)%s([^%s]+)$")
if not found then
username = args
end
if minetest.auth_table[username] and
minetest.auth_table[username].password == minetest.get_password_hash(username, (password or "")) then
irc_users[from] = username
mt_irc.say(from, "You are now logged in as "..username)
else
mt_irc.say(from, "Incorrect password or player does not exist")
end
end})
mt_irc.register_bot_command("logout", {
description = "Logout",
func = function (from, args)
irc_users[from] = nil
mt_irc.say(from, "You are now logged off")
end})
mt_irc.register_bot_command("command", {
params = "<command>",
description = "Run a command on the server";
func = function (from, args)
if args == "" then
mt_irc.say(from, "You need a command")
return
end
if not irc_users[from] then
mt_irc.say(from, "You are not loged in")
return
end
local found, _, commandname, params = args:find("^([^%s]+)%s(.+)$")
if not found then
commandname = args
end
local command = minetest.chatcommands[commandname]
if not command then
mt_irc.say(from, "Not a valid command")
return
end
if minetest.check_player_privs(irc_users[from], command.privs) then
command.func(irc_users[from], (params or ""))
mt_irc.say(from, "Command run successfuly")
end
end})