2012-01-26 23:10:49 +00:00
---- Some settings -----
SHOW_PLUGIN_NAMES = true -- If true, plugin name will be shown before commands
-- This is overwritten in the Initialize() function
------------------------
-- Global variables
PLUGIN = {} -- Reference to own plugin object
BannedPlayersIni = {}
WhiteListIni = {}
2013-07-05 11:13:21 +00:00
BackCoords = {}
2013-07-05 19:56:32 +00:00
Messages = {}
2013-06-30 19:14:22 +00:00
LimitWorldsCuboid = {}
2013-02-01 19:55:42 +00:00
function Initialize ( Plugin )
2012-01-26 20:39:46 +00:00
PLUGIN = Plugin
2013-02-01 19:55:42 +00:00
Plugin : SetName ( "Core" )
2013-06-30 19:14:22 +00:00
Plugin : SetVersion ( 13 )
2012-01-26 20:39:46 +00:00
PluginManager = cRoot : Get (): GetPluginManager ()
2013-01-13 11:10:26 +00:00
PluginManager : AddHook ( Plugin , cPluginManager.HOOK_PLAYER_JOINED )
PluginManager : AddHook ( Plugin , cPluginManager.HOOK_PLAYER_BREAKING_BLOCK )
PluginManager : AddHook ( Plugin , cPluginManager.HOOK_PLAYER_PLACING_BLOCK )
2012-06-19 21:58:22 +00:00
PluginManager : AddHook ( Plugin , cPluginManager.HOOK_LOGIN )
2013-01-28 16:54:11 +00:00
PluginManager : AddHook ( Plugin , cPluginManager.HOOK_KILLING )
2012-06-19 21:58:22 +00:00
PluginManager : AddHook ( Plugin , cPluginManager.HOOK_CRAFTING_NO_RECIPE )
2012-08-22 23:05:12 +00:00
PluginManager : AddHook ( Plugin , cPluginManager.HOOK_CHAT ) -- used in web_chat.lua
2013-03-24 15:44:44 +00:00
PluginManager : AddHook ( Plugin , cPluginManager.HOOK_CHUNK_GENERATING )
PluginManager : AddHook ( Plugin , cPluginManager.HOOK_PLAYER_MOVING )
2013-06-28 10:18:55 +00:00
PluginManager : BindCommand ( "/listworlds" , "core.listworlds" , HandleListWorldsCommand , " - Shows a list of all the worlds" );
2013-04-03 15:25:25 +00:00
PluginManager : BindCommand ( "/listgroups" , "core.listgroups" , HandleListGroupsCommand , " - Shows a list of all the groups" );
2013-03-24 18:41:19 +00:00
PluginManager : BindCommand ( "/toggledownfall" , "core.toggledownfall" , HandleToggleDownfallCommand , " - Toggles the weather" );
2013-03-02 14:43:46 +00:00
PluginManager : BindCommand ( "/back" , "core.back" , HandleBackCommand , " - Return to your last position" );
PluginManager : BindCommand ( "/save-all" , "core.save-all" , HandleSaveAllCommand , " - Saves all your worlds" );
2013-02-01 19:55:42 +00:00
PluginManager : BindCommand ( "/help" , "core.help" , HandleHelpCommand , " [Page] - Show available commands" );
2013-03-24 15:44:44 +00:00
PluginManager : BindCommand ( "/rank" , "core.rank" , HandleRankCommand , " [Player] [Rank] - to add someone to a group" );
2013-02-01 19:55:42 +00:00
PluginManager : BindCommand ( "/pluginlist" , "core.pluginlist" , HandlePluginListCommand , " - Show list of plugins" );
PluginManager : BindCommand ( "/tp" , "core.teleport" , HandleTPCommand , " [Player] - Teleport yourself to a player" );
PluginManager : BindCommand ( "/item" , "core.item" , HandleItemCommand , " [ItemType/Name] <Amount> - Give yourself an item" );
2013-03-24 15:44:44 +00:00
PluginManager : BindCommand ( "/i" , "core.item" , HandleItemCommand , "" );
2013-02-01 19:55:42 +00:00
PluginManager : BindCommand ( "/list" , "core.playerlist" , HandlePlayerListCommand , " - Shows list of connected players" );
PluginManager : BindCommand ( "/who" , "core.playerlist" , HandlePlayerListCommand , " - Shows list of connected players" );
PluginManager : BindCommand ( "/playerlist" , "core.playerlist" , HandlePlayerListCommand , " - Shows list of connected players" );
PluginManager : BindCommand ( "/motd" , "core.motd" , HandleMOTDCommand , " - Show message of the day" );
PluginManager : BindCommand ( "/reload" , "core.reload" , HandleReloadCommand , " - Reload all plugins" );
PluginManager : BindCommand ( "/stop" , "core.stop" , HandleStopCommand , " - Stops the server" );
PluginManager : BindCommand ( "/time" , "core.time" , HandleTimeCommand , " [Day/Night] - Sets the time of day" );
PluginManager : BindCommand ( "/spawn" , "core.spawn" , HandleSpawnCommand , " - Return to the spawn" );
PluginManager : BindCommand ( "/kick" , "core.kick" , HandleKickCommand , " [Player] - Kick a player" );
PluginManager : BindCommand ( "/ban" , "core.ban" , HandleBanCommand , " [Player] - Ban a player" );
PluginManager : BindCommand ( "/unban" , "core.unban" , HandleUnbanCommand , " [Player] - Unban a player" );
PluginManager : BindCommand ( "/top" , "core.top" , HandleTopCommand , " - Teleport yourself to the top most block" );
PluginManager : BindCommand ( "/gm" , "core.changegm" , HandleChangeGMCommand , " [0|1] - Change your gamemode" );
PluginManager : BindCommand ( "/gotoworld" , "core.gotoworld" , HandleGotoWorldCommand , " [WorldName] - Move to a different world!" );
PluginManager : BindCommand ( "/coords" , "core.coords" , HandleCoordsCommand , " - Show your current server coordinates" );
PluginManager : BindCommand ( "/regeneratechunk" , "core.regeneratechunk" , HandleRegenerateChunkCommand , " <[X] [Z]> - Regenerates a chunk, current or specified" );
PluginManager : BindCommand ( "/viewdistance" , "core.viewdistance" , HandleViewDistanceCommand , " [" .. cClientHandle.MIN_VIEW_DISTANCE .. "-" .. cClientHandle.MAX_VIEW_DISTANCE .. "] - Change your view distance" )
2013-02-15 13:00:59 +00:00
InitConsoleCommands ();
2013-03-24 15:44:44 +00:00
-- Load the settings
IniFile = cIniFile ( "Settings.ini" )
2012-01-26 23:10:49 +00:00
if ( IniFile : ReadFile () == true ) then
2013-03-24 15:44:44 +00:00
HardCore = IniFile : GetValueSet ( "GameMode" , "Hardcore" , "false" )
LimitWorld = IniFile : GetValueSetB ( "Worlds" , "LimitWorld" , true )
2013-06-30 19:14:22 +00:00
LimitWorldWidth = IniFile : GetValueSetI ( "Worlds" , "LimitWorldWidth" , 10 )
2013-03-24 15:44:44 +00:00
SHOW_PLUGIN_NAMES = IniFile : GetValueSetB ( "HelpPlugin" , "ShowPluginNames" , true )
2013-06-30 19:14:22 +00:00
IniFile : WriteFile ()
2012-01-26 23:10:49 +00:00
end
2013-06-30 19:14:22 +00:00
cRoot : Get (): ForEachWorld (
function ( World )
LimitWorldsCuboid [ World : GetName ()] = cCuboid ()
LimitWorldsCuboid [ World : GetName ()]. p1 = Vector3i ( math.floor ( World : GetSpawnX () / 16 ) + LimitWorldWidth , 0 , math.floor ( World : GetSpawnZ () / 16 ) + LimitWorldWidth )
LimitWorldsCuboid [ World : GetName ()]. p2 = Vector3i ( math.floor ( World : GetSpawnX () / 16 ) - LimitWorldWidth , 256 , math.floor ( World : GetSpawnZ () / 16 ) - LimitWorldWidth )
LimitWorldsCuboid [ World : GetName ()]: Sort ()
end
)
2012-01-26 23:10:49 +00:00
-- Load whitelist, and add default values and stuff
2012-09-08 20:49:29 +00:00
WhiteListIni = cIniFile ( Plugin : GetLocalDirectory () .. "/whitelist.ini" )
2012-01-26 23:10:49 +00:00
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!" )
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" )
end
end
-- Load banned players, and add default values and stuff
2012-09-08 20:49:29 +00:00
BannedPlayersIni = cIniFile ( Plugin : GetLocalDirectory () .. "/banned.ini" )
2012-01-26 23:10:49 +00:00
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" )
end
end
2012-01-26 20:39:46 +00:00
2013-03-24 15:44:44 +00:00
Plugin : AddWebTab ( "Manage Server" , HandleRequest_ManageServer );
2013-02-15 13:00:59 +00:00
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 );
2012-01-27 23:47:32 +00:00
2013-07-05 19:56:32 +00:00
LoadMotd ()
2012-01-26 23:10:49 +00:00
LOG ( "Initialized " .. Plugin : GetName () .. " v." .. Plugin : GetVersion () )
2012-01-26 20:39:46 +00:00
return true
end