summaryrefslogtreecommitdiffstats
path: root/MCServer/Plugins/Core/main.lua
diff options
context:
space:
mode:
Diffstat (limited to 'MCServer/Plugins/Core/main.lua')
-rw-r--r--MCServer/Plugins/Core/main.lua208
1 files changed, 108 insertions, 100 deletions
diff --git a/MCServer/Plugins/Core/main.lua b/MCServer/Plugins/Core/main.lua
index 9c476a48c..da4d1e84e 100644
--- a/MCServer/Plugins/Core/main.lua
+++ b/MCServer/Plugins/Core/main.lua
@@ -4,180 +4,188 @@ BannedPlayersIni = {}
WhiteListIni = {}
BackCoords = {}
Messages = {}
+Destination = {}
--END VARIABLES
--COMMENCE AWESOMENESS!
-function Initialize(Plugin)
+function Initialize( Plugin )
PLUGIN = Plugin
- Plugin:SetName("Core")
- Plugin:SetVersion(13)
+ Plugin:SetName( "Core" )
+ Plugin:SetVersion( 13 )
- --ADD HOOKS
+ --ADD HOOKS
PluginManager = cRoot:Get():GetPluginManager()
- PluginManager:AddHook(Plugin, cPluginManager.HOOK_PLAYER_JOINED)
- PluginManager:AddHook(Plugin, cPluginManager.HOOK_DISCONNECT)
- PluginManager:AddHook(Plugin, cPluginManager.HOOK_PLAYER_BREAKING_BLOCK)
- PluginManager:AddHook(Plugin, cPluginManager.HOOK_PLAYER_PLACING_BLOCK)
- PluginManager:AddHook(Plugin, cPluginManager.HOOK_LOGIN)
- PluginManager:AddHook(Plugin, cPluginManager.HOOK_KILLING)
- PluginManager:AddHook(Plugin, cPluginManager.HOOK_CRAFTING_NO_RECIPE)
- PluginManager:AddHook(Plugin, cPluginManager.HOOK_CHAT) -- used in web_chat.lua
- PluginManager:AddHook(Plugin, cPluginManager.HOOK_PLAYER_MOVING)
+ PluginManager:AddHook( Plugin, cPluginManager.HOOK_PLAYER_JOINED )
+ PluginManager:AddHook( Plugin, cPluginManager.HOOK_DISCONNECT )
+ PluginManager:AddHook( Plugin, cPluginManager.HOOK_PLAYER_BREAKING_BLOCK )
+ PluginManager:AddHook( Plugin, cPluginManager.HOOK_PLAYER_PLACING_BLOCK )
+ PluginManager:AddHook( Plugin, cPluginManager.HOOK_LOGIN )
+ PluginManager:AddHook( Plugin, cPluginManager.HOOK_KILLING )
+ PluginManager:AddHook( Plugin, cPluginManager.HOOK_CRAFTING_NO_RECIPE )
+ PluginManager:AddHook( Plugin, cPluginManager.HOOK_CHAT ) -- used in web_chat.lua
+ PluginManager:AddHook( Plugin, cPluginManager.HOOK_PLAYER_MOVING )
--PLEASE ALPHA SORT http://elmosaukko.com/sort-alphabetically/ THIS LIST
- --BIND COMMANDS
- PluginManager:BindCommand("/back", "core.back", HandleBackCommand, " - Return to your last position");
- PluginManager:BindCommand("/ban", "core.ban", HandleBanCommand, " ~ Ban a player");
- PluginManager:BindCommand("/downfall", "core.downfall", HandleDownfallCommand, " - Toggles the weather");
- PluginManager:BindCommand("/give", "core.give", HandleGiveCommand, " ~ Give someone an item");
- PluginManager:BindCommand("/gm", "core.changegm", HandleChangeGMCommand, " ~ Change your gamemode");
- PluginManager:BindCommand("/groups", "core.groups", HandleGroupsCommand, " - Shows a list of all the groups");
- PluginManager:BindCommand("/help", "core.help", HandleHelpCommand, " ~ Show available commands");
+ --BIND COMMANDS
+ PluginManager:BindCommand("/back", "core.back", HandleBackCommand, " - Return to your last position")
+ PluginManager:BindCommand("/ban", "core.ban", HandleBanCommand, " ~ Ban a player")
+ PluginManager:BindCommand("/clear", "core.clear", HandleClearCommand, " - Clear the inventory of some player")
+ PluginManager:BindCommand("/give", "core.give", HandleGiveCommand, " ~ Give someone an item")
+ PluginManager:BindCommand("/gm", "core.changegm", HandleChangeGMCommand, " ~ Change your gamemode")
+ PluginManager:BindCommand("/groups", "core.groups", HandleGroupsCommand, " - Shows a list of all the groups")
+ PluginManager:BindCommand("/help", "core.help", HandleHelpCommand, " ~ Show available commands")
PluginManager:BindCommand("/i", "core.give", HandleItemCommand, "")
PluginManager:BindCommand("/item", "core.give", HandleItemCommand, " - Give yourself an item.")
- PluginManager:BindCommand("/kick", "core.kick", HandleKickCommand, " ~ Kick a player");
- PluginManager:BindCommand("/locate", "core.locate", HandleLocateCommand, " - Show your current server coordinates");
- PluginManager:BindCommand("/me", "core.me", HandleMeCommand, " ~ Tell what you are doing");
- PluginManager:BindCommand("/motd", "core.motd", HandleMOTDCommand, " - Show message of the day");
- PluginManager:BindCommand("/plugins", "core.plugins", HandlePluginsCommand, " - Show list of plugins");
- PluginManager:BindCommand("/portal", "core.portal", HandlePortalCommand, " ~ Move to a different world");
- PluginManager:BindCommand("/rank", "core.rank", HandleRankCommand, " ~ Add someone to a group");
- PluginManager:BindCommand("/regen", "core.regen", HandleRegenCommand, " ~ Regenerates a chunk, current or specified");
- PluginManager:BindCommand("/reload", "core.reload", HandleReloadCommand, " - Reload all plugins");
- PluginManager:BindCommand("/save-all", "core.save-all", HandleSaveAllCommand, " - Saves all your worlds");
- PluginManager:BindCommand("/spawn", "core.spawn", HandleSpawnCommand, " - Return to the spawn");
- PluginManager:BindCommand("/stop", "core.stop", HandleStopCommand, " - Stops the server");
- PluginManager:BindCommand("/time", "core.time", HandleTimeCommand, " ~ Sets the time of day");
- PluginManager:BindCommand("/top", "core.top", HandleTopCommand, " - Teleport yourself to the top most block");
- PluginManager:BindCommand("/tp", "core.teleport", HandleTPCommand, " ~ Teleport yourself to a player");
- PluginManager:BindCommand("/tpa", "core.teleport", HandleTPACommand, " ~ Ask to teleport yourself to a player");
- PluginManager:BindCommand("/tpaccept", "core.teleport", HandleTPAcceptCommand, " ~ Accept a teleportation request");
- PluginManager:BindCommand("/unban", "core.unban", HandleUnbanCommand, " ~ Unban a player");
+ PluginManager:BindCommand("/kick", "core.kick", HandleKickCommand, " ~ Kick a player")
+ PluginManager:BindCommand("/kill", "core.kill", HandleKillCommand, " - Kill some player")
+ PluginManager:BindCommand("/locate", "core.locate", HandleLocateCommand, " - Show your current server coordinates")
+ PluginManager:BindCommand("/me", "core.me", HandleMeCommand, " ~ Tell what you are doing")
+ PluginManager:BindCommand("/motd", "core.motd", HandleMOTDCommand, " - Show message of the day")
+ PluginManager:BindCommand("/msg", "core.tell", HandleTellCommand, "")
+ PluginManager:BindCommand("/plugins", "core.plugins", HandlePluginsCommand, " - Show list of plugins")
+ PluginManager:BindCommand("/portal", "core.portal", HandlePortalCommand, " ~ Move to a different world")
+ PluginManager:BindCommand("/rank", "core.rank", HandleRankCommand, " ~ Add someone to a group")
+ PluginManager:BindCommand("/regen", "core.regen", HandleRegenCommand, " ~ Regenerates a chunk, current or specified")
+ PluginManager:BindCommand("/reload", "core.reload", HandleReloadCommand, " - Reload all plugins")
+ PluginManager:BindCommand("/save-all", "core.save-all", HandleSaveAllCommand, " - Saves all your worlds")
+ PluginManager:BindCommand("/spawn", "core.spawn", HandleSpawnCommand, " - Return to the spawn")
+ PluginManager:BindCommand("/stop", "core.stop", HandleStopCommand, " - Stops the server")
+ PluginManager:BindCommand("/tell", "core.tell", HandleTellCommand, " ~ Send a private message")
+ PluginManager:BindCommand("/time", "core.time", HandleTimeCommand, " ~ Sets the time of day")
+ PluginManager:BindCommand("/toggledownfall", "core.toggledownfall", HandleDownfallCommand, " - Toggles the weather")
+ PluginManager:BindCommand("/top", "core.top", HandleTopCommand, " - Teleport yourself to the top most block")
+ PluginManager:BindCommand("/tp", "core.teleport", HandleTPCommand, " ~ Teleport yourself to a player")
+ PluginManager:BindCommand("/tpa", "core.teleport", HandleTPACommand, " ~ Ask to teleport yourself to a player")
+ PluginManager:BindCommand("/tpaccept", "core.teleport", HandleTPAcceptCommand, " ~ Accept a teleportation request")
+ PluginManager:BindCommand("/unban", "core.unban", HandleUnbanCommand, " ~ Unban a player")
PluginManager:BindCommand("/viewdistance", "core.viewdistance", HandleViewDistanceCommand, " [".. cClientHandle.MIN_VIEW_DISTANCE .."-".. cClientHandle.MAX_VIEW_DISTANCE .."] - Change your view distance")
- PluginManager:BindCommand("/worlds", "core.worlds", HandleWorldsCommand, " - Shows a list of all the worlds");
+ PluginManager:BindCommand("/weather", "core.weather", HandleWeatherCommand, " ~ Change world weather")
+ PluginManager:BindCommand("/worlds", "core.worlds", HandleWorldsCommand, " - Shows a list of all the worlds")
- InitConsoleCommands();
+ InitConsoleCommands()
--LOAD SETTINGS
- IniFile = cIniFile("settings.ini")
- if ( IniFile:ReadFile() == true ) then
- HardCore = IniFile:GetValueSet("GameMode", "Hardcore", "false")
+ IniFile = cIniFile( "settings.ini" )
+ if IniFile:ReadFile() == true then
+ HardCore = IniFile:GetValueSet( "GameMode", "Hardcore", "false" )
IniFile:WriteFile()
end
-
+
WorldsSpawnProtect = {}
- local KeyIdx = IniFile:FindKey("Worlds") --(FIND WHERE 'WORLDS' KEY IS LOCATED)
- local NumValues = (IniFile:GetNumValues( KeyIdx )) --(HOW MANY VALUES ARE THERE?)
+ local KeyIdx = IniFile:FindKey( "Worlds" ) --(FIND WHERE 'WORLDS' KEY IS LOCATED)
+ local NumValues = IniFile:GetNumValues( KeyIdx ) --(HOW MANY VALUES ARE THERE?)
for i = 0, NumValues - 1 do --(FOR EVERY WORLD KEY, TAKING ACCOUNT OF OFF BY ONE ERRORS)
- WorldIni = cIniFile(IniFile:GetValue(KeyIdx, i) .. "/world.ini")
+ WorldIni = cIniFile( IniFile:GetValue(KeyIdx, i) .. "/world.ini" )
if WorldIni:ReadFile() == true then
- WorldsSpawnProtect[IniFile:GetValue(KeyIdx, i)] = WorldIni:GetValueSetI("SpawnProtect", "ProtectRadius", 10)
+ WorldsSpawnProtect[IniFile:GetValue(KeyIdx, i)] = WorldIni:GetValueSetI( "SpawnProtect", "ProtectRadius", 10 )
WorldIni:WriteFile()
end
end
WorldsWorldLimit = {}
- local KeyIdx = IniFile:FindKey("Worlds") --(FIND WHERE 'WORLDS' KEY IS LOCATED)
- local NumValues = (IniFile:GetNumValues( KeyIdx )) --(HOW MANY VALUES ARE THERE?)
+ local KeyIdx = IniFile:FindKey( "Worlds" ) --(FIND WHERE 'WORLDS' KEY IS LOCATED)
+ local NumValues = IniFile:GetNumValues( KeyIdx ) --(HOW MANY VALUES ARE THERE?)
for i = 0, NumValues - 1 do --(FOR EVERY WORLD KEY, TAKING ACCOUNT OF OFF BY ONE ERRORS)
- WorldIni = cIniFile(IniFile:GetValue(KeyIdx, i) .. "/world.ini")
+ WorldIni = cIniFile( IniFile:GetValue(KeyIdx, i) .. "/world.ini" )
if WorldIni:ReadFile() == true then
- WorldsWorldLimit[IniFile:GetValue(KeyIdx, i)] = WorldIni:GetValueSetI("WorldLimit", "LimitRadius", 0)
+ WorldsWorldLimit[IniFile:GetValue(KeyIdx, i)] = WorldIni:GetValueSetI( "WorldLimit", "LimitRadius", 0 )
WorldIni:WriteFile()
end
end
--LOAD WHITELIST
WhiteListIni = cIniFile( Plugin:GetLocalDirectory() .. "/whitelist.ini" )
- if ( WhiteListIni:ReadFile() == true ) then
- if( WhiteListIni:GetValueB("WhiteListSettings", "WhiteListOn", false) == true ) then
- if( WhiteListIni:GetNumValues("WhiteList") > 0 ) then
- LOGINFO("Core: loaded " .. WhiteListIni:GetNumValues('WhiteList') .. " whitelisted players.")
+ if WhiteListIni:ReadFile() == true then
+ if WhiteListIni:GetValueB( "WhiteListSettings", "WhiteListOn", false ) == true then
+ if WhiteListIni:GetNumValues( "WhiteList" ) > 0 then
+ LOGINFO( "Core: loaded " .. WhiteListIni:GetNumValues('WhiteList') .. " whitelisted players." )
else
- LOGWARN("WARNING: WhiteList is on, but there are no people in the whitelist!")
+ LOGWARN( "WARNING: WhiteList is on, but there are no people in the whitelist!" )
end
end
else
- WhiteListIni:SetValueB("WhiteListSettings", "WhiteListOn", false )
- WhiteListIni:SetValue("WhiteList", "", "") -- So it adds an empty header
- WhiteListIni:DeleteValue("WhiteList", "") -- And remove the value
- WhiteListIni:KeyComment("WhiteList", "PlayerName=1")
- if( WhiteListIni:WriteFile() == false ) then
- LOGWARN("WARNING: Could not write to whitelist.ini")
+ WhiteListIni:SetValueB( "WhiteListSettings", "WhiteListOn", false )
+ WhiteListIni:SetValue( "WhiteList", "", "" ) -- So it adds an empty header
+ WhiteListIni:DeleteValue( "WhiteList", "" ) -- And remove the value
+ WhiteListIni:KeyComment( "WhiteList", "PlayerName=1" )
+ if WhiteListIni:WriteFile() == false then
+ LOGWARN( "WARNING: Could not write to whitelist.ini" )
end
end
--LOAD BANNED (BAD LUCK, BRO)
BannedPlayersIni = cIniFile( Plugin:GetLocalDirectory() .. "/banned.ini" )
- if ( BannedPlayersIni:ReadFile() == true ) then
- if( BannedPlayersIni:GetNumValues("Banned") > 0 ) then
- LOGINFO("Core: loaded " .. BannedPlayersIni:GetNumValues("Banned") .. " banned players.")
+ if BannedPlayersIni:ReadFile() == true then
+ if BannedPlayersIni:GetNumValues( "Banned" ) > 0 then
+ LOGINFO( "Core: loaded " .. BannedPlayersIni:GetNumValues("Banned") .. " banned players." )
end
else
- BannedPlayersIni:SetValue("Banned", "", "") -- So it adds an empty header
- BannedPlayersIni:DeleteValue("Banned", "") -- And remove the value
- BannedPlayersIni:KeyComment("Banned", "PlayerName=1")
- if( BannedPlayersIni:WriteFile() == false ) then
- LOGWARN("WARNING: Could not write to banned.ini")
+ BannedPlayersIni:SetValue( "Banned", "", "" ) -- So it adds an empty header
+ BannedPlayersIni:DeleteValue( "Banned", "" ) -- And remove the value
+ BannedPlayersIni:KeyComment( "Banned", "PlayerName=1" )
+ if BannedPlayersIni:WriteFile() == false then
+ LOGWARN( "WARNING: Could not write to banned.ini" )
end
end
--ADD WEB INTERFACE TABULATES
- Plugin:AddWebTab("Manage Server", HandleRequest_ManageServer);
- Plugin:AddWebTab("Server Settings", HandleRequest_ServerSettings);
- Plugin:AddWebTab("Chat", HandleRequest_Chat);
- Plugin:AddWebTab("Playerlist", HandleRequest_PlayerList);
- Plugin:AddWebTab("Whitelist", HandleRequest_WhiteList);
- Plugin:AddWebTab("Permissions", HandleRequest_Permissions);
- Plugin:AddWebTab("Manage Plugins", HandleRequest_ManagePlugins);
+ Plugin:AddWebTab( "Manage Server", HandleRequest_ManageServer )
+ Plugin:AddWebTab( "Server Settings", HandleRequest_ServerSettings )
+ Plugin:AddWebTab( "Chat", HandleRequest_Chat )
+ Plugin:AddWebTab( "Playerlist", HandleRequest_PlayerList )
+ Plugin:AddWebTab( "Whitelist", HandleRequest_WhiteList )
+ Plugin:AddWebTab( "Permissions", HandleRequest_Permissions )
+ Plugin:AddWebTab( "Manage Plugins", HandleRequest_ManagePlugins )
LoadMotd()
LOG( "Initialized " .. Plugin:GetName() .. " v." .. Plugin:GetVersion() )
return true
+
end
--AWESOMENESS STILL GOING!
--BEGIN SPAWNPROTECT LOGFILE CODE (COURTSEY OF BEARBIN)
-function WriteLog(breakPlace, X, Y, Z, player, id, meta)
+function WriteLog( breakPlace, X, Y, Z, player, id, meta )
+
local logText = {}
- table.insert(logText, player)
- table.insert(logText, " tried to ")
+ table.insert( logText, player )
+ table.insert( logText, " tried to " )
if breakPlace == 0 then
- table.insert(logText, "break ")
+ table.insert( logText, "break " )
else
- table.insert(logText, "place ")
+ table.insert( logText, "place " )
end
- table.insert(logText, ItemToString(cItem(id, 1, meta)))
- table.insert(logText, " at ")
- table.insert(logText, tostring(X))
- table.insert(logText, ", ")
- table.insert(logText, tostring(Y))
- table.insert(logText, ", ")
- table.insert(logText, tostring(Z))
- table.insert(logText, ".")
+ table.insert( logText, ItemToString(cItem(id, 1, meta)) )
+ table.insert( logText, " at ")
+ table.insert( logText, tostring(X) )
+ table.insert( logText, ", ")
+ table.insert( logText, tostring(Y) )
+ table.insert( logText, ", ")
+ table.insert( logText, tostring(Z) )
+ table.insert( logText, "." )
- LOGINFO(table.concat(logText,''))
+ LOGINFO( table.concat( logText, '') )
if LOGTOFILE then
- local logFile = io.open( Plugin:GetLocalDirectory() .. '/blocks.log', 'a')
- logFile:write(table.concat(logText,'').."\n")
+ local logFile = io.open( Plugin:GetLocalDirectory() .. '/blocks.log', 'a' )
+ logFile:write( table.concat( logText, '' ) .. "\n" )
logFile:close()
end
return
end
-
-function WarnPlayer(Player)
- Player:SendMessage(cChatColor.Rose .. "[INFO] " .. cChatColor.White .. "Go further from spawn to build")
- return
+
+function WarnPlayer( Player )
+ SendMessageFailure( Player, "Go further from spawn to build" )
+ return true
end
function OnDisable()
- LOG( "Disabled Core!")
+ LOG( "Disabled Core!" )
end
--END AWESOMENESS :'(