2012-01-26 18:10:49 -05: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 = {}
|
|
|
|
ItemsTable = {}
|
2012-01-26 15:39:46 -05:00
|
|
|
|
|
|
|
function Initialize( Plugin )
|
|
|
|
PLUGIN = Plugin
|
|
|
|
|
2012-01-27 18:47:32 -05:00
|
|
|
Plugin:SetName( "Core" )
|
2012-01-26 18:10:49 -05:00
|
|
|
Plugin:SetVersion( 8 )
|
2012-01-26 15:39:46 -05:00
|
|
|
|
|
|
|
PluginManager = cRoot:Get():GetPluginManager()
|
2012-06-19 17:58:22 -04:00
|
|
|
PluginManager:AddHook(Plugin, cPluginManager.HOOK_PLAYER_JOIN)
|
|
|
|
PluginManager:AddHook(Plugin, cPluginManager.HOOK_LOGIN)
|
|
|
|
PluginManager:AddHook(Plugin, cPluginManager.HOOK_BLOCK_PLACE)
|
|
|
|
PluginManager:AddHook(Plugin, cPluginManager.HOOK_BLOCK_DIG)
|
|
|
|
PluginManager:AddHook(Plugin, cPluginManager.HOOK_KILLED)
|
|
|
|
PluginManager:AddHook(Plugin, cPluginManager.HOOK_CRAFTING_NO_RECIPE)
|
2012-08-21 20:35:06 -04:00
|
|
|
PluginManager:AddHook(Plugin, cPluginManager.E_PLUGIN_CHAT) -- used in web_chat.lua
|
2012-01-26 17:44:37 -05:00
|
|
|
|
2012-06-19 17:58:22 -04:00
|
|
|
Plugin:AddCommand("/help", " - [Page] Show this message", "core.help")
|
|
|
|
Plugin:AddCommand("/pluginlist", " - Show list of plugins", "core.pluginlist")
|
|
|
|
Plugin:AddCommand("/tp", " - [Player] - Teleport yourself to a player", "core.teleport")
|
|
|
|
Plugin:AddCommand("/item", " - [ItemID/Name] <Amount> - Spawn an item for yourself", "core.item")
|
|
|
|
Plugin:AddCommand("/list", " - Shows list of connected players", "core.playerlist")
|
|
|
|
Plugin:AddCommand("/motd", " - Show message of the day", "core.motd")
|
|
|
|
Plugin:AddCommand("/reload", " - Reload all plugins", "core.reload")
|
2012-07-12 13:26:00 -04:00
|
|
|
Plugin:AddCommand("/stop", " - Stops the server", "core.stop")
|
2012-06-19 17:58:22 -04:00
|
|
|
Plugin:AddCommand("/time", " - [Day/Night] - Sets the time of day", "core.time")
|
|
|
|
Plugin:AddCommand("/spawn", " - Return to the spawn", "core.spawn")
|
|
|
|
Plugin:AddCommand("/kick", " - [Player] - Kick a player", "core.kick")
|
|
|
|
Plugin:AddCommand("/ban", " - [Player] - Ban a player", "core.ban")
|
|
|
|
Plugin:AddCommand("/unban", " - [Player] - Unban a player", "core.unban")
|
|
|
|
Plugin:AddCommand("/top", " - Teleport yourself to the top most block", "core.top")
|
|
|
|
Plugin:AddCommand("/gm", " - [Gamemode (0|1)] - Change your gamemode", "core.changegm")
|
|
|
|
Plugin:AddCommand("/gotoworld", " - Move to a different world!", "core.gotoworld")
|
|
|
|
Plugin:AddCommand("/coords", " - Show your current server coordinates", "core.coords")
|
2012-04-11 08:16:13 -04:00
|
|
|
Plugin:AddCommand("/viewdistance", " - [".. cClientHandle.MIN_VIEW_DISTANCE .."-".. cClientHandle.MAX_VIEW_DISTANCE .."] - Change your view distance", "core.viewdistance")
|
|
|
|
Plugin:AddCommand("/regeneratechunk", " - <X [Z]> - Regenerates a chunk", "core.regeneratechunk")
|
|
|
|
|
2012-06-19 17:58:22 -04:00
|
|
|
Plugin:BindCommand( "/help", "core.help", HandleHelpCommand )
|
|
|
|
Plugin:BindCommand( "/pluginlist", "core.pluginlist", HandlePluginListCommand )
|
|
|
|
Plugin:BindCommand( "/tp", "core.teleport", HandleTPCommand )
|
|
|
|
Plugin:BindCommand( "/item", "core.item", HandleItemCommand )
|
|
|
|
Plugin:BindCommand( "/i", "core.item", HandleItemCommand )
|
|
|
|
Plugin:BindCommand( "/list", "core.playerlist", HandlePlayerListCommand )
|
|
|
|
Plugin:BindCommand( "/who", "core.playerlist", HandlePlayerListCommand )
|
|
|
|
Plugin:BindCommand( "/playerlist", "core.playerlist", HandlePlayerListCommand )
|
|
|
|
Plugin:BindCommand( "/motd", "core.motd", HandleMOTDCommand )
|
|
|
|
Plugin:BindCommand( "/reload", "core.reload", HandleReloadCommand )
|
2012-07-12 13:26:00 -04:00
|
|
|
Plugin:BindCommand( "/stop", "core.stop", HandleStopCommand )
|
2012-06-19 17:58:22 -04:00
|
|
|
Plugin:BindCommand( "/time", "core.time", HandleTimeCommand )
|
|
|
|
Plugin:BindCommand( "/spawn", "core.spawn", HandleSpawnCommand )
|
|
|
|
Plugin:BindCommand( "/home", "core.spawn", HandleSpawnCommand )
|
|
|
|
Plugin:BindCommand( "/kick", "core.kick", HandleKickCommand )
|
|
|
|
Plugin:BindCommand( "/ban", "core.ban", HandleBanCommand )
|
|
|
|
Plugin:BindCommand( "/unban", "core.unban", HandleUnbanCommand )
|
|
|
|
Plugin:BindCommand( "/top", "core.top", HandleTopCommand )
|
|
|
|
Plugin:BindCommand( "/gm", "core.changegm", HandleChangeGMCommand )
|
|
|
|
Plugin:BindCommand( "/gotoworld", "core.gotoworld", HandleGotoWorldCommand )
|
|
|
|
Plugin:BindCommand( "/coords", "core.coords", HandleCoordsCommand )
|
|
|
|
Plugin:BindCommand( "/viewdistance", "core.viewdistance", HandleViewDistanceCommand )
|
|
|
|
Plugin:BindCommand( "/regeneratechunk", "core.regeneratechunk", HandleRegenerateChunkCommand )
|
2012-01-26 18:10:49 -05:00
|
|
|
|
|
|
|
local IniFile = cIniFile("settings.ini")
|
|
|
|
if ( IniFile:ReadFile() == true ) then
|
|
|
|
SHOW_PLUGIN_NAMES = IniFile:GetValueB("HelpPlugin", "ShowPluginNames", true )
|
|
|
|
end
|
|
|
|
|
|
|
|
local itemsINI = cIniFile("items.ini")
|
|
|
|
if ( itemsINI:ReadFile() == true ) then
|
|
|
|
local KeyID = itemsINI:FindKey('Items')
|
|
|
|
|
|
|
|
LOGINFO("Core: loaded " .. itemsINI:GetNumValues( KeyID ) .. " item names.")
|
|
|
|
|
|
|
|
for i = 0, itemsINI:GetNumValues('Items') do
|
|
|
|
local ItemName = itemsINI:GetValueName( KeyID, i )
|
|
|
|
local ItemSyntax = itemsINI:GetValue(KeyID, i, "0")
|
|
|
|
|
|
|
|
local ItemData = StringSplit(ItemSyntax, ":") -- [1] = ID, [2] = perhaps meta/dmg
|
|
|
|
if( #ItemData > 0 ) then
|
|
|
|
local ItemID = tonumber( ItemData[1] )
|
|
|
|
if( ItemID > 0 ) then
|
|
|
|
local ItemMeta = 0
|
|
|
|
if( #ItemData > 1 ) then
|
|
|
|
ItemMeta = tonumber( ItemData[2] )
|
|
|
|
end
|
|
|
|
ItemsTable[ ItemName ] = cItem( ItemID, 1, ItemMeta )
|
2012-02-16 07:42:46 -05:00
|
|
|
--LOGINFO("Got item: " .. ItemName .. "-> " .. ItemsTable[ ItemName ].m_ItemID ..":" .. ItemsTable[ ItemName ].m_ItemHealth )
|
2012-01-26 18:10:49 -05:00
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
HAVE_ITEM_NAMES = true
|
|
|
|
end
|
|
|
|
|
|
|
|
-- Load whitelist, and add default values and stuff
|
|
|
|
WhiteListIni = cIniFile("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.")
|
|
|
|
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
|
|
|
|
BannedPlayersIni = cIniFile("banned.ini")
|
|
|
|
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 15:39:46 -05:00
|
|
|
|
2012-01-27 18:47:32 -05:00
|
|
|
local WebPlugin = Plugin:CreateWebPlugin()
|
|
|
|
WebPlugin:SetName( Plugin:GetName() )
|
2012-08-20 12:36:40 -04:00
|
|
|
WebPlugin:AddTab( "Server Settings", HandleRequest_ServerSettings )
|
2012-08-21 20:35:06 -04:00
|
|
|
WebPlugin:AddTab( "Chat", HandleRequest_Chat )
|
2012-01-30 11:47:26 -05:00
|
|
|
WebPlugin:AddTab( "Playerlist", HandleRequest_PlayerList )
|
2012-01-27 18:47:32 -05:00
|
|
|
WebPlugin:AddTab( "Whitelist", HandleRequest_WhiteList )
|
2012-01-30 11:47:26 -05:00
|
|
|
WebPlugin:AddTab( "Permissions", HandleRequest_Permissions )
|
2012-01-31 19:02:48 -05:00
|
|
|
WebPlugin:AddTab( "Manage Plugins", HandleRequest_ManagePlugins )
|
2012-01-27 18:47:32 -05:00
|
|
|
|
2012-01-26 18:10:49 -05:00
|
|
|
LOG( "Initialized " .. Plugin:GetName() .. " v." .. Plugin:GetVersion() )
|
2012-01-26 15:39:46 -05:00
|
|
|
return true
|
|
|
|
end
|