From 12906c026d414c752d3c0ba9481f425b24b29c67 Mon Sep 17 00:00:00 2001 From: faketruth Date: Mon, 20 Aug 2012 12:20:20 +0000 Subject: Moved files used by MCServer to a special MCServer folder git-svn-id: http://mc-server.googlecode.com/svn/trunk@763 0a769ca7-a7f5-676a-18bf-c427514a06d6 --- MCServer/Plugins/ChatLog/plugin.lua | 17 + MCServer/Plugins/Core/ban.lua | 30 ++ MCServer/Plugins/Core/coords.lua | 4 + MCServer/Plugins/Core/gamemode.lua | 10 + MCServer/Plugins/Core/gotoworld.lua | 15 + MCServer/Plugins/Core/help.lua | 54 +++ MCServer/Plugins/Core/item.lua | 65 ++++ MCServer/Plugins/Core/kick.lua | 27 ++ MCServer/Plugins/Core/main.lua | 147 +++++++++ MCServer/Plugins/Core/motd.lua | 10 + MCServer/Plugins/Core/onblockdig.lua | 10 + MCServer/Plugins/Core/onblockplace.lua | 63 ++++ MCServer/Plugins/Core/oncraftingnorecipe.lua | 214 ++++++++++++ MCServer/Plugins/Core/onkilled.lua | 24 ++ MCServer/Plugins/Core/onlogin.lua | 20 ++ MCServer/Plugins/Core/onplayerjoin.lua | 4 + MCServer/Plugins/Core/playerlist.lua | 14 + MCServer/Plugins/Core/pluginlist.lua | 13 + MCServer/Plugins/Core/regeneratechunk.lua | 18 + MCServer/Plugins/Core/reload.lua | 6 + MCServer/Plugins/Core/spawn.lua | 6 + MCServer/Plugins/Core/stop.lua | 6 + MCServer/Plugins/Core/teleport.lua | 23 ++ MCServer/Plugins/Core/time.lua | 18 + MCServer/Plugins/Core/top.lua | 11 + MCServer/Plugins/Core/unban.lua | 20 ++ MCServer/Plugins/Core/viewdistance.lua | 10 + MCServer/Plugins/Core/web_manageplugins.lua | 93 ++++++ MCServer/Plugins/Core/web_permissions.lua | 79 +++++ MCServer/Plugins/Core/web_playerlist.lua | 36 ++ MCServer/Plugins/Core/web_whitelist.lua | 79 +++++ MCServer/Plugins/MagicCarpet/objects.lua | 97 ++++++ MCServer/Plugins/MagicCarpet/plugin.lua | 65 ++++ MCServer/Plugins/SquirrelChatLog.nut | 13 + MCServer/Plugins/sTick/main.lua | 20 ++ MCServer/Plugins/sTick/onblockplace.lua | 18 + MCServer/banned.example.ini | 3 + MCServer/crafting.txt | 357 ++++++++++++++++++++ MCServer/furnace.txt | 64 ++++ MCServer/groups.example.ini | 17 + MCServer/groups.ini | 17 + MCServer/items.ini | 471 +++++++++++++++++++++++++++ MCServer/monsters.ini | 111 +++++++ MCServer/settings.example.ini | 31 ++ MCServer/settings.ini | 37 +++ MCServer/terrain.ini | 8 + MCServer/users.example.ini | 8 + MCServer/users.ini | 20 ++ MCServer/webadmin.example.ini | 6 + MCServer/webadmin.ini | 6 + MCServer/webadmin/template.html | 376 +++++++++++++++++++++ MCServer/whitelist.example.ini | 6 + Plugins/ChatLog/plugin.lua | 17 - Plugins/Core/ban.lua | 30 -- Plugins/Core/coords.lua | 4 - Plugins/Core/gamemode.lua | 10 - Plugins/Core/gotoworld.lua | 15 - Plugins/Core/help.lua | 54 --- Plugins/Core/item.lua | 65 ---- Plugins/Core/kick.lua | 27 -- Plugins/Core/main.lua | 146 --------- Plugins/Core/motd.lua | 10 - Plugins/Core/onblockdig.lua | 10 - Plugins/Core/onblockplace.lua | 63 ---- Plugins/Core/oncraftingnorecipe.lua | 214 ------------ Plugins/Core/onkilled.lua | 24 -- Plugins/Core/onlogin.lua | 20 -- Plugins/Core/onplayerjoin.lua | 4 - Plugins/Core/playerlist.lua | 14 - Plugins/Core/pluginlist.lua | 13 - Plugins/Core/regeneratechunk.lua | 18 - Plugins/Core/reload.lua | 6 - Plugins/Core/spawn.lua | 6 - Plugins/Core/stop.lua | 6 - Plugins/Core/teleport.lua | 23 -- Plugins/Core/time.lua | 18 - Plugins/Core/top.lua | 11 - Plugins/Core/unban.lua | 20 -- Plugins/Core/viewdistance.lua | 10 - Plugins/Core/web_manageplugins.lua | 93 ------ Plugins/Core/web_permissions.lua | 79 ----- Plugins/Core/web_playerlist.lua | 36 -- Plugins/Core/web_whitelist.lua | 79 ----- Plugins/MagicCarpet/objects.lua | 97 ------ Plugins/MagicCarpet/plugin.lua | 65 ---- Plugins/SquirrelChatLog.nut | 13 - Plugins/sTick/main.lua | 20 -- Plugins/sTick/onblockplace.lua | 18 - VC2008/MCServer.vcproj | 3 + banned.example.ini | 3 - crafting.txt | 357 -------------------- furnace.txt | 64 ---- groups.example.ini | 17 - groups.ini | 17 - items.ini | 471 --------------------------- monsters.ini | 111 ------- settings.example.ini | 31 -- settings.ini | 33 -- terrain.ini | 8 - users.example.ini | 8 - users.ini | 20 -- webadmin.example.ini | 6 - webadmin.ini | 6 - webadmin/template.html | 376 --------------------- whitelist.example.ini | 6 - 105 files changed, 2900 insertions(+), 2892 deletions(-) create mode 100644 MCServer/Plugins/ChatLog/plugin.lua create mode 100644 MCServer/Plugins/Core/ban.lua create mode 100644 MCServer/Plugins/Core/coords.lua create mode 100644 MCServer/Plugins/Core/gamemode.lua create mode 100644 MCServer/Plugins/Core/gotoworld.lua create mode 100644 MCServer/Plugins/Core/help.lua create mode 100644 MCServer/Plugins/Core/item.lua create mode 100644 MCServer/Plugins/Core/kick.lua create mode 100644 MCServer/Plugins/Core/main.lua create mode 100644 MCServer/Plugins/Core/motd.lua create mode 100644 MCServer/Plugins/Core/onblockdig.lua create mode 100644 MCServer/Plugins/Core/onblockplace.lua create mode 100644 MCServer/Plugins/Core/oncraftingnorecipe.lua create mode 100644 MCServer/Plugins/Core/onkilled.lua create mode 100644 MCServer/Plugins/Core/onlogin.lua create mode 100644 MCServer/Plugins/Core/onplayerjoin.lua create mode 100644 MCServer/Plugins/Core/playerlist.lua create mode 100644 MCServer/Plugins/Core/pluginlist.lua create mode 100644 MCServer/Plugins/Core/regeneratechunk.lua create mode 100644 MCServer/Plugins/Core/reload.lua create mode 100644 MCServer/Plugins/Core/spawn.lua create mode 100644 MCServer/Plugins/Core/stop.lua create mode 100644 MCServer/Plugins/Core/teleport.lua create mode 100644 MCServer/Plugins/Core/time.lua create mode 100644 MCServer/Plugins/Core/top.lua create mode 100644 MCServer/Plugins/Core/unban.lua create mode 100644 MCServer/Plugins/Core/viewdistance.lua create mode 100644 MCServer/Plugins/Core/web_manageplugins.lua create mode 100644 MCServer/Plugins/Core/web_permissions.lua create mode 100644 MCServer/Plugins/Core/web_playerlist.lua create mode 100644 MCServer/Plugins/Core/web_whitelist.lua create mode 100644 MCServer/Plugins/MagicCarpet/objects.lua create mode 100644 MCServer/Plugins/MagicCarpet/plugin.lua create mode 100644 MCServer/Plugins/SquirrelChatLog.nut create mode 100644 MCServer/Plugins/sTick/main.lua create mode 100644 MCServer/Plugins/sTick/onblockplace.lua create mode 100644 MCServer/banned.example.ini create mode 100644 MCServer/crafting.txt create mode 100644 MCServer/furnace.txt create mode 100644 MCServer/groups.example.ini create mode 100644 MCServer/groups.ini create mode 100644 MCServer/items.ini create mode 100644 MCServer/monsters.ini create mode 100644 MCServer/settings.example.ini create mode 100644 MCServer/settings.ini create mode 100644 MCServer/terrain.ini create mode 100644 MCServer/users.example.ini create mode 100644 MCServer/users.ini create mode 100644 MCServer/webadmin.example.ini create mode 100644 MCServer/webadmin.ini create mode 100644 MCServer/webadmin/template.html create mode 100644 MCServer/whitelist.example.ini delete mode 100644 Plugins/ChatLog/plugin.lua delete mode 100644 Plugins/Core/ban.lua delete mode 100644 Plugins/Core/coords.lua delete mode 100644 Plugins/Core/gamemode.lua delete mode 100644 Plugins/Core/gotoworld.lua delete mode 100644 Plugins/Core/help.lua delete mode 100644 Plugins/Core/item.lua delete mode 100644 Plugins/Core/kick.lua delete mode 100644 Plugins/Core/main.lua delete mode 100644 Plugins/Core/motd.lua delete mode 100644 Plugins/Core/onblockdig.lua delete mode 100644 Plugins/Core/onblockplace.lua delete mode 100644 Plugins/Core/oncraftingnorecipe.lua delete mode 100644 Plugins/Core/onkilled.lua delete mode 100644 Plugins/Core/onlogin.lua delete mode 100644 Plugins/Core/onplayerjoin.lua delete mode 100644 Plugins/Core/playerlist.lua delete mode 100644 Plugins/Core/pluginlist.lua delete mode 100644 Plugins/Core/regeneratechunk.lua delete mode 100644 Plugins/Core/reload.lua delete mode 100644 Plugins/Core/spawn.lua delete mode 100644 Plugins/Core/stop.lua delete mode 100644 Plugins/Core/teleport.lua delete mode 100644 Plugins/Core/time.lua delete mode 100644 Plugins/Core/top.lua delete mode 100644 Plugins/Core/unban.lua delete mode 100644 Plugins/Core/viewdistance.lua delete mode 100644 Plugins/Core/web_manageplugins.lua delete mode 100644 Plugins/Core/web_permissions.lua delete mode 100644 Plugins/Core/web_playerlist.lua delete mode 100644 Plugins/Core/web_whitelist.lua delete mode 100644 Plugins/MagicCarpet/objects.lua delete mode 100644 Plugins/MagicCarpet/plugin.lua delete mode 100644 Plugins/SquirrelChatLog.nut delete mode 100644 Plugins/sTick/main.lua delete mode 100644 Plugins/sTick/onblockplace.lua delete mode 100644 banned.example.ini delete mode 100644 crafting.txt delete mode 100644 furnace.txt delete mode 100644 groups.example.ini delete mode 100644 groups.ini delete mode 100644 items.ini delete mode 100644 monsters.ini delete mode 100644 settings.example.ini delete mode 100644 settings.ini delete mode 100644 terrain.ini delete mode 100644 users.example.ini delete mode 100644 users.ini delete mode 100644 webadmin.example.ini delete mode 100644 webadmin.ini delete mode 100644 webadmin/template.html delete mode 100644 whitelist.example.ini diff --git a/MCServer/Plugins/ChatLog/plugin.lua b/MCServer/Plugins/ChatLog/plugin.lua new file mode 100644 index 000000000..e18a8e642 --- /dev/null +++ b/MCServer/Plugins/ChatLog/plugin.lua @@ -0,0 +1,17 @@ +function Initialize( Plugin ) + Plugin:SetName( "ChatLog" ) + Plugin:SetVersion( 2 ) + + PluginManager = cRoot:Get():GetPluginManager() + PluginManager:AddHook( Plugin, cPluginManager.E_PLUGIN_CHAT ) + + LOG( "Initialized " .. Plugin:GetName() .. " v." .. Plugin:GetVersion() ) + return true +end + +function OnChat( Message, Player ) + -- Lets get loggin' + LOGINFO("[" .. Player:GetName() .. "]: " .. Message); + + return false +end \ No newline at end of file diff --git a/MCServer/Plugins/Core/ban.lua b/MCServer/Plugins/Core/ban.lua new file mode 100644 index 000000000..a6a662c3c --- /dev/null +++ b/MCServer/Plugins/Core/ban.lua @@ -0,0 +1,30 @@ +function HandleBanCommand( Split, Player ) + if( #Split < 2 ) then + Player:SendMessage( cChatColor.Green .. "Usage: /ban [Player] " ) + return true + end + + local World = Player:GetWorld() + local OtherPlayer = World:GetPlayer( Split[2] ) + if( OtherPlayer == nil ) then + Player:SendMessage( cChatColor.Green .. "Could not find player " .. Split[2] ) + return true + end + + local Reason = "You have been banned" + if( #Split > 2 ) then + Reason = table.concat(Split, " ", 3) + end + + local Server = cRoot:Get():GetServer() + LOGINFO( Player:GetName() .. " is banning " .. OtherPlayer:GetName() .. " ( "..Reason..") " ) + Server:SendMessage( "Banning " .. OtherPlayer:GetName() ) + + local ClientHandle = OtherPlayer:GetClientHandle() + ClientHandle:Kick( Reason ) + + BannedPlayersIni:SetValueB("Banned", OtherPlayer:GetName(), true) + BannedPlayersIni:WriteFile() + + return true +end \ No newline at end of file diff --git a/MCServer/Plugins/Core/coords.lua b/MCServer/Plugins/Core/coords.lua new file mode 100644 index 000000000..07cda1a92 --- /dev/null +++ b/MCServer/Plugins/Core/coords.lua @@ -0,0 +1,4 @@ +function HandleCoordsCommand( Split, Player ) + Player:SendMessage(cChatColor.Green .. string.format("[X:%0.2f] [Y:%0.2f] [Z:%0.2f]", Player:GetPosX(), Player:GetPosY(), Player:GetPosZ() ) ) + return true +end \ No newline at end of file diff --git a/MCServer/Plugins/Core/gamemode.lua b/MCServer/Plugins/Core/gamemode.lua new file mode 100644 index 000000000..1e73b46fd --- /dev/null +++ b/MCServer/Plugins/Core/gamemode.lua @@ -0,0 +1,10 @@ +function HandleChangeGMCommand( Split, Player ) + if( #Split ~= 2 ) then + Player:SendMessage( cChatColor.Green .. "Usage: /gm [GameMode (0|1)]" ) + return true + end + + Player:SetGameMode(Split[2]) + + return true +end \ No newline at end of file diff --git a/MCServer/Plugins/Core/gotoworld.lua b/MCServer/Plugins/Core/gotoworld.lua new file mode 100644 index 000000000..d5113b667 --- /dev/null +++ b/MCServer/Plugins/Core/gotoworld.lua @@ -0,0 +1,15 @@ +function HandleGotoWorldCommand( Split, Player ) + if( #Split ~= 2 ) then + Player:SendMessage( cChatColor.Green .. "Usage: /gotoworld [WorldName]" ) + return true + end + + if( Player:MoveToWorld(Split[2]) == false ) then + Player:SendMessage( cChatColor.Green .. "Could not move to world '" .. Split[2] .. "'!" ) + return true + end + + + Player:SendMessage( cChatColor.Green .. "Moved successfully to '" .. Split[2] .. "'! :D" ) + return true +end \ No newline at end of file diff --git a/MCServer/Plugins/Core/help.lua b/MCServer/Plugins/Core/help.lua new file mode 100644 index 000000000..02ef25ebd --- /dev/null +++ b/MCServer/Plugins/Core/help.lua @@ -0,0 +1,54 @@ +function HandleHelpCommand( Split, Player ) + local PluginManager = cRoot:Get():GetPluginManager() + + local LinesPerPage = 9 + local CurrentPage = 1 + local CurrentLine = 0 + + if( #Split == 2 ) then + CurrentPage = tonumber(Split[2]) + end + + local Pages = {} + + local PluginList = PluginManager:GetAllPlugins() + for i, Plugin in ipairs( PluginList ) do + local Commands = Plugin:GetCommands() + for i, v in ipairs( Commands ) do + if( Player:HasPermission( v.Permission ) ) then + local PageNum = math.floor( CurrentLine/LinesPerPage )+1 + if( Pages[ PageNum ] == nil ) then Pages[ PageNum ] = {} end -- Create page + + if( Pages[ PageNum ].ShownName ~= Plugin:GetName() and SHOW_PLUGIN_NAMES == true ) then + if( CurrentLine == LinesPerPage * PageNum -1 ) then -- Don't add if it's the last line of the page, it looks silly + -- Add it to the next page instead + CurrentLine = CurrentLine+1 + PageNum = math.floor( CurrentLine/LinesPerPage )+1 + + if( Pages[ PageNum ] == nil ) then Pages[ PageNum ] = {} end -- Create page + table.insert( Pages[ PageNum ], cChatColor.Gold .. Plugin:GetName() ) + else + Pages[ PageNum ].ShownName = Plugin:GetName() + table.insert( Pages[ PageNum ], cChatColor.Gold .. Plugin:GetName() ) + end + CurrentLine = CurrentLine+1 + PageNum = math.floor( CurrentLine/LinesPerPage )+1 + if( Pages[ PageNum ] == nil ) then Pages[ PageNum ] = {} end -- Create page + end + local Message = cChatColor.Blue .. v.Command .. v.Description; + table.insert( Pages[ PageNum ], Message ) + CurrentLine = CurrentLine+1 + end + end + end + + Player:SendMessage( cChatColor.Purple .. "- All commands - " .. cChatColor.Gold .. "[Page " .. (CurrentPage) .."/"..#Pages.."]" ) + + if( Pages[CurrentPage] ~= nil ) then + for i, v in ipairs(Pages[CurrentPage]) do + Player:SendMessage( v ) + end + end + + return true +end \ No newline at end of file diff --git a/MCServer/Plugins/Core/item.lua b/MCServer/Plugins/Core/item.lua new file mode 100644 index 000000000..942fa8ce6 --- /dev/null +++ b/MCServer/Plugins/Core/item.lua @@ -0,0 +1,65 @@ +function HandleItemCommand( Split, Player ) + if( #Split ~= 2 and #Split ~=3 ) then + Player:SendMessage( cChatColor.Green .. "Usage: /item [ItemID/Name:Dmg] " ) + return true + end + + local FoundItem = false + + local ItemSyntax = Split[2] -- Contains item string with optional metadata + local ItemData = StringSplit( Split[2], ":" ) + + -- Default item values + local ItemID = 0 + local ItemMeta = 0 + local ItemAmount = 1 + + if( #ItemData > 0 ) then + ItemID = ItemData[1] + end + + if( tonumber(ItemID) ~= nil ) then -- Definitely a number + ItemID = tonumber(ItemID) + if( IsValidItem( ItemID ) ) then + FoundItem = true + end + end + + if( FoundItem == false ) then + if ( HAVE_ITEM_NAMES == true ) then + local Item = ItemsTable[ ItemID ] + if( Item ~= nil ) then + ItemID = Item.m_ItemID + ItemMeta = Item.m_ItemHealth + FoundItem = true + end + end + end + + -- Override metadata from item in list, if metadata was given + if( #ItemData > 1 and tonumber( ItemData[2] ) ~= nil ) then -- Metadata is given, and is a number + ItemMeta = tonumber( ItemData[2] ) + end + + if( FoundItem == false ) then + Player:SendMessage( cChatColor.Green .. "Invalid Item ID / Name !" ) + return true + end + + if( #Split == 3 ) then + ItemAmount = tonumber( Split[3] ) + if( ItemAmount == nil or ItemAmount < 1 or ItemAmount > 512 ) then + Player:SendMessage( cChatColor.Green .. "Invalid Amount !" ) + return true + end + end + + local NewItem = cItem( ItemID, ItemAmount, ItemMeta ) + if( Player:GetInventory():AddItem( NewItem ) == true ) then + Player:SendMessage( cChatColor.Green .. "There you go !" ) + LOG("Gave " .. Player:GetName() .. " " .. ItemAmount .. " times " .. ItemID .. ":" .. ItemMeta) + else + Player:SendMessage( cChatColor.Green .. "Not enough space in inventory !" ) + end + return true +end \ No newline at end of file diff --git a/MCServer/Plugins/Core/kick.lua b/MCServer/Plugins/Core/kick.lua new file mode 100644 index 000000000..ff4f8a705 --- /dev/null +++ b/MCServer/Plugins/Core/kick.lua @@ -0,0 +1,27 @@ +function HandleKickCommand( Split, Player ) + if( #Split < 2 ) then + Player:SendMessage( cChatColor.Green .. "Usage: /kick [Player] " ) + return true + end + + local World = Player:GetWorld() + local OtherPlayer = World:GetPlayer( Split[2] ) + if( OtherPlayer == nil ) then + Player:SendMessage( cChatColor.Green .. "Could not find player " .. Split[2] ) + return true + end + + local Reason = "You have been kicked" + if( #Split > 2 ) then + Reason = table.concat(Split, " ", 3) + end + + local Server = cRoot:Get():GetServer() + LOGINFO( Player:GetName() .. " is kicking " .. OtherPlayer:GetName() .. " ( "..Reason..") " ) + Server:SendMessage( "Kicking " .. OtherPlayer:GetName() ) + + local ClientHandle = OtherPlayer:GetClientHandle() + ClientHandle:Kick( Reason ) + + return true +end \ No newline at end of file diff --git a/MCServer/Plugins/Core/main.lua b/MCServer/Plugins/Core/main.lua new file mode 100644 index 000000000..fead7638b --- /dev/null +++ b/MCServer/Plugins/Core/main.lua @@ -0,0 +1,147 @@ +---- 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 = {} + +function Initialize( Plugin ) + PLUGIN = Plugin + + Plugin:SetName( "Core" ) + Plugin:SetVersion( 8 ) + + PluginManager = cRoot:Get():GetPluginManager() + 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) + + 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] - 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") + Plugin:AddCommand("/stop", " - Stops the server", "core.stop") + 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") + Plugin:AddCommand("/viewdistance", " - [".. cClientHandle.MIN_VIEW_DISTANCE .."-".. cClientHandle.MAX_VIEW_DISTANCE .."] - Change your view distance", "core.viewdistance") + Plugin:AddCommand("/regeneratechunk", " - - Regenerates a chunk", "core.regeneratechunk") + + 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 ) + Plugin:BindCommand( "/stop", "core.stop", HandleStopCommand ) + 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 ) + + 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 ) + --LOGINFO("Got item: " .. ItemName .. "-> " .. ItemsTable[ ItemName ].m_ItemID ..":" .. ItemsTable[ ItemName ].m_ItemHealth ) + 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 + + local WebPlugin = Plugin:CreateWebPlugin() + WebPlugin:SetName( Plugin:GetName() ) + WebPlugin:AddTab( "Playerlist", HandleRequest_PlayerList ) + WebPlugin:AddTab( "Whitelist", HandleRequest_WhiteList ) + WebPlugin:AddTab( "Permissions", HandleRequest_Permissions ) + WebPlugin:AddTab( "Manage Plugins", HandleRequest_ManagePlugins ) + WebPlugin:AddTab( "Ini Editor", HandleRequest_IniEditor ) + + LOG( "Initialized " .. Plugin:GetName() .. " v." .. Plugin:GetVersion() ) + return true +end \ No newline at end of file diff --git a/MCServer/Plugins/Core/motd.lua b/MCServer/Plugins/Core/motd.lua new file mode 100644 index 000000000..49cdcecad --- /dev/null +++ b/MCServer/Plugins/Core/motd.lua @@ -0,0 +1,10 @@ +function HandleMOTDCommand( Split, Player ) + ShowMOTDTo( Player ) + return true +end + +function ShowMOTDTo( Player ) + Player:SendMessage( cChatColor.Gold .. "Welcome to the MCServer test server!" ); + Player:SendMessage( cChatColor.Gold .. "http://mcserver.ae-c.net/" ); + Player:SendMessage( cChatColor.Gold .. "Type /help for all commands" ); +end \ No newline at end of file diff --git a/MCServer/Plugins/Core/onblockdig.lua b/MCServer/Plugins/Core/onblockdig.lua new file mode 100644 index 000000000..65e48576c --- /dev/null +++ b/MCServer/Plugins/Core/onblockdig.lua @@ -0,0 +1,10 @@ +function OnBlockDig(Player, BlockX, BlockY, BlockZ, BlockFace, Status, OldBlockType, OldBlockMeta) + -- dont check if the direction is in the air + if (BlockFace ~= -1) then + + if (Player:HasPermission("core.build") == false) then + return true + end + end + return false +end \ No newline at end of file diff --git a/MCServer/Plugins/Core/onblockplace.lua b/MCServer/Plugins/Core/onblockplace.lua new file mode 100644 index 000000000..9032f8207 --- /dev/null +++ b/MCServer/Plugins/Core/onblockplace.lua @@ -0,0 +1,63 @@ +function OnBlockPlace(Player, BlockX, BlockY, BlockZ, BlockFace, HeldItem) + + -- dont check if the direction is in the air + if (BlockFace == -1) then + return false + end + + if( Player:HasPermission("core.build") == false ) then + return true + end + + -- TODO: If the placed block is not a block (torch etc.), allow it without checking for collisions + + local X = BlockX + local Y = BlockY + local Z = BlockZ + X, Y, Z = AddDirection(X, Y, Z, BlockFace) + if (Y >= 256 or Y < 0) then + return true + end + + local CheckCollision = function(Player) + -- drop the decimals, we only care about the full block X,Y,Z + local PlayerX = math.floor(Player:GetPosX(), 0) + local PlayerY = math.floor(Player:GetPosY(), 0) + local PlayerZ = math.floor(Player:GetPosZ(), 0) + + -- player height is 2 blocks, so we check the position and then offset it up one + -- so they can't place a block in anyone's face + + local collision = false + if ((BlockFace == BLOCK_FACE_TOP) and (PlayerY == BlockY - 2) and (PlayerX == BlockX) and (PlayerZ == BlockZ)) then + collision = true + end + + if ((BlockFace == BLOCK_FACE_BOTTOM) and (PlayerY == BlockY + 1) and (PlayerX == BlockX) and (PlayerZ == BlockZ)) then + collision = true + end + + if ((BlockFace == BLOCK_FACE_NORTH) and (PlayerX == BlockX) and (PlayerZ == BlockZ - 1)) then + if ((PlayerY == BlockY) or (PlayerY + 1 == BlockY)) then collision = true end + end + + if ((BlockFace == BLOCK_FACE_SOUTH) and (PlayerX == BlockX) and (PlayerZ == BlockZ + 1)) then + if ((PlayerY == BlockY) or (PlayerY + 1 == BlockY)) then collision = true end + end + + if ((BlockFace == BLOCK_FACE_WEST) and (PlayerX == BlockX - 1) and (PlayerZ == BlockZ)) then + if ((PlayerY == BlockY) or (PlayerY + 1 == BlockY)) then collision = true end + end + + if ((BlockFace == BLOCK_FACE_EAST) and (PlayerX == BlockX + 1) and (PlayerZ == BlockZ)) then + if ((PlayerY == BlockY) or (PlayerY + 1 == BlockY)) then collision = true end + end + + return collision + end + + if (Player:GetWorld():ForEachPlayer(CheckCollision) == false) then + return true + end + return false +end \ No newline at end of file diff --git a/MCServer/Plugins/Core/oncraftingnorecipe.lua b/MCServer/Plugins/Core/oncraftingnorecipe.lua new file mode 100644 index 000000000..2006e410f --- /dev/null +++ b/MCServer/Plugins/Core/oncraftingnorecipe.lua @@ -0,0 +1,214 @@ + +-- Implements item-repair using the HOOK_CRAFTING_NO_RECIPE hook +-- Based on Fixies plugin v2 by Taugeshtu + + +-- how much "extra" points are healed per a repair operation (fraction of full health) +BONUS = 0.1 + + + + + +function OnCraftingNoRecipe(Player, Grid, Recipe) + local _do_fix = false + local Items = {} + for x = 0, Grid:GetWidth() - 1 do + for y = 0, Grid:GetHeight() - 1 do + local Item = Grid:GetItem(x, y) + if (Item.m_ItemID ~= E_ITEM_EMPTY) then + table.insert(Items, Item) + end + end + end + + if (#Items ~= 2) then + -- Only two items together can be fixed + return false + end + + if (Items[1].m_ItemID ~= Items[2].m_ItemID) then + -- Only items of the same type may be fixed + return false + end + + if ( + (Items[1].m_ItemHealth == 0) or + (Items[2].m_ItemHealth == 0) + ) + then + -- Only damaged items may be fixed + return false + end + + local _ID = Items[1].m_ItemID + local _least_hp = math.max(Items[1].m_ItemHealth, Items[2].m_ItemHealth) + local _most_hp = math.min(Items[1].m_ItemHealth, Items[2].m_ItemHealth) + local _item_hp = 0 + + -- TODO: This could be refactored into better code, using an _ID-indexed table for _item_hp + + if ( + (_ID == E_ITEM_WOODEN_SHOVEL) or + (_ID == E_ITEM_WOODEN_AXE) or + (_ID == E_ITEM_WOODEN_PICKAXE) or + (_ID == E_ITEM_WOODEN_SWORD) or + (_ID == E_ITEM_WOODEN_HOE) + ) + then + _item_hp = 60 + _do_fix = true + end + + if ( + (_ID == E_ITEM_STONE_SHOVEL) or + (_ID == E_ITEM_STONE_AXE) or + (_ID == E_ITEM_STONE_PICKAXE) or + (_ID == E_ITEM_STONE_SWORD) or + (_ID == E_ITEM_STONE_HOE) + ) + then + _item_hp = 132 + _do_fix = true + end + + if ( + (_ID == E_ITEM_IRON_SHOVEL) or + (_ID == E_ITEM_IRON_AXE) or + (_ID == E_ITEM_IRON_PICKAXE) or + (_ID == E_ITEM_IRON_SWORD) or + (_ID == E_ITEM_IRON_HOE) + ) + then + _item_hp = 251 + _do_fix = true + end + + if ( + (_ID == E_ITEM_GOLD_SHOVEL) or + (_ID == E_ITEM_GOLD_AXE) or + (_ID == E_ITEM_GOLD_PICKAXE) or + (_ID == E_ITEM_GOLD_SWORD) or + (_ID == E_ITEM_GOLD_HOE) + ) + then + _item_hp = 33 + _do_fix = true + end + + if ( + (_ID == E_ITEM_DIAMOND_SHOVEL) or + (_ID == E_ITEM_DIAMOND_AXE) or + (_ID == E_ITEM_DIAMOND_PICKAXE) or + (_ID == E_ITEM_DIAMOND_SWORD) or + (_ID == E_ITEM_DIAMOND_HOE) + ) + then + _item_hp = 1562 + _do_fix = true + end + + if (_ID == E_ITEM_LEATHER_CAP) then + _item_hp = 56 + _do_fix = true + end + if (_ID == E_ITEM_LEATHER_TUNIC) then + _item_hp = 82 + _do_fix = true + end + if (_ID == E_ITEM_LEATHER_PANTS) then + _item_hp = 76 + _do_fix = true + end + if (_ID == E_ITEM_LEATHER_BOOTS) then + _item_hp = 66 + _do_fix = true + end + + + if (_ID == E_ITEM_CHAIN_HELMET) then + _item_hp = 78 + _do_fix = true + end + if (_ID == E_ITEM_CHAIN_CHESTPLATE) then + _item_hp = 114 + _do_fix = true + end + if (_ID == E_ITEM_CHAIN_LEGGINGS) then + _item_hp = 106 + _do_fix = true + end + if (_ID == E_ITEM_CHAIN_BOOTS) then + _item_hp = 92 + _do_fix = true + end + + + if (_ID == E_ITEM_IRON_HELMET) then + _item_hp = 166 + _do_fix = true + end + if (_ID == E_ITEM_IRON_CHESTPLATE) then + _item_hp = 242 + _do_fix = true + end + if (_ID == E_ITEM_IRON_LEGGINGS) then + _item_hp = 226 + _do_fix = true + end + if (_ID == E_ITEM_IRON_BOOTS) then + _item_hp = 196 + _do_fix = true + end + + + if (_ID == E_ITEM_GOLD_HELMET) then + _item_hp = 78 + _do_fix = true + end + if (_ID == E_ITEM_GOLD_CHESTPLATE) then + _item_hp = 114 + _do_fix = true + end + if (_ID == E_ITEM_GOLD_LEGGINGS) then + _item_hp = 106 + _do_fix = true + end + if (_ID == E_ITEM_GOLD_BOOTS) then + _item_hp = 92 + _do_fix = true + end + + + if (_ID == E_ITEM_DIAMOND_HELMET) then + _item_hp = 364 + _do_fix = true + end + if (_ID == E_ITEM_DIAMOND_CHESTPLATE)then + _item_hp = 529 + _do_fix = true + end + if (_ID == E_ITEM_DIAMOND_LEGGINGS) then + _item_hp = 496 + _do_fix = true + end + if (_ID == E_ITEM_DIAMOND_BOOTS) then + _item_hp = 430 + _do_fix = true + end + -- ///////////////////////////////////////////////////// + + if (_do_fix == true) then + local _hp = _most_hp - (_item_hp - _least_hp) - _item_hp * BONUS + _hp = math.max(_hp, 0) + Recipe:SetResult(_ID, 1, _hp) + Recipe:SetIngredient(Items[1].x, Items[1].y, Items[1]); + Recipe:SetIngredient(Items[2].x, Items[2].y, Items[2]); + return true + end + return false +end + + + + diff --git a/MCServer/Plugins/Core/onkilled.lua b/MCServer/Plugins/Core/onkilled.lua new file mode 100644 index 000000000..a8a92f667 --- /dev/null +++ b/MCServer/Plugins/Core/onkilled.lua @@ -0,0 +1,24 @@ +function OnKilled( Killed, Killer ) + if( Killer == nil ) then + local KilledPlayer = tolua.cast( Killed, "cPlayer") + if( not KilledPlayer:IsA("cPlayer") or KilledPlayer == nil ) then + return false + end + + local Server = cRoot:Get():GetServer() + Server:SendMessage( cChatColor.Red .. KilledPlayer:GetName() .. " died" ) + else + local KilledPlayer = tolua.cast( Killed, "cPlayer") + if( not KilledPlayer:IsA("cPlayer") or KilledPlayer == nil ) then + return false + end + local KillerPlayer = tolua.cast( Killer, "cPlayer") + if( not KillerPlayer:IsA("cPlayer") or KillerPlayer == nil ) then + return false + end + + local Server = cRoot:Get():GetServer() + Server:SendMessage( cChatColor.Red .. KilledPlayer:GetName() .. " was killed by " .. KillerPlayer:GetName() .. "!" ) + end + return false +end \ No newline at end of file diff --git a/MCServer/Plugins/Core/onlogin.lua b/MCServer/Plugins/Core/onlogin.lua new file mode 100644 index 000000000..a706f8024 --- /dev/null +++ b/MCServer/Plugins/Core/onlogin.lua @@ -0,0 +1,20 @@ +function OnLogin( PacketData ) + if( PacketData.m_Username ~= "" ) then + if( BannedPlayersIni:GetValueB("Banned", PacketData.m_Username, false) == true ) then + local Server = cRoot:Get():GetServer() + Server:SendMessage( PacketData.m_Username .. " tried to join, but is banned!" ) + LOGINFO( PacketData.m_Username .. " tried to join, but is banned!") + return true -- Player is banned, return true to deny access + end + if( WhiteListIni:GetValueB("WhiteListSettings", "WhiteListOn", false ) == true ) then + if( WhiteListIni:GetValueB("WhiteList", PacketData.m_Username, false ) == false ) then -- not on whitelist + local Server = cRoot:Get():GetServer() + Server:SendMessage( PacketData.m_Username .. " tried to join, but is not on the whitelist." ) + LOGINFO( PacketData.m_Username .. " tried to join, but is not on the whitelist." ) + return true -- Deny access to the server + end + end + end + + return false +end \ No newline at end of file diff --git a/MCServer/Plugins/Core/onplayerjoin.lua b/MCServer/Plugins/Core/onplayerjoin.lua new file mode 100644 index 000000000..e8263f608 --- /dev/null +++ b/MCServer/Plugins/Core/onplayerjoin.lua @@ -0,0 +1,4 @@ +function OnPlayerJoin( Player ) + ShowMOTDTo( Player ) + return false +end \ No newline at end of file diff --git a/MCServer/Plugins/Core/playerlist.lua b/MCServer/Plugins/Core/playerlist.lua new file mode 100644 index 000000000..f06dfed85 --- /dev/null +++ b/MCServer/Plugins/Core/playerlist.lua @@ -0,0 +1,14 @@ +function HandlePlayerListCommand( Split, Player ) + + local PlayerTable = {} + local AppendToTable = function( Player ) + table.insert(PlayerTable, Player:GetName() ) + end + Player:GetWorld():ForEachPlayer( AppendToTable ) + + local Message = cChatColor.Green .. "Connected players: (".. cChatColor.White.. #PlayerTable .. cChatColor.Green .. ")" + Player:SendMessage( Message ) + + Player:SendMessage( table.concat(PlayerTable, " ") ) + return true +end \ No newline at end of file diff --git a/MCServer/Plugins/Core/pluginlist.lua b/MCServer/Plugins/Core/pluginlist.lua new file mode 100644 index 000000000..7b007f7db --- /dev/null +++ b/MCServer/Plugins/Core/pluginlist.lua @@ -0,0 +1,13 @@ +function HandlePluginListCommand( Split, Player ) + local PluginManager = cRoot:Get():GetPluginManager() + local PluginList = PluginManager:GetAllPlugins() + + local PluginTable = {} + for i, Plugin in ipairs( PluginList ) do + table.insert(PluginTable, Plugin:GetName() ) + end + + Player:SendMessage( cChatColor.Green .. "Loaded plugins: (" .. #PluginTable .. ")" ) + Player:SendMessage( cChatColor.Gold .. table.concat(PluginTable, cChatColor.Gold.." ") ) + return true +end \ No newline at end of file diff --git a/MCServer/Plugins/Core/regeneratechunk.lua b/MCServer/Plugins/Core/regeneratechunk.lua new file mode 100644 index 000000000..b4b2874fc --- /dev/null +++ b/MCServer/Plugins/Core/regeneratechunk.lua @@ -0,0 +1,18 @@ +function HandleRegenerateChunkCommand( Split, Player ) + if( (#Split == 2) or (#Split > 3) ) then + Player:SendMessage( cChatColor.Green .. "Usage: /regeneratechunk " ) + return true + end + + local X = Player:GetChunkX() + local Z = Player:GetChunkZ() + + if( #Split == 3 ) then + X = Split[2] + Z = Split[3] + end + + Player:SendMessage(cChatColor.Green .. "Regenerating chunk ["..X..", "..Z.."]") + Player:GetWorld():RegenerateChunk(X, Z) + return true +end \ No newline at end of file diff --git a/MCServer/Plugins/Core/reload.lua b/MCServer/Plugins/Core/reload.lua new file mode 100644 index 000000000..e2b338ba1 --- /dev/null +++ b/MCServer/Plugins/Core/reload.lua @@ -0,0 +1,6 @@ +function HandleReloadCommand( Split, Player ) + Server = cRoot:Get():GetServer() + Server:SendMessage( cChatColor.Green .. "Reloading all plugins." ) + cRoot:Get():GetPluginManager():ReloadPlugins() + return true +end \ No newline at end of file diff --git a/MCServer/Plugins/Core/spawn.lua b/MCServer/Plugins/Core/spawn.lua new file mode 100644 index 000000000..73034d9cf --- /dev/null +++ b/MCServer/Plugins/Core/spawn.lua @@ -0,0 +1,6 @@ +function HandleSpawnCommand( Split, Player ) + World = Player:GetWorld() + Player:TeleportTo( World:GetSpawnX(), World:GetSpawnY(), World:GetSpawnZ() ) + LOGINFO( Player:GetName() .. " returned to spawn." ) + return true +end \ No newline at end of file diff --git a/MCServer/Plugins/Core/stop.lua b/MCServer/Plugins/Core/stop.lua new file mode 100644 index 000000000..0a06fc7d3 --- /dev/null +++ b/MCServer/Plugins/Core/stop.lua @@ -0,0 +1,6 @@ +function HandleStopCommand( Split, Player ) + Server = cRoot:Get():GetServer() + Server:SendMessage( cChatColor.Green .. "Stopping the server..." ) + cRoot:Get():ServerCommand("stop") + return true +end \ No newline at end of file diff --git a/MCServer/Plugins/Core/teleport.lua b/MCServer/Plugins/Core/teleport.lua new file mode 100644 index 000000000..90eb3529a --- /dev/null +++ b/MCServer/Plugins/Core/teleport.lua @@ -0,0 +1,23 @@ +function HandleTPCommand( Split, Player ) + if( #Split ~= 2 ) then + Player:SendMessage( cChatColor.Green .. "Usage: /tp [PlayerName]" ) + return true + end + + World = Player:GetWorld() + + local TeleportDestination = function(OtherPlayer) + if( OtherPlayer == Player ) then + Player:SendMessage( cChatColor.Green .. "Already there :)" ) + else + Player:TeleportToEntity( OtherPlayer ) + Player:SendMessage( cChatColor.Green .. "You teleported to "..OtherPlayer:GetName().."!" ) + OtherPlayer:SendMessage( cChatColor.Green .. Player:GetName().." teleported to you!" ) + end + end + + if (not(World:DoWithPlayer(Split[2], TeleportDestination))) then + Player:SendMessage( cChatColor.Green .. "Can't find player " .. Split[2] ) + end + return true +end \ No newline at end of file diff --git a/MCServer/Plugins/Core/time.lua b/MCServer/Plugins/Core/time.lua new file mode 100644 index 000000000..425d69e6a --- /dev/null +++ b/MCServer/Plugins/Core/time.lua @@ -0,0 +1,18 @@ +function HandleTimeCommand( Split, Player ) + if( #Split ~= 2 ) then + Player:SendMessage( cChatColor.Green .. "Usage: /time [Day/Night]" ) + return true; + end + + local Server = cRoot:Get():GetServer() + if( string.upper( Split[2] ) == "DAY") then + Player:GetWorld():SetWorldTime( 0 ) + Server:SendMessage( cChatColor.Green .. Player:GetName() .. " set the time to Day.") + elseif( string.upper( Split[2] ) == "NIGHT") then + Player:GetWorld():SetWorldTime( 12000 + 1000 ) + Server:SendMessage( cChatColor.Green .. Player:GetName() .. " set the time to Night.") + else + Player:SendMessage( cChatColor.Green .. "Usage: /time [Day/Night]" ) + end + return true +end \ No newline at end of file diff --git a/MCServer/Plugins/Core/top.lua b/MCServer/Plugins/Core/top.lua new file mode 100644 index 000000000..0f7a8f95f --- /dev/null +++ b/MCServer/Plugins/Core/top.lua @@ -0,0 +1,11 @@ +function HandleTopCommand( Split, Player ) + local World = Player:GetWorld() + + local PlayerPos = Player:GetPosition() + local Height = World:GetHeight( math.floor(PlayerPos.x), math.floor(PlayerPos.z) ) + + Player:TeleportTo( PlayerPos.x, Height+1, PlayerPos.z ) + Player:SendMessage("Teleported to the top block") + + return true +end \ No newline at end of file diff --git a/MCServer/Plugins/Core/unban.lua b/MCServer/Plugins/Core/unban.lua new file mode 100644 index 000000000..9defbe323 --- /dev/null +++ b/MCServer/Plugins/Core/unban.lua @@ -0,0 +1,20 @@ +function HandleUnbanCommand( Split, Player ) + if( #Split < 2 ) then + Player:SendMessage( cChatColor.Green .. "Usage: /unban [Player]" ) + return true + end + + if( BannedPlayersIni:GetValueB("Banned", Split[2], false) == false ) then + Player:SendMessage( cChatColor.Green .. Split[2] .. " is not banned!" ) + return true + end + + BannedPlayersIni:SetValueB("Banned", Split[2], false, false) + BannedPlayersIni:WriteFile() + + local Server = cRoot:Get():GetServer() + LOGINFO( Player:GetName() .. " is unbanning " .. Split[2] ) + Server:SendMessage( "Unbanning " .. Split[2] ) + + return true +end \ No newline at end of file diff --git a/MCServer/Plugins/Core/viewdistance.lua b/MCServer/Plugins/Core/viewdistance.lua new file mode 100644 index 000000000..43d2a7de8 --- /dev/null +++ b/MCServer/Plugins/Core/viewdistance.lua @@ -0,0 +1,10 @@ +function HandleViewDistanceCommand( Split, Player ) + if( #Split ~= 2 ) then + Player:SendMessage( cChatColor.Green .. "Usage: /viewdistance [".. cClientHandle.MIN_VIEW_DISTANCE .."-".. cClientHandle.MAX_VIEW_DISTANCE .."]" ) + return true + end + + Player:GetClientHandle():SetViewDistance( Split[2] ) + Player:SendMessage(cChatColor.Green .. "Your viewdistance has been set to " .. Player:GetClientHandle():GetViewDistance() ) + return true +end \ No newline at end of file diff --git a/MCServer/Plugins/Core/web_manageplugins.lua b/MCServer/Plugins/Core/web_manageplugins.lua new file mode 100644 index 000000000..3030efc7a --- /dev/null +++ b/MCServer/Plugins/Core/web_manageplugins.lua @@ -0,0 +1,93 @@ +local function Button_RemovePlugin( Name, Index ) + return "
" +end + +local function HandlePluginListChanges( Request, SettingsIni ) + local Content = "" + if( Request.PostParams["RemovePlugin"] ~= nil + and Request.PostParams["PluginName"] ~= nil + and Request.PostParams["PluginIndex"] ~= nil ) then -- Removing a plugin + + local KeyIdx = SettingsIni:FindKey("Plugins") + local PluginIdx = Request.PostParams["PluginIndex"] + + local PluginName = SettingsIni:GetValue( KeyIdx, PluginIdx ) + if( (PluginName == Request.PostParams["PluginName"]) and (SettingsIni:DeleteValueByID( KeyIdx, PluginIdx ) == true) ) then + SettingsIni:WriteFile() + Content = "Removed plugin '" .. PluginName .. "'" + else + Content = "Whoops! Something went wrong!" + end + + + elseif( Request.PostParams["AddPlugin"] ~= nil + and Request.PostParams["PluginName"] ~= nil ) then -- Add a plugin + + SettingsIni:SetValue("Plugins", "NewPlugin", Request.PostParams["PluginName"], true ) + SettingsIni:WriteFile() + + Content = "Added plugin '".. Request.PostParams["PluginName"] .."'" + + end + + if( #Content > 0 ) then + return "

INFO: " .. Content .. "

" + else + return "" + end +end + +function HandleRequest_ManagePlugins( Request ) + local Content = "" + + if( Request.PostParams["reload"] ~= nil ) then + Content = Content .. "" + Content = Content .. "

Reloading plugins... This can take a while depending on the plugins you're using.

" + cRoot:Get():GetPluginManager():ReloadPlugins() + return Content + end + + local PluginManager = cRoot:Get():GetPluginManager() + local PluginList = PluginManager:GetAllPlugins() + + Content = Content .. "

Currently active plugins

" + Content = Content .. "" + for k, Plugin in pairs(PluginList) do + Content = Content .. "" + end + Content = Content .. "
" .. Plugin:GetName() .. " V. " .. Plugin:GetVersion() .. "
" + + local SettingsIni = cIniFile("settings.ini") + if( SettingsIni:ReadFile() == true ) then + Content = Content .. "

Plugins according to settings.ini

" + + Content = Content .. HandlePluginListChanges( Request, SettingsIni ) + + Content = Content .. "" + + local KeyIdx = SettingsIni:FindKey("Plugins") + local NumValues = SettingsIni:GetNumValues( KeyIdx ) + for i = 0, NumValues-1 do + local ValueName = SettingsIni:GetValueName(KeyIdx, i ) + local PluginName = SettingsIni:GetValue(KeyIdx, i) + Content = Content .. "" + Content = Content .. "" + Content = Content .. "" + Content = Content .. "" + end + Content = Content .. "
" .. ValueName .. ": " .. PluginName .. "" .. Button_RemovePlugin( PluginName, i ) .. "
" + end + + Content = Content .. "

Add plugin to settings.ini

" + Content = Content .. "
" + Content = Content .. "" + Content = Content .. "
" + + Content = Content .. "

Reload

" + Content = Content .. "
" + Content = Content .. "

Click the reload button to reload all plugins!
" + Content = Content .. "

" + Content = Content .. "
" + + return Content +end \ No newline at end of file diff --git a/MCServer/Plugins/Core/web_permissions.lua b/MCServer/Plugins/Core/web_permissions.lua new file mode 100644 index 000000000..4fce502e1 --- /dev/null +++ b/MCServer/Plugins/Core/web_permissions.lua @@ -0,0 +1,79 @@ +local function ShowUsersTable() + local Content = "

Users

" + + local UsersIni = cIniFile("users.ini") + if( UsersIni:ReadFile() == false ) then + return "Could not read users.ini!" + end + + local NumUsers = UsersIni:GetNumKeys() + + Content = Content .. "" + + if( NumUsers > 0 ) then + Content = Content .. "" + + for i=0, NumUsers-1 do + local UserName = UsersIni:GetKeyName( i ) + + Content = Content .. "" + Content = Content .. "" + Content = Content .. "" + Content = Content .. "" + Content = Content .. "" + end + else + Content = Content .. "" + end + Content = Content .. "
UserGroups
" .. i .. "." .. UserName .. "" + Content = Content .. UsersIni:GetValue( UserName, "Groups", "-" ) + Content = Content .. "
None
" + + + return Content +end + +local function ShowGroupsTable() + local Content = "

Groups

" + + local GroupsIni = cIniFile("groups.ini") + if( GroupsIni:ReadFile() == false ) then + return "Could not read groups.ini!" + end + + local NumGroups = GroupsIni:GetNumKeys() + + Content = Content .. "" + if( NumGroups > 0 ) then + Content = Content .. "" + + for i=0, NumGroups-1 do + local GroupName = GroupsIni:GetKeyName( i ) + + Content = Content .. "" + Content = Content .. "" + Content = Content .. "" + Content = Content .. "" + Content = Content .. "" + Content = Content .. "" + end + else + Content = Content .. "" + end + Content = Content .. "
NamePermissionsColor
" .. i .. "." .. GroupName .. "" + Content = Content .. GroupsIni:GetValue( GroupName, "Permissions", "-" ) + Content = Content .. "" + Content = Content .. GroupsIni:GetValue( GroupName, "Color", "-" ) + Content = Content .. "
None
" + + return Content +end + +function HandleRequest_Permissions( Request ) + local Content = "" + + Content = Content .. ShowGroupsTable() + Content = Content .. ShowUsersTable() + + return Content +end \ No newline at end of file diff --git a/MCServer/Plugins/Core/web_playerlist.lua b/MCServer/Plugins/Core/web_playerlist.lua new file mode 100644 index 000000000..b7e48cc3f --- /dev/null +++ b/MCServer/Plugins/Core/web_playerlist.lua @@ -0,0 +1,36 @@ +function HandleRequest_PlayerList( Request ) + local World = cRoot:Get():GetDefaultWorld() + local Content = "" + + if( Request.Params["playerlist-kick"] ~= nil ) then + local KickPlayerName = Request.Params["playerlist-kick"] + local Player = World:GetPlayer( KickPlayerName ) + if( Player == nil ) then + Content = Content .. "

Could not find player " .. KickPlayerName .. " !

" + elseif( Player:GetName() == KickPlayerName ) then + Player:GetClientHandle():Kick("You were kicked from the game!") + Content = Content .. "

" .. KickPlayerName .. " has been kicked from the game!

" + end + end + + Content = Content .. "

Connected Players: " .. World:GetNumPlayers() .. "

" + Content = Content .. "" + + local PlayerNum = 0 + local AddPlayerToTable = function( Player ) + PlayerNum = PlayerNum + 1 + Content = Content .. "" + Content = Content .. "" + Content = Content .. "" + Content = Content .. "" + Content = Content .. "" + end + World:ForEachPlayer( AddPlayerToTable ) + + if( PlayerNum == 0 ) then + Content = Content .. "" + end + Content = Content .. "
" .. PlayerNum .. "." .. Player:GetName() .. "Kick
None
" + Content = Content .. "
" + return Content +end \ No newline at end of file diff --git a/MCServer/Plugins/Core/web_whitelist.lua b/MCServer/Plugins/Core/web_whitelist.lua new file mode 100644 index 000000000..2c9ddb953 --- /dev/null +++ b/MCServer/Plugins/Core/web_whitelist.lua @@ -0,0 +1,79 @@ +local function HTMLDeleteButton( name ) + return "
" +end + +function HandleRequest_WhiteList( Request ) + local UpdateMessage = "" + if( Request.PostParams["whitelist-add"] ~= nil ) then + local PlayerName = Request.PostParams["whitelist-add"] + + if( WhiteListIni:GetValueB("WhiteList", PlayerName, false) == true ) then + UpdateMessage = "".. PlayerName.." is already on the whitelist" + else + WhiteListIni:SetValueB("WhiteList", PlayerName, true ) + UpdateMessage = "Added " .. PlayerName .. " to whitelist." + WhiteListIni:WriteFile() + end + elseif( Request.PostParams["whitelist-delete"] ~= nil ) then + local PlayerName = Request.PostParams["whitelist-delete"] + WhiteListIni:DeleteValue( "WhiteList", PlayerName ) + UpdateMessage = "Removed " .. PlayerName .. " from whitelist." + WhiteListIni:WriteFile() + elseif( Request.PostParams["whitelist-reload"] ~= nil ) then + WhiteListIni:Erase() -- Empty entire loaded ini first, otherwise weird shit goes down + WhiteListIni:ReadFile() + UpdateMessage = "Loaded from disk" + elseif( Request.Params["whitelist-setenable"] ~= nil ) then + local Enabled = Request.Params["whitelist-setenable"] + local CreateNewValue = false + if( WhiteListIni:FindValue( WhiteListIni:FindKey("WhiteListSettings"), "WhiteListOn" ) == cIniFile.noID ) then -- Find out whether the value is in the ini + CreateNewValue = true + end + + if( Enabled == "1" ) then + WhiteListIni:SetValueB("WhiteListSettings", "WhiteListOn", true, CreateNewValue ) + else + WhiteListIni:SetValueB("WhiteListSettings", "WhiteListOn", false, CreateNewValue ) + end + WhiteListIni:WriteFile() + end + + + local Content = "" + + local WhiteListEnabled = WhiteListIni:GetValueB("WhiteListSettings", "WhiteListOn", false) + if( WhiteListEnabled == false ) then + Content = Content .. "

Whitelist is currently disabled! Click here to enable.

" + end + + + Content = Content .. "

Whitelisted players

" + Content = Content .. "" + local KeyNum = WhiteListIni:FindKey("WhiteList") + local NumValues = WhiteListIni:GetNumValues(KeyNum) + if( NumValues > 0 ) then + for Num = 0, NumValues-1 do + if( WhiteListIni:GetValue(KeyNum, Num, "0") == "1" ) then + local PlayerName = WhiteListIni:GetValueName(KeyNum, Num ) + Content = Content .. "" + end + end + else + Content = Content .. "" + end + Content = Content .. "
" .. PlayerName .. "" .. HTMLDeleteButton( PlayerName ) .. "
None
" + Content = Content .. "

Add player to whitelist

" + Content = Content .. "
" + Content = Content .. "" + Content = Content .. "
" + Content = Content .. "
" + Content = Content .. "" + Content = Content .. "
" + Content = Content .. "
"..UpdateMessage + + if( WhiteListEnabled == true ) then + Content = Content .. "

Whitelist is currently enabled, click here to disable.

" + end + + return Content +end \ No newline at end of file diff --git a/MCServer/Plugins/MagicCarpet/objects.lua b/MCServer/Plugins/MagicCarpet/objects.lua new file mode 100644 index 000000000..30528cc42 --- /dev/null +++ b/MCServer/Plugins/MagicCarpet/objects.lua @@ -0,0 +1,97 @@ +-- Location object +cLocation = {} +function cLocation:new( x, y, z ) + local object = { x = x, y = y, z = z } + setmetatable(object, { __index = cLocation }) + return object +end + +-- Offsets +cFibers = { } +function cFibers:new() + local object = { + cLocation:new( 2, -1, 2 ), + cLocation:new( 2, -1, 1 ), + cLocation:new( 2, -1, 0 ), + cLocation:new( 2, -1, -1 ), + cLocation:new( 2, -1, -2 ), + cLocation:new( 1, -1, 2 ), + cLocation:new( 1, -1, 1 ), + cLocation:new( 1, -1, 0 ), + cLocation:new( 1, -1, -1 ), + cLocation:new( 1, -1, -2 ), + cLocation:new( 0, -1, 2 ), + cLocation:new( 0, -1, 1 ), + cLocation:new( 0, -1, 0 ), + cLocation:new( 0, -1, -1 ), + cLocation:new( 0, -1, -2 ), + cLocation:new( -1, -1, 2 ), + cLocation:new( -1, -1, 1 ), + cLocation:new( -1, -1, 0 ), + cLocation:new( -1, -1, -1 ), + cLocation:new( -1, -1, -2 ), + cLocation:new( -2, -1, 2 ), + cLocation:new( -2, -1, 1 ), + cLocation:new( -2, -1, 0 ), + cLocation:new( -2, -1, -1 ), + cLocation:new( -2, -1, -2 ), + imadeit = false, + } + setmetatable(object, { __index = cFibers }) + return object; +end + +-- Carpet object +cCarpet = {} +function cCarpet:new() + local object = { Location = cLocation:new(0,0,0), + Fibers = cFibers:new(), + } + setmetatable(object, { __index = cCarpet }) + return object +end + +function cCarpet:remove() + local World = cRoot:Get():GetWorld() + for i, fib in ipairs( self.Fibers ) do + local x = self.Location.x + fib.x + local y = self.Location.y + fib.y + local z = self.Location.z + fib.z + local BlockID = World:GetBlock( x, y, z ) + if( fib.imadeit == true and BlockID == E_BLOCK_GLASS ) then + World:SetBlock( x, y, z, 0, 0 ) + fib.imadeit = false + end + end +end + +function cCarpet:draw() + local World = cRoot:Get():GetWorld() + for i, fib in ipairs( self.Fibers ) do + local x = self.Location.x + fib.x + local y = self.Location.y + fib.y + local z = self.Location.z + fib.z + local BlockID = World:GetBlock( x, y, z ) + if( BlockID == 0 ) then + fib.imadeit = true + World:SetBlock( x, y, z, E_BLOCK_GLASS, 0 ) + else + fib.imadeit = false + end + end +end + +function cCarpet:moveTo( NewPos ) + local x = math.floor( NewPos.x ) + local y = math.floor( NewPos.y ) + local z = math.floor( NewPos.z ) + if( self.Location.x ~= x or self.Location.y ~= y or self.Location.z ~= z ) then + self:remove() + self.Location = cLocation:new( x, y, z ) + self:draw() + end +end + +function cCarpet:getY() + return self.Location.y +end \ No newline at end of file diff --git a/MCServer/Plugins/MagicCarpet/plugin.lua b/MCServer/Plugins/MagicCarpet/plugin.lua new file mode 100644 index 000000000..22604c9d9 --- /dev/null +++ b/MCServer/Plugins/MagicCarpet/plugin.lua @@ -0,0 +1,65 @@ +local PLUGIN = {} +local Carpets = {} + +function Initialize( Plugin ) + PLUGIN = Plugin + + Plugin:SetName( "MagicCarpet" ) + Plugin:SetVersion( 1 ) + + PluginManager = cRoot:Get():GetPluginManager() + PluginManager:AddHook( Plugin, cPluginManager.E_PLUGIN_PLAYER_MOVE) + PluginManager:AddHook( Plugin, cPluginManager.E_PLUGIN_DISCONNECT) + + Plugin:AddCommand("/mc", " - Spawns a magical carpet!", "magiccarpet") + Plugin:BindCommand( "/mc", "magiccarpet", HandleCarpetCommand ) + + Log( "Initialized " .. Plugin:GetName() .. " v." .. Plugin:GetVersion() ) + return true +end + +function OnDisable() + Log( PLUGIN:GetName() .. " v." .. PLUGIN:GetVersion() .. " is shutting down..." ) + for i, Carpet in pairs( Carpets ) do + Carpet:remove() + end +end + +function HandleCarpetCommand( Split, Player ) + Carpet = Carpets[ Player ] + if( Carpet == nil ) then + Carpets[ Player ] = cCarpet:new() + Player:SendMessage("You're on a magic carpet!" ) + else + Carpet:remove() + Carpets[ Player ] = nil + Player:SendMessage("The carpet vanished!" ) + end + + return true +end + +function OnDisconnect( Reason, Player ) + local Carpet = Carpets[ Player ] + if( Carpet ~= nil ) then + Carpet:remove() + end + Carpets[ Player ] = nil +end + +function OnPlayerMove( Player ) + local Carpet = Carpets[ Player ] + if( Carpet == nil ) then + return + end + + if( Player:GetPitch() == 90 ) then + Carpet:moveTo( cLocation:new( Player:GetPosX(), Player:GetPosY()-1, Player:GetPosZ() ) ) + else + if( Player:GetPosY() < Carpet:getY() ) then + LOGINFO("Fell tru mc!") + Player:TeleportTo( Player:GetPosX(), Carpet:getY(), Player:GetPosZ() ) + end + Carpet:moveTo( cLocation:new( Player:GetPosX(), Player:GetPosY(), Player:GetPosZ() ) ) + end +end \ No newline at end of file diff --git a/MCServer/Plugins/SquirrelChatLog.nut b/MCServer/Plugins/SquirrelChatLog.nut new file mode 100644 index 000000000..4ef0fd595 --- /dev/null +++ b/MCServer/Plugins/SquirrelChatLog.nut @@ -0,0 +1,13 @@ +class SquirrelChatLog extends Plugin +{ + function Initialize() + { + this.AddHook(Hook.Chat); + return true; + } + + function OnChat(Message, Player) + { + ::print(Player.GetName() + ": " + Message); + } +} diff --git a/MCServer/Plugins/sTick/main.lua b/MCServer/Plugins/sTick/main.lua new file mode 100644 index 000000000..16ac7167f --- /dev/null +++ b/MCServer/Plugins/sTick/main.lua @@ -0,0 +1,20 @@ + +-- Global variables +PLUGIN = {} -- Reference to own plugin object + + + + + +function Initialize( Plugin ) + PLUGIN = Plugin + + Plugin:SetName( "sTick" ) + Plugin:SetVersion( 8 ) + + PluginManager = cRoot:Get():GetPluginManager() + PluginManager:AddHook( Plugin, cPluginManager.E_PLUGIN_BLOCK_PLACE ) + + LOG( "Initialized " .. Plugin:GetName() .. " v." .. Plugin:GetVersion() ) + return true +end \ No newline at end of file diff --git a/MCServer/Plugins/sTick/onblockplace.lua b/MCServer/Plugins/sTick/onblockplace.lua new file mode 100644 index 000000000..0216b580e --- /dev/null +++ b/MCServer/Plugins/sTick/onblockplace.lua @@ -0,0 +1,18 @@ +function OnBlockPlace( Block, Player ) + + -- dont check if the direction is in the air + if Block.m_Direction == -1 then + return false + end + + if (Block.m_ItemType ~= 280) then -- not a Stick of Ticking + return false + end + + LOG("Setting next block tick to {" .. Block.m_PosX .. ", " .. Block.m_PosY .. ", " .. Block.m_PosZ .. "}") + + Player:GetWorld():SetNextBlockTick(Block.m_PosX, Block.m_PosY, Block.m_PosZ); + + return true + +end \ No newline at end of file diff --git a/MCServer/banned.example.ini b/MCServer/banned.example.ini new file mode 100644 index 000000000..efe5f51b6 --- /dev/null +++ b/MCServer/banned.example.ini @@ -0,0 +1,3 @@ +[Banned] +;PlayerName=1 + diff --git a/MCServer/crafting.txt b/MCServer/crafting.txt new file mode 100644 index 000000000..abadeeaa3 --- /dev/null +++ b/MCServer/crafting.txt @@ -0,0 +1,357 @@ + +# This file describes the crafting recipes that MCServer knows. +# The syntax is as follows: +# = # +# = = | | ... | +# = , : , : , ..., : +# = [^] +# , = "1" .. "3", or "*" for any value. "*:*" can be replaced by a single "*". +# = [^] [, ] +# +# The Xn, Yn coordinates are a reference to the crafting grid: +# 1:1 | 2:1 | 3:1 +# 1:2 | 2:2 | 3:2 +# 1:3 | 2:3 | 3:3 +# +# can be either a number, or an item name (checked against items.ini) +# +# ^ is optional, if not present, any damage value is matched for ingredients and zero is produced for the result +# +# Ingredients with an asterisk for a coord will not match already matched crafting grid items. This enables simplifying some of the recipes, +# e. g. hoe: "Iron, 2:1, *:1" +# -- this means "one iron at 2:1, and another one at either 1:1 or 3:1" +# +# To require multiple items of the same type in a slot, specify the slot number several times: +# "Iron, 1:1, 2:2, 2:2" +# -- this means "take one iron from slot 1:1 and two irons from slot 2:2" +# Note that asterisked items cannot require multiple items in a single slot. +# +# Note that due to technical problems, it is NOT advised to use asterisked ingredients in crossing directions, such as "*:1, "2:*". +# The parser may be unable to match such a recipe to the crafting grid! +# +# Whitespace is optional. Use it reasonably. Please do NOT use Tabs in the middle of lines! + + + + + +#******************************************************# +# Basic Crafts +# + +# Need to list each of the four log types, otherwise all logs would get converted into apple planks (^0) +ApplePlanks, 4 = AppleLog, * +ConiferPlanks, 4 = ConiferLog, * +BirchPlanks, 4 = BirchLog, * +JunglePlanks, 4 = JungleLog, * +Stick, 4 = Planks, 2:2, 2:3 +Torch, 4 = Stick, 1:2 | Coal, 1:1 +Workbench = Planks, 1:1, 1:2, 2:1, 2:2 +Chest = Planks, 1:1, 1:2, 1:3, 2:1, 2:3, 3:1, 3:2, 3:3 +Furnace = Cobblestone, 1:1, 1:2, 1:3, 2:1, 2:3, 3:1, 3:2, 3:3 + + + + + +#******************************************************# +# Blocks +# +IronBlock = IronIngot, 1:1, 1:2, 1:3, 2:1, 2:2, 2:3, 3:1, 3:2, 3:3 +GoldBlock = GoldIngot, 1:1, 1:2, 1:3, 2:1, 2:2, 2:3, 3:1, 3:2, 3:3 +DiamondBlock = Diamond, 1:1, 1:2, 1:3, 2:1, 2:2, 2:3, 3:1, 3:2, 3:3 +LapisBlock = LapisLazuli, 1:1, 1:2, 1:3, 2:1, 2:2, 2:3, 3:1, 3:2, 3:3 +Glowstone = GlowstoneDust, 1:1, 1:2, 2:1, 2:2 +Wool = String, 1:1, 1:2, 2:1, 2:2 +TNT = Gunpowder, 1:1, 3:1, 2:2, 1:3, 3:3 | Sand, 2:1, 1:2, 3:2, 2:3 + +# Slabs: +StoneSlab, 6 = Stone, 1:1, 2:1, 3:1 +SandstoneSlab, 6 = Sandstone, 1:1, 2:1, 3:1 +WoodSlab, 6 = Planks, 1:1, 2:1, 3:1 +CobblestoneSlab, 6 = Cobblestone, 1:1, 2:1, 3:1 +BrickSlab, 6 = BrickBlock, 1:1, 2:1, 3:1 +StonebrickSlab, 6 = StoneBrick, 1:1, 2:1, 3:1 + +# Stairs: +WoodStairs, 4 = Planks, 1:1, 1:2, 2:2, 1:3, 2:3, 3:3 +WoodStairs, 4 = Planks, 3:1, 2:2, 3:2, 1:3, 2:3, 3:3 +cobblestoneStairs, 4 = Cobblestone, 1:1, 1:2, 2:2, 1:3, 2:3, 3:3 +cobblestoneStairs, 4 = Cobblestone, 3:1, 2:2, 3:2, 1:3, 2:3, 3:3 +BrickStairs, 4 = BrickBlock, 1:1, 1:2, 2:2, 1:3, 2:3, 3:3 +BrickStairs, 4 = BrickBlock, 3:1, 2:2, 3:2, 1:3, 2:3, 3:3 +SandstoneStairs, 4 = Sandstone, 1:1, 1:2, 2:2, 1:3, 2:3, 3:3 +SandstoneStairs, 4 = Sandstone, 3:1, 2:2, 3:2, 1:3, 2:3, 3:3 +NetherBrickStairs, 4 = NetherBrick, 1:1, 1:2, 2:2, 1:3, 2:3, 3:3 +NetherBrickStairs, 4 = NetherBrick, 3:1, 2:2, 3:2, 1:3, 2:3, 3:3 + +SnowBlock = SnowBall, 1:1, 1:2, 2:1, 2:2 +ClayBlock = Clay, 1:1, 1:2, 2:1, 2:2 +BrickBlock = Brick, 1:1, 1:2, 2:1, 2:2 +StoneBrick, 4 = Stone, 1:1, 1:2, 2:1, 2:2 +BookShelf = Planks, 1:1, 2:1, 3:1, 1:3, 2:3, 3:3 | Book, 1:2, 2:2, 3:2 +Sandstone, 4 = Sand, 1:1, 1:2, 2:1, 2:2 +SmoothSandstone,4= Sandstone, 1:1, 1:2, 2:1, 2:2 +OrnamentSandstone= SandstoneSlab, 1:1, 1:2 +JackOLantern = Pumpkin, 1:1 | Torch, 1:2 + + + + + +#******************************************************# +# Tools +# + +# Axes: +WoodenAxe = Stick, 2:2, 2:3 | Planks, 2:1, *:1, *:2 +StoneAxe = Stick, 2:2, 2:3 | Cobblestone, 2:1, *:1, *:2 +GoldenAxe = Stick, 2:2, 2:3 | GoldIngot, 2:1, *:1, *:2 +IronAxe = Stick, 2:2, 2:3 | IronIngot, 2:1, *:1, *:2 +DiamondAxe = Stick, 2:2, 2:3 | Diamond, 2:1, *:1, *:2 + +# Pickaxes: +WoodenPickaxe = Stick, 2:2, 2:3 | Planks, 1:1, 2:1, 3:1 +StonePickaxe = Stick, 2:2, 2:3 | Cobblestone, 1:1, 2:1, 3:1 +GoldenPickaxe = Stick, 2:2, 2:3 | GoldIngot, 1:1, 2:1, 3:1 +IronPickaxe = Stick, 2:2, 2:3 | IronIngot, 1:1, 2:1, 3:1 +DiamondPickaxe = Stick, 2:2, 2:3 | Diamond, 1:1, 2:1, 3:1 + +# Shovels: +WoodenShovel = Stick, 2:2, 2:3 | Planks, 2:1 +StoneShovel = Stick, 2:2, 2:3 | Cobblestone, 2:1 +GoldenShovel = Stick, 2:2, 2:3 | GoldIngot, 2:1 +IronShovel = Stick, 2:2, 2:3 | IronIngot, 2:1 +DiamondShovel = Stick, 2:2, 2:3 | Diamond, 2:1 + +# Hoes: +WoodenHoe = Stick, 2:2, 2:3 | Planks, 2:1, *:1 +StoneHoe = Stick, 2:2, 2:3 | Cobblestone, 2:1, *:1 +GoldenHoe = Stick, 2:2, 2:3 | GoldIngot, 2:1, *:1 +IronHoe = Stick, 2:2, 2:3 | IronIngot, 2:1, *:1 +DiamondHoe = Stick, 2:2, 2:3 | Diamond, 2:1, *:1 + +Lighter = IronIngot, 1:1 | Flint, 2:2 +Lighter = IronIngot, 2:1 | Flint, 1:2 +Bucket = IronIngot, 1:1, 2:2, 3:1 +Compass = IronIngot, 2:1, 1:2, 3:2, 2:3 | RedstoneDust, 2:2 +Map = Paper, 1:1, 1:2, 1:3, 2:1, 2:3, 3:1, 3:2, 3:3 | Compass, 2:2 +Watch = GoldIngot, 2:1, 1:2, 3:2, 2:3 | RedstoneDust, 2:2 +FishingRod = Stick, 1:3, 2:2, 3:1 | String, 3:2, 3:3 +FishingRod = Stick, 3:3, 2:2, 1:1 | String, 1:2, 1:3 +Shears = IronIngot, 1:1, 2:2 +Shears = IronIngot, 2:1, 1:2 +FireCharge = BlazePowder, * | Coal, * | Gunpowder, * + + + + + +#******************************************************# +# Weapons +# +WoodenSword = Stick, 2:3 | Planks, 2:1, 2:2 +StoneSword = Stick, 2:3 | Cobblestone, 2:1, 2:2 +GoldenSword = Stick, 2:3 | GoldIngot, 2:1, 2:2 +IronSword = Stick, 2:3 | IronIngot, 2:1, 2:2 +DiamondSword = Stick, 2:3 | Diamond, 2:1, 2:2 +Bow = Stick, 2:1, 1:2, 2:3 | String, 3:1, 3:2, 3:3 +Bow = Stick, 2:1, 3:2, 2:3 | String, 1:1, 1:2, 1:3 +Arrow, 4 = Flint, 1:1 | Stick, 1:2 | Feather, 1:3 + + + + + + +#******************************************************# +# Armor +# + +# Helmets: +LeatherHelmet = Leather, 1:1, 2:1, 3:1, 1:2, 3:2 +ChainmailHelmet = Fire, 1:1, 2:1, 3:1, 1:2, 3:2 +GoldenHelmet = GoldIngot, 1:1, 2:1, 3:1, 1:2, 3:2 +IronHelmet = IronIngot, 1:1, 2:1, 3:1, 1:2, 3:2 +DiamondHelmet = Diamond, 1:1, 2:1, 3:1, 1:2, 3:2 + +# Chestplates: +LeatherChestplate = Leather, 1:1, 3:1, 1:2, 2:2, 3:2, 1:3, 2:3, 3:3 +ChainmailChestplate = Fire, 1:1, 3:1, 1:2, 2:2, 3:2, 1:3, 2:3, 3:3 +GoldenChestplate = GoldIngot, 1:1, 3:1, 1:2, 2:2, 3:2, 1:3, 2:3, 3:3 +IronChestplate = IronIngot, 1:1, 3:1, 1:2, 2:2, 3:2, 1:3, 2:3, 3:3 +DiamondChestplate = Diamond, 1:1, 3:1, 1:2, 2:2, 3:2, 1:3, 2:3, 3:3 + +# Leggins: +LeatherPants = Leather, 1:1, 2:1, 3:1, 1:2, 3:2, 1:3, 3:3 +ChainmailPants = Fire, 1:1, 2:1, 3:1, 1:2, 3:2, 1:3, 3:3 +GoldenPants = GoldIngot, 1:1, 2:1, 3:1, 1:2, 3:2, 1:3, 3:3 +IronPants = IronIngot, 1:1, 2:1, 3:1, 1:2, 3:2, 1:3, 3:3 +DiamondPants = Diamond, 1:1, 2:1, 3:1, 1:2, 3:2, 1:3, 3:3 + +# Boots: +LeatherBoots = Leather, 1:1, 3:1, 1:2, 3:2 +ChainmailBoots = Fire, 1:1, 3:1, 1:2, 3:2 +GoldenBoots = GoldIngot, 1:1, 3:1, 1:2, 3:2 +IronBoots = IronIngot, 1:1, 3:1, 1:2, 3:2 +DiamondBoots = Diamond, 1:1, 3:1, 1:2, 3:2 + + + + + +#******************************************************# +# Transportation +# +Minecart = IronIngot, 1:1, 3:1, 1:2, 2:2, 3:2 +PoweredMinecart = Minecart, * | Furnace, * +StorageMinecart = Minecart, * | Chest, * +Rails, 16 = IronIngot, 1:1, 3:1, 1:2, 3:2, 1:3, 3:3 | Stick, 2:2 +PoweredRail, 6 = GoldIngot, 1:1, 3:1, 1:2, 3:2, 1:3, 3:3 | Stick, 2:2 | RedstoneDust, 2:3 +DetectorRail, 6 = IronIngot, 1:1, 3:1, 1:2, 3:2, 1:3, 3:3 | StonePlate, 2:2 | RedstoneDust, 2:3 +Boat = Planks, 1:1, 3:1, 1:2, 2:2, 3:2 + + + + + +#******************************************************# +# Mechanisms +# +WoodenDoor = Planks, 1:1, 1:2, 1:3, 2:1, 2:2, 2:3 +IronDoor = IronIngot, 1:1, 1:2, 1:3, 2:1, 2:2, 2:3 +TrapDoor, 2 = Planks, 1:1, 2:1, 3:1, 1:2, 2:2, 3:2 +WoodPlate = Planks, 1:1, 2:1 +StonePlate = Stone, 1:1, 2:1 +Button = Stone, 1:1, 1:2 +RedstoneTorchOn = Stick, 1:2 | RedstoneDust, 1:1 +Lever = Cobblestone, 1:2 | Stick, 1:1 +NoteBlock = Planks, 1:1, 1:2, 1:3, 2:1, 2:3, 3:1, 3:2, 3:3 | RedstoneDust, 2:2 +Jukebox = Planks, 1:1, 1:2, 1:3, 2:1, 2:3, 3:1, 3:2, 3:3 | Diamond, 2:2 +Dispenser = Cobblestone, 1:1, 1:2, 1:3, 2:1, 3:1, 3:2, 3:3 | RedstoneDust, 2:3 | Bow, 2:2 +Repeater = Stone, 1:2, 2:2, 3:2 | RedstoneTorchOn, 1:1, 3:1 | RedstoneDust, 2:1 +Piston = Planks, 1:1, 2:1, 3:1 | RedstoneDust, 2:2 | Cobblestone, 1:2, 3:2, 1:3, 2:3, 3:3 +StickyPiston = Piston, * | SlimeBall, * +RedstoneLamp = RedstoneDust, 2:1, 1:2, 3:2, 2:3 | Glowstone, 2:2 + + + + + +#******************************************************# +# Food +# +Bowl = Planks, 1:1, 2:2, 3:1 +MushroomStew = Bowl, * | BrownMushroom, * | RedMushroom, * +Bread = Wheat, 1:1, 2:1, 3:1 +Sugar = Sugarcane, * +Cake = MilkBucket, 1:1, 2:1, 3:1 | Sugar, 1:2, 3:2 | Egg, 2:2 | Wheat, 1:3, 2:3, 3:3 +Cookie = Wheat, *, * | CocoaBeans, * +GoldenApple = RedApple, 2:2 | GoldNugget, 1:1, 1:2, 1:3, 2:1, 2:3, 3:1, 3:2, 3:3 +Melon = MelonSlice, 1:1, 1:2, 1:3, 2:1, 2:2, 2:3, 3:1, 3:2, 3:3 +MelonSeeds = MelonSlice, * +PumpkinSeeds, 4 = Pumpkin, * + + + + + +#******************************************************# +# Miscellaneous +# + +# Minerals: +IronIngot, 9 = IronBlock, * +GoldIngot, 9 = GoldBlock, * +Diamond, 9 = DiamondBlock, * +LapisLazuli, 9 = LapisBlock, * + +Painting = Stick, 1:1, 1:2, 1:3, 2:1, 2:3, 3:1, 3:2, 3:3 | Wool, 2:2 +Sign = Planks, 1:1, 2:1, 3:1, 1:2, 2:2, 3:2 | Stick, 2:3 +Ladder, 3 = Stick, 1:1, 3:1, 1:2, 2:2, 3:2, 1:3, 3:3 +GlassPane, 16 = Glass, 1:1, 2:1, 3:1, 1:2, 2:2, 3:2 +IronBars, 16 = IronIngot, 1:1, 2:1, 3:1, 1:2, 2:2, 3:2 +Paper, 3 = Sugarcane, 1:1, 2:1, 3:1 +Book = Paper, 1:1, 1:2, 1:3 +Fence, 2 = Stick, 1:1, 2:1, 3:1, 1:2, 2:2, 3:2 +NetherBrickFence, 6 = NetherBrick, 1:1, 2:1, 3:1, 1:2, 2:2, 3:2 +FenceGate = Stick, 1:1, 1:2, 3:1, 3:2 | Planks, 2:1, 2:2 +Bed = Planks, 1:2, 2:2, 3:2 | Wool, 1:1, 2:1, 3:1 +GoldIngot = GoldNugget, 1:1, 1:2, 1:3, 2:1, 2:2, 2:3, 3:1, 3:2, 3:3 +EyeOfEnder = EnderPearl, * | BlazePowder, * + + + + + +#******************************************************# +# Dyes +# + +WhiteDye, 3 = Bone, * +RedDye, 2 = Rose, * +YellowDye, 2 = Flower, * + +# Color mixing, duals: +OrangeDye, 2 = YellowDye, * | RedDye, * +CyanDye, 2 = GreenDye, * | BlueDye, * +PurpleDye, 2 = RedDye, * | BlueDye, * +GrayDye, 2 = BlackDye, * | WhiteDye, * +LtBlueDye, 2 = BlueDye, * | WhiteDye, * +PinkDye, 2 = RedDye, * | WhiteDye, * +LimeDye, 2 = GreenDye, * | WhiteDye, * +MagentaDye, 2 = PurpleDye, * | PinkDye, * +LtGrayDye, 2 = GrayDye, * | WhiteDye, * + +# triplets: +LtGrayDye, 3 = BlackDye, * | WhiteDye, *, * +MagentaDye, 3 = BlueDye, * | PinkDye, * | RedDye, * + +# quads: +MagentaDye, 4 = BlueDye, * | WhiteDye, * | RedDye, *, * + + + + + +#******************************************************# +# Colored wool: +# +WhiteWool = Wool, * | BoneMeal, * +OrangeWool = Wool, * | OrangeDye, * +MagentaWool = Wool, * | MagentaDye, * +LightBlueWool = Wool, * | LightBlueDye, * +YellowWool = Wool, * | YellowDye, * +LimeWool = Wool, * | LimeDye, * +PinkWool = Wool, * | PinkDye, * +GrayWool = Wool, * | GrayDye, * +LightGrayWool = Wool, * | LightGrayDye, * +CyanWool = Wool, * | CyanDye, * +VioletWool = Wool, * | VioletDye, * +BlueWool = Wool, * | BlueDye, * +BrownWool = Wool, * | BrownDye, * +GreenWool = Wool, * | GreenDye, * +RedWool = Wool, * | RedDye, * +BlackWool = Wool, * | BlackDye, * + + + + + +#******************************************************# +# Enchantment & Brewing +# +GlassBottle, 3 = Glass, 1:1, 2:2, 3:1 +Cauldron = IronIngot, 1:1, 3:1, 1:2, 3:2, 1:3, 2:3, 3:3 +BrewingStand = Cobblestone, 1:2, 2:2, 3:2 | BlazeRod, 2:1 +BlazePowder, 2 = BlazeRod, * +MagmaCream = SlimeBall, * | BlazePowder, * +FermentedSpiderEye = SpiderEye, * | Sugar, * | BrownMushroom, * +GlisteringMelon = MelonSlice, * | GoldNugget, * +GoldNugget, 9 = GoldIngot, * +EnchantmentTable = Obsidian, 1:3, 2:3, 3:3, 2:2 | Diamond, 1:2, 3:2 | Book, 2:1 + + + + + diff --git a/MCServer/furnace.txt b/MCServer/furnace.txt new file mode 100644 index 000000000..c8e3cd0c7 --- /dev/null +++ b/MCServer/furnace.txt @@ -0,0 +1,64 @@ +#************************** +# Default Furnace Recipes # +#*************************# +# +# +#******************************************************# +# Basic Notation Help +#******************************************************# +# +# **** Item Definition **** +# An Item is defined by an Item ID, an amount (and health) +# The health is optional, and if not specified it's +# assumed to be 0 +# +# -Cactus Green: +# 351 : 1 ( : 2 ) +# ItemID : Amount ( : Health ) +# +# +# **** Recipe and result **** +# +# 4:1@10000=1:1 -> Produces 1 smooth stone from +# 1 cobblestone in 10 second +# +# 4 : 1 @ 10000 = 1 : 1 +# ItemID : Amount @ milliseconds = ItemID : Amount +# +# **** Burnable Materials / Fuel **** +# +# !17:1=15000 -> 1 Wood burns for 15000 milliseconds +# (15 s) +# +# ! 17 : 1 = 15000 +# Fuel ItemID : Amount = milliseconds +# +#******************************************************# + +#-------------------------- +# Let's get cookin' :D + +4:1 @10000=1:1 #-> 1 Cobblestone -> 1 Rock +15:1 @10000=265:1 #-> 1 Iron Ore -> 1 Iron Ingot +14:1 @10000=266:1 #-> 1 Gold Ore -> 1 Gold Ingot +12:1 @10000=20:1 #-> 1 Sand -> 1 Glass +319:1@10000=320:1 #-> 1 Raw Pork -> 1 Cooked Pork +337:1@10000=336:1 #-> 1 Clay -> 1 Clay Brick +349:1@10000=350:1 #-> 1 Raw Fish -> 1 Cooked Fish +17:1 @10000=263:1 #-> 1 Wood -> 1 Charcoal +81:1 @10000=351:1:2 #-> 1 Cactus -> 1 Dye + +#-------------------------- +# Burn baby! Buuurn! + +!263:1 = 80000 #-> 1 Charcoal -> 80 sec +!5:1 = 15000 #-> 1 Planks -> 15 sec +!280:1 = 5000 #-> 1 Stick -> 5 sec +!85:1 = 15000 #-> 1 Fence -> 15 sec +!53:1 = 15000 #-> 1 Wooden Stairs -> 15 sec +!58:1 = 15000 #-> 1 Crafting Table -> 15 sec +!47:1 = 15000 #-> 1 Bookshelf -> 15 sec +!54:1 = 15000 #-> 1 Chest -> 15 sec +!84:1 = 15000 #-> 1 Jukebox -> 15 sec +!327:1 = 1000000 #-> 1 Lava Bucket -> 1000 sec +!17:1 = 15000 #-> 1 Wood -> 15 sec \ No newline at end of file diff --git a/MCServer/groups.example.ini b/MCServer/groups.example.ini new file mode 100644 index 000000000..7f061204b --- /dev/null +++ b/MCServer/groups.example.ini @@ -0,0 +1,17 @@ +[Admins] +Permissions=* +Color=c + +[Mods] +Color=5 +Inherits=Vips +Permissions=core.time,core.item + +[Vips] +Permissions=core.teleport +Color=2 +Inherits=Default + +[Default] +Permissions=core.build,core.help,core.playerlist,core.pluginlist,core.spawn +Color=7 \ No newline at end of file diff --git a/MCServer/groups.ini b/MCServer/groups.ini new file mode 100644 index 000000000..7f061204b --- /dev/null +++ b/MCServer/groups.ini @@ -0,0 +1,17 @@ +[Admins] +Permissions=* +Color=c + +[Mods] +Color=5 +Inherits=Vips +Permissions=core.time,core.item + +[Vips] +Permissions=core.teleport +Color=2 +Inherits=Default + +[Default] +Permissions=core.build,core.help,core.playerlist,core.pluginlist,core.spawn +Color=7 \ No newline at end of file diff --git a/MCServer/items.ini b/MCServer/items.ini new file mode 100644 index 000000000..5b9012521 --- /dev/null +++ b/MCServer/items.ini @@ -0,0 +1,471 @@ +[Items] +rock=1 +stone=1 +grass=2 +dirt=3 +cobblestone=4 +cobble=4 +planks=5 +appleplanks=5:0 +oakplanks=5:0 +coniferplanks=5:1 +pineplanks=5:1 +spruceplanks=5:1 +darkplanks=5:1 +birchplanks=5:2 +lightplanks=5:2 +jungleplanks=5:3 +redplanks=5:3 + +; Obsolete: do not use "wood", as its meaning is not clear - wiki uses log as wood, we use planks as wood. +wood=5 + +sapling=6 +applesapling=6:0 +oaksapling=6:0 +conifersapling=6:1 +pinesapling=6:1 +sprucesapling=6:1 +birchsapling=6:2 +junglesapling=6:3 +adminium=7 +bedrock=7 +water=8 +stillwater=9 +swater=9 +lava=10 +stilllava=11 +slava=11 +sand=12 +gravel=13 +goldore=14 +ironore=15 +coalore=16 +tree=17 +log=17 +applelog=17:0 +oaklog=17:0 +coniferlog=17:1 +pinelog=17:1 +sprucelog=17:1 +darklog=17:1 +birchlog=17:2 +whitelog=17:2 +junglelog=17:3 +leaves=18 +appleleaves=18:0 +oakleaves=18:0 +coniferleaves=18:1 +pineleaves=18:1 +spruceleaves=18:1 +birchleaves=18:2 +jungleleaves=18:3 +sponge=19 +glass=20 +lapisore=21 +lapisblock=22 +dispenser=23 +sandstone=24 +normalsandstone=24:0 +ornamentsandstone=24:1 +decorativesandstone=24:1 +smoothsandstone=24:2 +noteblock=25 +bedblock=26 +poweredrail=27 +detectorrail=28 +stickypiston=29 +cobweb=30 +tallgrass=31 +tallgrassone=31:1 +tallgrasstwo=31:2 +deadbush=32 +piston=33 +pistonextension=34 +pistonhead=34 +cloth=35 +wool=35 +whitewool=35:0 +orangewool=35:1 +magentawool=35:2 +lightbluewool=35:3 +yellowwool=35:4 +limewool=35:5 +lightgreenwool=35:5 +ltgreenwool=35:5 +pinkwool=35:6 +graywool=35:7 +greywool=35:7 +darkgraywool=35:7 +darkgreywool=35:7 +dkgraywool=35:7 +dkgreywool=35:7 +lightgraywool=35:8 +lightgreywool=35:8 +ltgraywool=35:8 +ltgreywool=35:8 +cyanwool=35:9 +purplewool=35:10 +violetwool=35:10 +bluewool=35:11 +darkbluewool=35:11 +brownwool=35:12 +greenwool=35:13 +darkgreenwool=35:13 +dkgreenwool=35:13 +redwool=35:14 +blackwool=35:15 +flower=37 +rose=38 +brownmushroom=39 +redmushroom=40 +gold=41 +goldblock=41 +iron=42 +ironblock=42 +doubleslab=43 +stonedoubleslab=43:0 +sandstonedoubleslab=43:1 +wooddoubleslab=43:2 +cobblestonedoubleslab=43:3 +brickdoubleslab=43:4 +stonebrickdoubleslab=43:5 +slab=44 +step=44 +stoneslab=44:0 +sandstoneslab=44:1 +woodslab=44:2 +cobblestoneslab=44:3 +brickslab=44:4 +stonebrickslab=44:5 +brickblock=45 +brickwall=45 +tnt=46 +bookshelf=47 +bookcase=47 +mossycobblestone=48 +mossy=48 +obsidian=49 +torch=50 +fire=51 +mobspawner=52 +woodstairs=53 +chest=54 +redstonedust=55 +redstonewire=55 +diamondore=56 +diamondblock=57 +workbench=58 +crop=59 +crops=59 +soil=60 +furnace=61 +litfurnace=62 +signblock=63 +wooddoorblock=64 +ladder=65 +rails=66 +rail=66 +track=66 +tracks=66 +cobblestonestairs=67 +stairs=67 +signblocktop=68 +wallsign=68 +lever=69 +rockplate=70 +stoneplate=70 +irondoorblock=71 +woodplate=72 +redstoneore=73 +redstoneorealt=74 +redstonetorchoff=75 +redstonetorchon=76 +button=77 +snow=78 +ice=79 +snowblock=80 +cactus=81 +clayblock=82 +reedblock=83 +jukebox=84 +fence=85 +pumpkin=86 +netherstone=87 +netherrack=87 +hellrock=87 +slowsand=88 +soulsand=88 +lightstone=89 +glowstone=89 +portal=90 +jackolantern=91 +jacko=91 +cakeblock=92 +lockedchest=95 +trapdoor=96 +silverfishblock=97 +stonebricks=98 +stonebrick=98 +mossystonebrick=98:1 +crackedstonebrick=98:2 +chiseledstonebrick=98:3 +hugebrownmushroom=99 +hugeredmushroom=100 +ironbars=101 +glasspane=102 +melon=103 +pumpkinstem=104 +melonstem=105 +vines=106 +fencegate=107 +brickstairs=108 +stonebrickstairs=109 +mycelium=110 +lilypad=111 +netherbrick=112 +netherbrickfence=113 +netherbrickstairs=114 +netherwartblock=115 +enchantmenttable=116 +brewingstandblock=117 +cauldronblock=118 +endportal=119 +endportalframe=120 +endstone=121 +dragonegg=122 +redstonelamp=123 +redstonelampoff=123 +redstonelampon=124 +woodendoubleslab=125 +woodenslab=126 +sandstonestairs=128 +ironshovel=256 +ironspade=256 +ironpickaxe=257 +ironpick=257 +ironaxe=258 +flintandsteel=259 +lighter=259 +apple=260 +redapple=260 +bow=261 +arrow=262 +coal=263 +charcoal=263:1 +diamond=264 +ironingot=265 +ironbar=265 +goldingot=266 +goldeningot=266 +goldbar=266 +goldenbar=266 +ironsword=267 +woodensword=268 +woodsword=268 +woodenshovel=269 +woodshovel=269 +woodenspade=269 +woodspade=269 +woodenpickaxe=270 +woodpickaxe=270 +woodenpick=270 +woodpick=270 +woodenaxe=271 +woodaxe=271 +stonesword=272 +stoneshovel=273 +stonespade=273 +stonepickaxe=274 +stonepick=274 +stoneaxe=275 +diamondsword=276 +diamondshovel=277 +diamondspade=277 +diamondpickaxe=278 +diamondpick=278 +diamondaxe=279 +stick=280 +bowl=281 +mushroomstew=282 +bowlwithsoup=282 +soupbowl=282 +soup=282 +goldensword=283 +goldsword=283 +goldenshovel=284 +goldshovel=284 +goldenspade=284 +goldspade=284 +goldenpickaxe=285 +goldpickaxe=285 +goldenpick=285 +goldpick=285 +goldenaxe=286 +goldaxe=286 +string=287 +feather=288 +gunpowder=289 +woodhoe=290 +woodenhoe=290 +stonehoe=291 +ironhoe=292 +diamondhoe=293 +goldhoe=294 +goldenhoe=294 +seeds=295 +wheat=296 +bread=297 +leatherhelmet=298 +leatherchestplate=299 +leatherpants=300 +leatherboots=301 +chainmailhelmet=302 +chainmailchestplate=303 +chainmailpants=304 +chainmailboots=305 +ironhelmet=306 +ironchestplate=307 +ironpants=308 +ironboots=309 +diamondhelmet=310 +diamondchestplate=311 +diamondpants=312 +diamondboots=313 +goldenhelmet=314 +goldhelmet=314 +goldenchestplate=315 +goldchestplate=315 +goldenpants=316 +goldpants=316 +goldenboots=317 +goldboots=317 +flint=318 +meat=319 +pork=319 +cookedmeat=320 +cookedpork=320 +painting=321 +paintings=321 +goldenapple=322 +goldapple=322 +sign=323 +wooddoor=324 +woodendoor=324 +bucket=325 +waterbucket=326 +lavabucket=327 +minecart=328 +saddle=329 +irondoor=330 +redstonedust=331 +snowball=332 +boat=333 +leather=334 +milkbucket=335 +brick=336 +clay=337 +reed=338 +sugarcane=338 +paper=339 +book=340 +slimeorb=341 +slimeball=341 +storageminecart=342 +poweredminecart=343 +egg=344 +compass=345 +fishingrod=346 +watch=347 +lightstonedust=348 +lightdust=348 +glowstonedust=348 +glowdust=348 +rawfish=349 +fish=349 +cookedfish=350 +dye=351 +inksac=351:0 +blackdye=351:0 +reddye=351:1 +rosered=351:1 +greendye=351:2 +cactusgreen=351:2 +cocoabeans=351:3 +browndye=351:3 +lapislazuli=351:4 +bluedye=351:4 +darkbluedye=351:4 +dkbluedye=351:4 +purpledye=351:5 +violetdye=351:5 +cyandye=351:6 +lightgreydye=351:7 +lightgraydye=351:7 +ltgreydye=351:7 +ltgraydye=351:7 +greydye=351:8 +graydye=351:8 +darkgreydye=351:8 +darkgraydye=351:8 +dkgreydye=351:8 +dkgraydye=351:8 +pinkdye=351:9 +limedye=351:10 +lightgreendye=351:10 +ltgreendye=351:10 +dandellionyellow=351:11 +yellowdye=351:11 +lightbluedye=351:12 +ltbluedye=351:12 +magentadye=351:13 +orangedye=351:14 +bonemeal=351:15 +whitedye=351:15 +bone=352 +sugar=353 +cake=354 +bed=355 +repeater=356 +diode=356 +cookie=357 +map=358 +shears=359 +melonslice=360 +pumpkinseeds=361 +melonseeds=362 +rawbeef=363 +steak=364 +rawchicken=365 +cookedchicken=366 +rottenflesh=367 +enderpearl=368 +blazerod=369 +ghasttear=370 +goldnugget=371 +netherwart=372 +potion=373 +glassbottle=374 +spidereye=375 +fermentedspidereye=376 +blazepowder=377 +magmacream=378 +brewingstand=379 +cauldron=380 +eyeofender=381 +glisteringmelon=382 +spawnegg=383 +bottleoenchanting=384 +firecharge=385 +goldrecord=2256 +greenrecord=2257 +blocksrecord=2258 +chirprecord=2259 +farrecord=2260 +mallrecord=2261 +mellohirecord=2262 +stalrecord=2263 +stradrecord=2264 +wardrecord=2265 +11record=2266 + diff --git a/MCServer/monsters.ini b/MCServer/monsters.ini new file mode 100644 index 000000000..6634c5bef --- /dev/null +++ b/MCServer/monsters.ini @@ -0,0 +1,111 @@ +[Spider] +AttackRange=5.0 +AttackRate=1 +AttackDamage=1.0 +SightDistance=25.0 +MaxHealth=10 + +[Chicken] +AttackRange=5.0 +AttackRate=1 +AttackDamage=1.0 +SightDistance=25.0 +MaxHealth=4 + +[Cow] +AttackRange=5.0 +AttackRate=1 +AttackDamage=1.0 +SightDistance=25.0 +MaxHealth=10 + +[Pig] +AttackRange=5.0 +AttackRate=1 +AttackDamage=1.0 +SightDistance=25.0 +MaxHealth=10 + +[Sheep] +AttackRange=5.0 +AttackRate=1 +AttackDamage=1.0 +SightDistance=25.0 +MaxHealth=8 + +[Squid] +AttackRange=5.0 +AttackRate=1 +AttackDamage=1.0 +SightDistance=25.0 +MaxHealth=10 + +[Enderman] +AttackRange=5.0 +AttackRate=1 +AttackDamage=4.0 +SightDistance=25.0 +MaxHealth=40 + +[Zombiepigman] +AttackRange=5.0 +AttackRate=1 +AttackDamage=5.0 +SightDistance=25.0 +MaxHealth=20 + +[Cavespider] +AttackRange=5.0 +AttackRate=1 +AttackDamage=2.0 +SightDistance=25.0 +MaxHealth=12 + +[Creeper] +AttackRange=5.0 +AttackRate=1 +AttackDamage=0.0 +SightDistance=25.0 +MaxHealth=20 + +[Ghast] +AttackRange=5.0 +AttackRate=1 +AttackDamage=0.0 +SightDistance=25.0 +MaxHealth=10 + +[Silverfish] +AttackRange=5.0 +AttackRate=1 +AttackDamage=1.0 +SightDistance=25.0 +MaxHealth=8 + +[Skeleton] +AttackRange=5.0 +AttackRate=1 +AttackDamage=4.0 +SightDistance=25.0 +MaxHealth=20 + +[Slime] +AttackRange=5.0 +AttackRate=1 +AttackDamage=10.0 +SightDistance=25.0 +MaxHealth=32 + +[Spider] +AttackRange=5.0 +AttackRate=1 +AttackDamage=2.0 +SightDistance=25.0 +MaxHealth=16 + +[Zombie] +AttackRange=5.0 +AttackRate=1 +AttackDamage=4.0 +SightDistance=25.0 +MaxHealth=20 \ No newline at end of file diff --git a/MCServer/settings.example.ini b/MCServer/settings.example.ini new file mode 100644 index 000000000..bfb16c7e6 --- /dev/null +++ b/MCServer/settings.example.ini @@ -0,0 +1,31 @@ +[Server] +Port=25565 +MaxPlayers=42 +Description=MCServer - Slightly more custom! + +[Worlds] +DefaultWorld=world +;World=world_sexy + +[Plugins] +NewPlugin=Core +NewPlugin=ChatLog + +[HelpPlugin] +ShowPluginNames=1 + +[Physics] +Water=0 + +[Redstone] +SimulateRedstone=0 + +[Monsters] +AnimalsOn=0 +AnimalSpawnInterval=10 +Types=Spider,Chicken,Cow,Pig,Sheep,Squid,Enderman,Zombiepigman,Cavespider,Creeper,Ghast,Silverfish,Skeleton,Slime,Spider,Zombie + +[Authentication] +Server=session.minecraft.net +Address=/game/checkserver.jsp?user=%USERNAME%&serverId=%SERVERID% +Authenticate=0 diff --git a/MCServer/settings.ini b/MCServer/settings.ini new file mode 100644 index 000000000..ab1519021 --- /dev/null +++ b/MCServer/settings.ini @@ -0,0 +1,37 @@ +[Server] +Port=25565 +MaxPlayers=10000 +Description=MCServer - Slightly more custom! + +[Worlds] +;World=world_sexy +DefaultWorld=world + +[Plugins] +;NewPlugin=Protect +;NewPlugin=MagicCarpet +;NewPlugin=ChatLog +;NewPlugin=BlockInfo +NewPlugin=CuboidPlus +NewPlugin=Core +NewPlugin=ChunkWorx + +[HelpPlugin] +ShowPluginNames=1 + +[Physics] +Water=0 + +[Redstone] +SimulateRedstone=0 + +[Monsters] +AnimalsOn=0 +AnimalSpawnInterval=10 +Types=Spider,Chicken,Cow,Pig,Sheep,Squid,Enderman,Zombiepigman,Cavespider,Creeper,Ghast,Silverfish,Skeleton,Slime,Spider,Zombie + +[Authentication] +Server=session.minecraft.net +Address=/game/checkserver.jsp?user=%USERNAME%&serverId=%SERVERID% +Authenticate=0 + diff --git a/MCServer/terrain.ini b/MCServer/terrain.ini new file mode 100644 index 000000000..a917223f9 --- /dev/null +++ b/MCServer/terrain.ini @@ -0,0 +1,8 @@ +[Terrain] +HeightFreq1=0.100000 +HeightFreq2=1.000000 +HeightFreq3=2.000000 +HeightAmp1=1.000000 +HeightAmp2=0.500000 +HeightAmp3=0.500000 + diff --git a/MCServer/users.example.ini b/MCServer/users.example.ini new file mode 100644 index 000000000..fae7030f1 --- /dev/null +++ b/MCServer/users.example.ini @@ -0,0 +1,8 @@ +[SomeAdmin] +Groups=Admins + +[FancyModerator] +Groups=Moderators + +[ImportantPerson] +Groups=Vips \ No newline at end of file diff --git a/MCServer/users.ini b/MCServer/users.ini new file mode 100644 index 000000000..21a52760f --- /dev/null +++ b/MCServer/users.ini @@ -0,0 +1,20 @@ +[FakeTruth] +Groups=Admins + +[Duralex] +Groups=Admins + +[Luthrandel] +Groups=Admins + +[cruisecho] +Groups=Admins + +[Kwen] +Groups=Admins + +[aloe_vera] +Groups=Admins + +[xoft] +Groups=Admins diff --git a/MCServer/webadmin.example.ini b/MCServer/webadmin.example.ini new file mode 100644 index 000000000..6ecbf7513 --- /dev/null +++ b/MCServer/webadmin.example.ini @@ -0,0 +1,6 @@ +[WebAdmin] +Enabled=1 +Port=8080 + +[User:admin] +Password=admin \ No newline at end of file diff --git a/MCServer/webadmin.ini b/MCServer/webadmin.ini new file mode 100644 index 000000000..7384f0bde --- /dev/null +++ b/MCServer/webadmin.ini @@ -0,0 +1,6 @@ +[WebAdmin] +Enabled=1 +Port=8081 + +[User:admin] +Password=admin \ No newline at end of file diff --git a/MCServer/webadmin/template.html b/MCServer/webadmin/template.html new file mode 100644 index 000000000..a607c3f53 --- /dev/null +++ b/MCServer/webadmin/template.html @@ -0,0 +1,376 @@ + + + + + +{TITLE} + + + + + + +
+ +

{TITLE}

+ +
+
+ + + + +

Welcome {USERNAME}

+ +
+

{PLUGIN_NAME}

+ + {CONTENT} + +
+ + +
+
+ +
+ + + +
+ + + diff --git a/MCServer/whitelist.example.ini b/MCServer/whitelist.example.ini new file mode 100644 index 000000000..eb884dcda --- /dev/null +++ b/MCServer/whitelist.example.ini @@ -0,0 +1,6 @@ +[WhiteListSettings] +WhiteListOn=0 + +[WhiteList] +;PlayerName=1 + diff --git a/Plugins/ChatLog/plugin.lua b/Plugins/ChatLog/plugin.lua deleted file mode 100644 index e18a8e642..000000000 --- a/Plugins/ChatLog/plugin.lua +++ /dev/null @@ -1,17 +0,0 @@ -function Initialize( Plugin ) - Plugin:SetName( "ChatLog" ) - Plugin:SetVersion( 2 ) - - PluginManager = cRoot:Get():GetPluginManager() - PluginManager:AddHook( Plugin, cPluginManager.E_PLUGIN_CHAT ) - - LOG( "Initialized " .. Plugin:GetName() .. " v." .. Plugin:GetVersion() ) - return true -end - -function OnChat( Message, Player ) - -- Lets get loggin' - LOGINFO("[" .. Player:GetName() .. "]: " .. Message); - - return false -end \ No newline at end of file diff --git a/Plugins/Core/ban.lua b/Plugins/Core/ban.lua deleted file mode 100644 index a6a662c3c..000000000 --- a/Plugins/Core/ban.lua +++ /dev/null @@ -1,30 +0,0 @@ -function HandleBanCommand( Split, Player ) - if( #Split < 2 ) then - Player:SendMessage( cChatColor.Green .. "Usage: /ban [Player] " ) - return true - end - - local World = Player:GetWorld() - local OtherPlayer = World:GetPlayer( Split[2] ) - if( OtherPlayer == nil ) then - Player:SendMessage( cChatColor.Green .. "Could not find player " .. Split[2] ) - return true - end - - local Reason = "You have been banned" - if( #Split > 2 ) then - Reason = table.concat(Split, " ", 3) - end - - local Server = cRoot:Get():GetServer() - LOGINFO( Player:GetName() .. " is banning " .. OtherPlayer:GetName() .. " ( "..Reason..") " ) - Server:SendMessage( "Banning " .. OtherPlayer:GetName() ) - - local ClientHandle = OtherPlayer:GetClientHandle() - ClientHandle:Kick( Reason ) - - BannedPlayersIni:SetValueB("Banned", OtherPlayer:GetName(), true) - BannedPlayersIni:WriteFile() - - return true -end \ No newline at end of file diff --git a/Plugins/Core/coords.lua b/Plugins/Core/coords.lua deleted file mode 100644 index 07cda1a92..000000000 --- a/Plugins/Core/coords.lua +++ /dev/null @@ -1,4 +0,0 @@ -function HandleCoordsCommand( Split, Player ) - Player:SendMessage(cChatColor.Green .. string.format("[X:%0.2f] [Y:%0.2f] [Z:%0.2f]", Player:GetPosX(), Player:GetPosY(), Player:GetPosZ() ) ) - return true -end \ No newline at end of file diff --git a/Plugins/Core/gamemode.lua b/Plugins/Core/gamemode.lua deleted file mode 100644 index 1e73b46fd..000000000 --- a/Plugins/Core/gamemode.lua +++ /dev/null @@ -1,10 +0,0 @@ -function HandleChangeGMCommand( Split, Player ) - if( #Split ~= 2 ) then - Player:SendMessage( cChatColor.Green .. "Usage: /gm [GameMode (0|1)]" ) - return true - end - - Player:SetGameMode(Split[2]) - - return true -end \ No newline at end of file diff --git a/Plugins/Core/gotoworld.lua b/Plugins/Core/gotoworld.lua deleted file mode 100644 index d5113b667..000000000 --- a/Plugins/Core/gotoworld.lua +++ /dev/null @@ -1,15 +0,0 @@ -function HandleGotoWorldCommand( Split, Player ) - if( #Split ~= 2 ) then - Player:SendMessage( cChatColor.Green .. "Usage: /gotoworld [WorldName]" ) - return true - end - - if( Player:MoveToWorld(Split[2]) == false ) then - Player:SendMessage( cChatColor.Green .. "Could not move to world '" .. Split[2] .. "'!" ) - return true - end - - - Player:SendMessage( cChatColor.Green .. "Moved successfully to '" .. Split[2] .. "'! :D" ) - return true -end \ No newline at end of file diff --git a/Plugins/Core/help.lua b/Plugins/Core/help.lua deleted file mode 100644 index 02ef25ebd..000000000 --- a/Plugins/Core/help.lua +++ /dev/null @@ -1,54 +0,0 @@ -function HandleHelpCommand( Split, Player ) - local PluginManager = cRoot:Get():GetPluginManager() - - local LinesPerPage = 9 - local CurrentPage = 1 - local CurrentLine = 0 - - if( #Split == 2 ) then - CurrentPage = tonumber(Split[2]) - end - - local Pages = {} - - local PluginList = PluginManager:GetAllPlugins() - for i, Plugin in ipairs( PluginList ) do - local Commands = Plugin:GetCommands() - for i, v in ipairs( Commands ) do - if( Player:HasPermission( v.Permission ) ) then - local PageNum = math.floor( CurrentLine/LinesPerPage )+1 - if( Pages[ PageNum ] == nil ) then Pages[ PageNum ] = {} end -- Create page - - if( Pages[ PageNum ].ShownName ~= Plugin:GetName() and SHOW_PLUGIN_NAMES == true ) then - if( CurrentLine == LinesPerPage * PageNum -1 ) then -- Don't add if it's the last line of the page, it looks silly - -- Add it to the next page instead - CurrentLine = CurrentLine+1 - PageNum = math.floor( CurrentLine/LinesPerPage )+1 - - if( Pages[ PageNum ] == nil ) then Pages[ PageNum ] = {} end -- Create page - table.insert( Pages[ PageNum ], cChatColor.Gold .. Plugin:GetName() ) - else - Pages[ PageNum ].ShownName = Plugin:GetName() - table.insert( Pages[ PageNum ], cChatColor.Gold .. Plugin:GetName() ) - end - CurrentLine = CurrentLine+1 - PageNum = math.floor( CurrentLine/LinesPerPage )+1 - if( Pages[ PageNum ] == nil ) then Pages[ PageNum ] = {} end -- Create page - end - local Message = cChatColor.Blue .. v.Command .. v.Description; - table.insert( Pages[ PageNum ], Message ) - CurrentLine = CurrentLine+1 - end - end - end - - Player:SendMessage( cChatColor.Purple .. "- All commands - " .. cChatColor.Gold .. "[Page " .. (CurrentPage) .."/"..#Pages.."]" ) - - if( Pages[CurrentPage] ~= nil ) then - for i, v in ipairs(Pages[CurrentPage]) do - Player:SendMessage( v ) - end - end - - return true -end \ No newline at end of file diff --git a/Plugins/Core/item.lua b/Plugins/Core/item.lua deleted file mode 100644 index 942fa8ce6..000000000 --- a/Plugins/Core/item.lua +++ /dev/null @@ -1,65 +0,0 @@ -function HandleItemCommand( Split, Player ) - if( #Split ~= 2 and #Split ~=3 ) then - Player:SendMessage( cChatColor.Green .. "Usage: /item [ItemID/Name:Dmg] " ) - return true - end - - local FoundItem = false - - local ItemSyntax = Split[2] -- Contains item string with optional metadata - local ItemData = StringSplit( Split[2], ":" ) - - -- Default item values - local ItemID = 0 - local ItemMeta = 0 - local ItemAmount = 1 - - if( #ItemData > 0 ) then - ItemID = ItemData[1] - end - - if( tonumber(ItemID) ~= nil ) then -- Definitely a number - ItemID = tonumber(ItemID) - if( IsValidItem( ItemID ) ) then - FoundItem = true - end - end - - if( FoundItem == false ) then - if ( HAVE_ITEM_NAMES == true ) then - local Item = ItemsTable[ ItemID ] - if( Item ~= nil ) then - ItemID = Item.m_ItemID - ItemMeta = Item.m_ItemHealth - FoundItem = true - end - end - end - - -- Override metadata from item in list, if metadata was given - if( #ItemData > 1 and tonumber( ItemData[2] ) ~= nil ) then -- Metadata is given, and is a number - ItemMeta = tonumber( ItemData[2] ) - end - - if( FoundItem == false ) then - Player:SendMessage( cChatColor.Green .. "Invalid Item ID / Name !" ) - return true - end - - if( #Split == 3 ) then - ItemAmount = tonumber( Split[3] ) - if( ItemAmount == nil or ItemAmount < 1 or ItemAmount > 512 ) then - Player:SendMessage( cChatColor.Green .. "Invalid Amount !" ) - return true - end - end - - local NewItem = cItem( ItemID, ItemAmount, ItemMeta ) - if( Player:GetInventory():AddItem( NewItem ) == true ) then - Player:SendMessage( cChatColor.Green .. "There you go !" ) - LOG("Gave " .. Player:GetName() .. " " .. ItemAmount .. " times " .. ItemID .. ":" .. ItemMeta) - else - Player:SendMessage( cChatColor.Green .. "Not enough space in inventory !" ) - end - return true -end \ No newline at end of file diff --git a/Plugins/Core/kick.lua b/Plugins/Core/kick.lua deleted file mode 100644 index ff4f8a705..000000000 --- a/Plugins/Core/kick.lua +++ /dev/null @@ -1,27 +0,0 @@ -function HandleKickCommand( Split, Player ) - if( #Split < 2 ) then - Player:SendMessage( cChatColor.Green .. "Usage: /kick [Player] " ) - return true - end - - local World = Player:GetWorld() - local OtherPlayer = World:GetPlayer( Split[2] ) - if( OtherPlayer == nil ) then - Player:SendMessage( cChatColor.Green .. "Could not find player " .. Split[2] ) - return true - end - - local Reason = "You have been kicked" - if( #Split > 2 ) then - Reason = table.concat(Split, " ", 3) - end - - local Server = cRoot:Get():GetServer() - LOGINFO( Player:GetName() .. " is kicking " .. OtherPlayer:GetName() .. " ( "..Reason..") " ) - Server:SendMessage( "Kicking " .. OtherPlayer:GetName() ) - - local ClientHandle = OtherPlayer:GetClientHandle() - ClientHandle:Kick( Reason ) - - return true -end \ No newline at end of file diff --git a/Plugins/Core/main.lua b/Plugins/Core/main.lua deleted file mode 100644 index 220dd940e..000000000 --- a/Plugins/Core/main.lua +++ /dev/null @@ -1,146 +0,0 @@ ----- 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 = {} - -function Initialize( Plugin ) - PLUGIN = Plugin - - Plugin:SetName( "Core" ) - Plugin:SetVersion( 8 ) - - PluginManager = cRoot:Get():GetPluginManager() - 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) - - 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] - 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") - Plugin:AddCommand("/stop", " - Stops the server", "core.stop") - 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") - Plugin:AddCommand("/viewdistance", " - [".. cClientHandle.MIN_VIEW_DISTANCE .."-".. cClientHandle.MAX_VIEW_DISTANCE .."] - Change your view distance", "core.viewdistance") - Plugin:AddCommand("/regeneratechunk", " - - Regenerates a chunk", "core.regeneratechunk") - - 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 ) - Plugin:BindCommand( "/stop", "core.stop", HandleStopCommand ) - 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 ) - - 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 ) - --LOGINFO("Got item: " .. ItemName .. "-> " .. ItemsTable[ ItemName ].m_ItemID ..":" .. ItemsTable[ ItemName ].m_ItemHealth ) - 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 - - local WebPlugin = Plugin:CreateWebPlugin() - WebPlugin:SetName( Plugin:GetName() ) - WebPlugin:AddTab( "Playerlist", HandleRequest_PlayerList ) - WebPlugin:AddTab( "Whitelist", HandleRequest_WhiteList ) - WebPlugin:AddTab( "Permissions", HandleRequest_Permissions ) - WebPlugin:AddTab( "Manage Plugins", HandleRequest_ManagePlugins ) - - LOG( "Initialized " .. Plugin:GetName() .. " v." .. Plugin:GetVersion() ) - return true -end \ No newline at end of file diff --git a/Plugins/Core/motd.lua b/Plugins/Core/motd.lua deleted file mode 100644 index 49cdcecad..000000000 --- a/Plugins/Core/motd.lua +++ /dev/null @@ -1,10 +0,0 @@ -function HandleMOTDCommand( Split, Player ) - ShowMOTDTo( Player ) - return true -end - -function ShowMOTDTo( Player ) - Player:SendMessage( cChatColor.Gold .. "Welcome to the MCServer test server!" ); - Player:SendMessage( cChatColor.Gold .. "http://mcserver.ae-c.net/" ); - Player:SendMessage( cChatColor.Gold .. "Type /help for all commands" ); -end \ No newline at end of file diff --git a/Plugins/Core/onblockdig.lua b/Plugins/Core/onblockdig.lua deleted file mode 100644 index 65e48576c..000000000 --- a/Plugins/Core/onblockdig.lua +++ /dev/null @@ -1,10 +0,0 @@ -function OnBlockDig(Player, BlockX, BlockY, BlockZ, BlockFace, Status, OldBlockType, OldBlockMeta) - -- dont check if the direction is in the air - if (BlockFace ~= -1) then - - if (Player:HasPermission("core.build") == false) then - return true - end - end - return false -end \ No newline at end of file diff --git a/Plugins/Core/onblockplace.lua b/Plugins/Core/onblockplace.lua deleted file mode 100644 index 9032f8207..000000000 --- a/Plugins/Core/onblockplace.lua +++ /dev/null @@ -1,63 +0,0 @@ -function OnBlockPlace(Player, BlockX, BlockY, BlockZ, BlockFace, HeldItem) - - -- dont check if the direction is in the air - if (BlockFace == -1) then - return false - end - - if( Player:HasPermission("core.build") == false ) then - return true - end - - -- TODO: If the placed block is not a block (torch etc.), allow it without checking for collisions - - local X = BlockX - local Y = BlockY - local Z = BlockZ - X, Y, Z = AddDirection(X, Y, Z, BlockFace) - if (Y >= 256 or Y < 0) then - return true - end - - local CheckCollision = function(Player) - -- drop the decimals, we only care about the full block X,Y,Z - local PlayerX = math.floor(Player:GetPosX(), 0) - local PlayerY = math.floor(Player:GetPosY(), 0) - local PlayerZ = math.floor(Player:GetPosZ(), 0) - - -- player height is 2 blocks, so we check the position and then offset it up one - -- so they can't place a block in anyone's face - - local collision = false - if ((BlockFace == BLOCK_FACE_TOP) and (PlayerY == BlockY - 2) and (PlayerX == BlockX) and (PlayerZ == BlockZ)) then - collision = true - end - - if ((BlockFace == BLOCK_FACE_BOTTOM) and (PlayerY == BlockY + 1) and (PlayerX == BlockX) and (PlayerZ == BlockZ)) then - collision = true - end - - if ((BlockFace == BLOCK_FACE_NORTH) and (PlayerX == BlockX) and (PlayerZ == BlockZ - 1)) then - if ((PlayerY == BlockY) or (PlayerY + 1 == BlockY)) then collision = true end - end - - if ((BlockFace == BLOCK_FACE_SOUTH) and (PlayerX == BlockX) and (PlayerZ == BlockZ + 1)) then - if ((PlayerY == BlockY) or (PlayerY + 1 == BlockY)) then collision = true end - end - - if ((BlockFace == BLOCK_FACE_WEST) and (PlayerX == BlockX - 1) and (PlayerZ == BlockZ)) then - if ((PlayerY == BlockY) or (PlayerY + 1 == BlockY)) then collision = true end - end - - if ((BlockFace == BLOCK_FACE_EAST) and (PlayerX == BlockX + 1) and (PlayerZ == BlockZ)) then - if ((PlayerY == BlockY) or (PlayerY + 1 == BlockY)) then collision = true end - end - - return collision - end - - if (Player:GetWorld():ForEachPlayer(CheckCollision) == false) then - return true - end - return false -end \ No newline at end of file diff --git a/Plugins/Core/oncraftingnorecipe.lua b/Plugins/Core/oncraftingnorecipe.lua deleted file mode 100644 index 2006e410f..000000000 --- a/Plugins/Core/oncraftingnorecipe.lua +++ /dev/null @@ -1,214 +0,0 @@ - --- Implements item-repair using the HOOK_CRAFTING_NO_RECIPE hook --- Based on Fixies plugin v2 by Taugeshtu - - --- how much "extra" points are healed per a repair operation (fraction of full health) -BONUS = 0.1 - - - - - -function OnCraftingNoRecipe(Player, Grid, Recipe) - local _do_fix = false - local Items = {} - for x = 0, Grid:GetWidth() - 1 do - for y = 0, Grid:GetHeight() - 1 do - local Item = Grid:GetItem(x, y) - if (Item.m_ItemID ~= E_ITEM_EMPTY) then - table.insert(Items, Item) - end - end - end - - if (#Items ~= 2) then - -- Only two items together can be fixed - return false - end - - if (Items[1].m_ItemID ~= Items[2].m_ItemID) then - -- Only items of the same type may be fixed - return false - end - - if ( - (Items[1].m_ItemHealth == 0) or - (Items[2].m_ItemHealth == 0) - ) - then - -- Only damaged items may be fixed - return false - end - - local _ID = Items[1].m_ItemID - local _least_hp = math.max(Items[1].m_ItemHealth, Items[2].m_ItemHealth) - local _most_hp = math.min(Items[1].m_ItemHealth, Items[2].m_ItemHealth) - local _item_hp = 0 - - -- TODO: This could be refactored into better code, using an _ID-indexed table for _item_hp - - if ( - (_ID == E_ITEM_WOODEN_SHOVEL) or - (_ID == E_ITEM_WOODEN_AXE) or - (_ID == E_ITEM_WOODEN_PICKAXE) or - (_ID == E_ITEM_WOODEN_SWORD) or - (_ID == E_ITEM_WOODEN_HOE) - ) - then - _item_hp = 60 - _do_fix = true - end - - if ( - (_ID == E_ITEM_STONE_SHOVEL) or - (_ID == E_ITEM_STONE_AXE) or - (_ID == E_ITEM_STONE_PICKAXE) or - (_ID == E_ITEM_STONE_SWORD) or - (_ID == E_ITEM_STONE_HOE) - ) - then - _item_hp = 132 - _do_fix = true - end - - if ( - (_ID == E_ITEM_IRON_SHOVEL) or - (_ID == E_ITEM_IRON_AXE) or - (_ID == E_ITEM_IRON_PICKAXE) or - (_ID == E_ITEM_IRON_SWORD) or - (_ID == E_ITEM_IRON_HOE) - ) - then - _item_hp = 251 - _do_fix = true - end - - if ( - (_ID == E_ITEM_GOLD_SHOVEL) or - (_ID == E_ITEM_GOLD_AXE) or - (_ID == E_ITEM_GOLD_PICKAXE) or - (_ID == E_ITEM_GOLD_SWORD) or - (_ID == E_ITEM_GOLD_HOE) - ) - then - _item_hp = 33 - _do_fix = true - end - - if ( - (_ID == E_ITEM_DIAMOND_SHOVEL) or - (_ID == E_ITEM_DIAMOND_AXE) or - (_ID == E_ITEM_DIAMOND_PICKAXE) or - (_ID == E_ITEM_DIAMOND_SWORD) or - (_ID == E_ITEM_DIAMOND_HOE) - ) - then - _item_hp = 1562 - _do_fix = true - end - - if (_ID == E_ITEM_LEATHER_CAP) then - _item_hp = 56 - _do_fix = true - end - if (_ID == E_ITEM_LEATHER_TUNIC) then - _item_hp = 82 - _do_fix = true - end - if (_ID == E_ITEM_LEATHER_PANTS) then - _item_hp = 76 - _do_fix = true - end - if (_ID == E_ITEM_LEATHER_BOOTS) then - _item_hp = 66 - _do_fix = true - end - - - if (_ID == E_ITEM_CHAIN_HELMET) then - _item_hp = 78 - _do_fix = true - end - if (_ID == E_ITEM_CHAIN_CHESTPLATE) then - _item_hp = 114 - _do_fix = true - end - if (_ID == E_ITEM_CHAIN_LEGGINGS) then - _item_hp = 106 - _do_fix = true - end - if (_ID == E_ITEM_CHAIN_BOOTS) then - _item_hp = 92 - _do_fix = true - end - - - if (_ID == E_ITEM_IRON_HELMET) then - _item_hp = 166 - _do_fix = true - end - if (_ID == E_ITEM_IRON_CHESTPLATE) then - _item_hp = 242 - _do_fix = true - end - if (_ID == E_ITEM_IRON_LEGGINGS) then - _item_hp = 226 - _do_fix = true - end - if (_ID == E_ITEM_IRON_BOOTS) then - _item_hp = 196 - _do_fix = true - end - - - if (_ID == E_ITEM_GOLD_HELMET) then - _item_hp = 78 - _do_fix = true - end - if (_ID == E_ITEM_GOLD_CHESTPLATE) then - _item_hp = 114 - _do_fix = true - end - if (_ID == E_ITEM_GOLD_LEGGINGS) then - _item_hp = 106 - _do_fix = true - end - if (_ID == E_ITEM_GOLD_BOOTS) then - _item_hp = 92 - _do_fix = true - end - - - if (_ID == E_ITEM_DIAMOND_HELMET) then - _item_hp = 364 - _do_fix = true - end - if (_ID == E_ITEM_DIAMOND_CHESTPLATE)then - _item_hp = 529 - _do_fix = true - end - if (_ID == E_ITEM_DIAMOND_LEGGINGS) then - _item_hp = 496 - _do_fix = true - end - if (_ID == E_ITEM_DIAMOND_BOOTS) then - _item_hp = 430 - _do_fix = true - end - -- ///////////////////////////////////////////////////// - - if (_do_fix == true) then - local _hp = _most_hp - (_item_hp - _least_hp) - _item_hp * BONUS - _hp = math.max(_hp, 0) - Recipe:SetResult(_ID, 1, _hp) - Recipe:SetIngredient(Items[1].x, Items[1].y, Items[1]); - Recipe:SetIngredient(Items[2].x, Items[2].y, Items[2]); - return true - end - return false -end - - - - diff --git a/Plugins/Core/onkilled.lua b/Plugins/Core/onkilled.lua deleted file mode 100644 index a8a92f667..000000000 --- a/Plugins/Core/onkilled.lua +++ /dev/null @@ -1,24 +0,0 @@ -function OnKilled( Killed, Killer ) - if( Killer == nil ) then - local KilledPlayer = tolua.cast( Killed, "cPlayer") - if( not KilledPlayer:IsA("cPlayer") or KilledPlayer == nil ) then - return false - end - - local Server = cRoot:Get():GetServer() - Server:SendMessage( cChatColor.Red .. KilledPlayer:GetName() .. " died" ) - else - local KilledPlayer = tolua.cast( Killed, "cPlayer") - if( not KilledPlayer:IsA("cPlayer") or KilledPlayer == nil ) then - return false - end - local KillerPlayer = tolua.cast( Killer, "cPlayer") - if( not KillerPlayer:IsA("cPlayer") or KillerPlayer == nil ) then - return false - end - - local Server = cRoot:Get():GetServer() - Server:SendMessage( cChatColor.Red .. KilledPlayer:GetName() .. " was killed by " .. KillerPlayer:GetName() .. "!" ) - end - return false -end \ No newline at end of file diff --git a/Plugins/Core/onlogin.lua b/Plugins/Core/onlogin.lua deleted file mode 100644 index a706f8024..000000000 --- a/Plugins/Core/onlogin.lua +++ /dev/null @@ -1,20 +0,0 @@ -function OnLogin( PacketData ) - if( PacketData.m_Username ~= "" ) then - if( BannedPlayersIni:GetValueB("Banned", PacketData.m_Username, false) == true ) then - local Server = cRoot:Get():GetServer() - Server:SendMessage( PacketData.m_Username .. " tried to join, but is banned!" ) - LOGINFO( PacketData.m_Username .. " tried to join, but is banned!") - return true -- Player is banned, return true to deny access - end - if( WhiteListIni:GetValueB("WhiteListSettings", "WhiteListOn", false ) == true ) then - if( WhiteListIni:GetValueB("WhiteList", PacketData.m_Username, false ) == false ) then -- not on whitelist - local Server = cRoot:Get():GetServer() - Server:SendMessage( PacketData.m_Username .. " tried to join, but is not on the whitelist." ) - LOGINFO( PacketData.m_Username .. " tried to join, but is not on the whitelist." ) - return true -- Deny access to the server - end - end - end - - return false -end \ No newline at end of file diff --git a/Plugins/Core/onplayerjoin.lua b/Plugins/Core/onplayerjoin.lua deleted file mode 100644 index e8263f608..000000000 --- a/Plugins/Core/onplayerjoin.lua +++ /dev/null @@ -1,4 +0,0 @@ -function OnPlayerJoin( Player ) - ShowMOTDTo( Player ) - return false -end \ No newline at end of file diff --git a/Plugins/Core/playerlist.lua b/Plugins/Core/playerlist.lua deleted file mode 100644 index f06dfed85..000000000 --- a/Plugins/Core/playerlist.lua +++ /dev/null @@ -1,14 +0,0 @@ -function HandlePlayerListCommand( Split, Player ) - - local PlayerTable = {} - local AppendToTable = function( Player ) - table.insert(PlayerTable, Player:GetName() ) - end - Player:GetWorld():ForEachPlayer( AppendToTable ) - - local Message = cChatColor.Green .. "Connected players: (".. cChatColor.White.. #PlayerTable .. cChatColor.Green .. ")" - Player:SendMessage( Message ) - - Player:SendMessage( table.concat(PlayerTable, " ") ) - return true -end \ No newline at end of file diff --git a/Plugins/Core/pluginlist.lua b/Plugins/Core/pluginlist.lua deleted file mode 100644 index 7b007f7db..000000000 --- a/Plugins/Core/pluginlist.lua +++ /dev/null @@ -1,13 +0,0 @@ -function HandlePluginListCommand( Split, Player ) - local PluginManager = cRoot:Get():GetPluginManager() - local PluginList = PluginManager:GetAllPlugins() - - local PluginTable = {} - for i, Plugin in ipairs( PluginList ) do - table.insert(PluginTable, Plugin:GetName() ) - end - - Player:SendMessage( cChatColor.Green .. "Loaded plugins: (" .. #PluginTable .. ")" ) - Player:SendMessage( cChatColor.Gold .. table.concat(PluginTable, cChatColor.Gold.." ") ) - return true -end \ No newline at end of file diff --git a/Plugins/Core/regeneratechunk.lua b/Plugins/Core/regeneratechunk.lua deleted file mode 100644 index b4b2874fc..000000000 --- a/Plugins/Core/regeneratechunk.lua +++ /dev/null @@ -1,18 +0,0 @@ -function HandleRegenerateChunkCommand( Split, Player ) - if( (#Split == 2) or (#Split > 3) ) then - Player:SendMessage( cChatColor.Green .. "Usage: /regeneratechunk " ) - return true - end - - local X = Player:GetChunkX() - local Z = Player:GetChunkZ() - - if( #Split == 3 ) then - X = Split[2] - Z = Split[3] - end - - Player:SendMessage(cChatColor.Green .. "Regenerating chunk ["..X..", "..Z.."]") - Player:GetWorld():RegenerateChunk(X, Z) - return true -end \ No newline at end of file diff --git a/Plugins/Core/reload.lua b/Plugins/Core/reload.lua deleted file mode 100644 index e2b338ba1..000000000 --- a/Plugins/Core/reload.lua +++ /dev/null @@ -1,6 +0,0 @@ -function HandleReloadCommand( Split, Player ) - Server = cRoot:Get():GetServer() - Server:SendMessage( cChatColor.Green .. "Reloading all plugins." ) - cRoot:Get():GetPluginManager():ReloadPlugins() - return true -end \ No newline at end of file diff --git a/Plugins/Core/spawn.lua b/Plugins/Core/spawn.lua deleted file mode 100644 index 73034d9cf..000000000 --- a/Plugins/Core/spawn.lua +++ /dev/null @@ -1,6 +0,0 @@ -function HandleSpawnCommand( Split, Player ) - World = Player:GetWorld() - Player:TeleportTo( World:GetSpawnX(), World:GetSpawnY(), World:GetSpawnZ() ) - LOGINFO( Player:GetName() .. " returned to spawn." ) - return true -end \ No newline at end of file diff --git a/Plugins/Core/stop.lua b/Plugins/Core/stop.lua deleted file mode 100644 index 0a06fc7d3..000000000 --- a/Plugins/Core/stop.lua +++ /dev/null @@ -1,6 +0,0 @@ -function HandleStopCommand( Split, Player ) - Server = cRoot:Get():GetServer() - Server:SendMessage( cChatColor.Green .. "Stopping the server..." ) - cRoot:Get():ServerCommand("stop") - return true -end \ No newline at end of file diff --git a/Plugins/Core/teleport.lua b/Plugins/Core/teleport.lua deleted file mode 100644 index 90eb3529a..000000000 --- a/Plugins/Core/teleport.lua +++ /dev/null @@ -1,23 +0,0 @@ -function HandleTPCommand( Split, Player ) - if( #Split ~= 2 ) then - Player:SendMessage( cChatColor.Green .. "Usage: /tp [PlayerName]" ) - return true - end - - World = Player:GetWorld() - - local TeleportDestination = function(OtherPlayer) - if( OtherPlayer == Player ) then - Player:SendMessage( cChatColor.Green .. "Already there :)" ) - else - Player:TeleportToEntity( OtherPlayer ) - Player:SendMessage( cChatColor.Green .. "You teleported to "..OtherPlayer:GetName().."!" ) - OtherPlayer:SendMessage( cChatColor.Green .. Player:GetName().." teleported to you!" ) - end - end - - if (not(World:DoWithPlayer(Split[2], TeleportDestination))) then - Player:SendMessage( cChatColor.Green .. "Can't find player " .. Split[2] ) - end - return true -end \ No newline at end of file diff --git a/Plugins/Core/time.lua b/Plugins/Core/time.lua deleted file mode 100644 index 425d69e6a..000000000 --- a/Plugins/Core/time.lua +++ /dev/null @@ -1,18 +0,0 @@ -function HandleTimeCommand( Split, Player ) - if( #Split ~= 2 ) then - Player:SendMessage( cChatColor.Green .. "Usage: /time [Day/Night]" ) - return true; - end - - local Server = cRoot:Get():GetServer() - if( string.upper( Split[2] ) == "DAY") then - Player:GetWorld():SetWorldTime( 0 ) - Server:SendMessage( cChatColor.Green .. Player:GetName() .. " set the time to Day.") - elseif( string.upper( Split[2] ) == "NIGHT") then - Player:GetWorld():SetWorldTime( 12000 + 1000 ) - Server:SendMessage( cChatColor.Green .. Player:GetName() .. " set the time to Night.") - else - Player:SendMessage( cChatColor.Green .. "Usage: /time [Day/Night]" ) - end - return true -end \ No newline at end of file diff --git a/Plugins/Core/top.lua b/Plugins/Core/top.lua deleted file mode 100644 index 0f7a8f95f..000000000 --- a/Plugins/Core/top.lua +++ /dev/null @@ -1,11 +0,0 @@ -function HandleTopCommand( Split, Player ) - local World = Player:GetWorld() - - local PlayerPos = Player:GetPosition() - local Height = World:GetHeight( math.floor(PlayerPos.x), math.floor(PlayerPos.z) ) - - Player:TeleportTo( PlayerPos.x, Height+1, PlayerPos.z ) - Player:SendMessage("Teleported to the top block") - - return true -end \ No newline at end of file diff --git a/Plugins/Core/unban.lua b/Plugins/Core/unban.lua deleted file mode 100644 index 9defbe323..000000000 --- a/Plugins/Core/unban.lua +++ /dev/null @@ -1,20 +0,0 @@ -function HandleUnbanCommand( Split, Player ) - if( #Split < 2 ) then - Player:SendMessage( cChatColor.Green .. "Usage: /unban [Player]" ) - return true - end - - if( BannedPlayersIni:GetValueB("Banned", Split[2], false) == false ) then - Player:SendMessage( cChatColor.Green .. Split[2] .. " is not banned!" ) - return true - end - - BannedPlayersIni:SetValueB("Banned", Split[2], false, false) - BannedPlayersIni:WriteFile() - - local Server = cRoot:Get():GetServer() - LOGINFO( Player:GetName() .. " is unbanning " .. Split[2] ) - Server:SendMessage( "Unbanning " .. Split[2] ) - - return true -end \ No newline at end of file diff --git a/Plugins/Core/viewdistance.lua b/Plugins/Core/viewdistance.lua deleted file mode 100644 index 43d2a7de8..000000000 --- a/Plugins/Core/viewdistance.lua +++ /dev/null @@ -1,10 +0,0 @@ -function HandleViewDistanceCommand( Split, Player ) - if( #Split ~= 2 ) then - Player:SendMessage( cChatColor.Green .. "Usage: /viewdistance [".. cClientHandle.MIN_VIEW_DISTANCE .."-".. cClientHandle.MAX_VIEW_DISTANCE .."]" ) - return true - end - - Player:GetClientHandle():SetViewDistance( Split[2] ) - Player:SendMessage(cChatColor.Green .. "Your viewdistance has been set to " .. Player:GetClientHandle():GetViewDistance() ) - return true -end \ No newline at end of file diff --git a/Plugins/Core/web_manageplugins.lua b/Plugins/Core/web_manageplugins.lua deleted file mode 100644 index 3030efc7a..000000000 --- a/Plugins/Core/web_manageplugins.lua +++ /dev/null @@ -1,93 +0,0 @@ -local function Button_RemovePlugin( Name, Index ) - return "
" -end - -local function HandlePluginListChanges( Request, SettingsIni ) - local Content = "" - if( Request.PostParams["RemovePlugin"] ~= nil - and Request.PostParams["PluginName"] ~= nil - and Request.PostParams["PluginIndex"] ~= nil ) then -- Removing a plugin - - local KeyIdx = SettingsIni:FindKey("Plugins") - local PluginIdx = Request.PostParams["PluginIndex"] - - local PluginName = SettingsIni:GetValue( KeyIdx, PluginIdx ) - if( (PluginName == Request.PostParams["PluginName"]) and (SettingsIni:DeleteValueByID( KeyIdx, PluginIdx ) == true) ) then - SettingsIni:WriteFile() - Content = "Removed plugin '" .. PluginName .. "'" - else - Content = "Whoops! Something went wrong!" - end - - - elseif( Request.PostParams["AddPlugin"] ~= nil - and Request.PostParams["PluginName"] ~= nil ) then -- Add a plugin - - SettingsIni:SetValue("Plugins", "NewPlugin", Request.PostParams["PluginName"], true ) - SettingsIni:WriteFile() - - Content = "Added plugin '".. Request.PostParams["PluginName"] .."'" - - end - - if( #Content > 0 ) then - return "

INFO: " .. Content .. "

" - else - return "" - end -end - -function HandleRequest_ManagePlugins( Request ) - local Content = "" - - if( Request.PostParams["reload"] ~= nil ) then - Content = Content .. "" - Content = Content .. "

Reloading plugins... This can take a while depending on the plugins you're using.

" - cRoot:Get():GetPluginManager():ReloadPlugins() - return Content - end - - local PluginManager = cRoot:Get():GetPluginManager() - local PluginList = PluginManager:GetAllPlugins() - - Content = Content .. "

Currently active plugins

" - Content = Content .. "" - for k, Plugin in pairs(PluginList) do - Content = Content .. "" - end - Content = Content .. "
" .. Plugin:GetName() .. " V. " .. Plugin:GetVersion() .. "
" - - local SettingsIni = cIniFile("settings.ini") - if( SettingsIni:ReadFile() == true ) then - Content = Content .. "

Plugins according to settings.ini

" - - Content = Content .. HandlePluginListChanges( Request, SettingsIni ) - - Content = Content .. "" - - local KeyIdx = SettingsIni:FindKey("Plugins") - local NumValues = SettingsIni:GetNumValues( KeyIdx ) - for i = 0, NumValues-1 do - local ValueName = SettingsIni:GetValueName(KeyIdx, i ) - local PluginName = SettingsIni:GetValue(KeyIdx, i) - Content = Content .. "" - Content = Content .. "" - Content = Content .. "" - Content = Content .. "" - end - Content = Content .. "
" .. ValueName .. ": " .. PluginName .. "" .. Button_RemovePlugin( PluginName, i ) .. "
" - end - - Content = Content .. "

Add plugin to settings.ini

" - Content = Content .. "
" - Content = Content .. "" - Content = Content .. "
" - - Content = Content .. "

Reload

" - Content = Content .. "
" - Content = Content .. "

Click the reload button to reload all plugins!
" - Content = Content .. "

" - Content = Content .. "
" - - return Content -end \ No newline at end of file diff --git a/Plugins/Core/web_permissions.lua b/Plugins/Core/web_permissions.lua deleted file mode 100644 index 4fce502e1..000000000 --- a/Plugins/Core/web_permissions.lua +++ /dev/null @@ -1,79 +0,0 @@ -local function ShowUsersTable() - local Content = "

Users

" - - local UsersIni = cIniFile("users.ini") - if( UsersIni:ReadFile() == false ) then - return "Could not read users.ini!" - end - - local NumUsers = UsersIni:GetNumKeys() - - Content = Content .. "" - - if( NumUsers > 0 ) then - Content = Content .. "" - - for i=0, NumUsers-1 do - local UserName = UsersIni:GetKeyName( i ) - - Content = Content .. "" - Content = Content .. "" - Content = Content .. "" - Content = Content .. "" - Content = Content .. "" - end - else - Content = Content .. "" - end - Content = Content .. "
UserGroups
" .. i .. "." .. UserName .. "" - Content = Content .. UsersIni:GetValue( UserName, "Groups", "-" ) - Content = Content .. "
None
" - - - return Content -end - -local function ShowGroupsTable() - local Content = "

Groups

" - - local GroupsIni = cIniFile("groups.ini") - if( GroupsIni:ReadFile() == false ) then - return "Could not read groups.ini!" - end - - local NumGroups = GroupsIni:GetNumKeys() - - Content = Content .. "" - if( NumGroups > 0 ) then - Content = Content .. "" - - for i=0, NumGroups-1 do - local GroupName = GroupsIni:GetKeyName( i ) - - Content = Content .. "" - Content = Content .. "" - Content = Content .. "" - Content = Content .. "" - Content = Content .. "" - Content = Content .. "" - end - else - Content = Content .. "" - end - Content = Content .. "
NamePermissionsColor
" .. i .. "." .. GroupName .. "" - Content = Content .. GroupsIni:GetValue( GroupName, "Permissions", "-" ) - Content = Content .. "" - Content = Content .. GroupsIni:GetValue( GroupName, "Color", "-" ) - Content = Content .. "
None
" - - return Content -end - -function HandleRequest_Permissions( Request ) - local Content = "" - - Content = Content .. ShowGroupsTable() - Content = Content .. ShowUsersTable() - - return Content -end \ No newline at end of file diff --git a/Plugins/Core/web_playerlist.lua b/Plugins/Core/web_playerlist.lua deleted file mode 100644 index b7e48cc3f..000000000 --- a/Plugins/Core/web_playerlist.lua +++ /dev/null @@ -1,36 +0,0 @@ -function HandleRequest_PlayerList( Request ) - local World = cRoot:Get():GetDefaultWorld() - local Content = "" - - if( Request.Params["playerlist-kick"] ~= nil ) then - local KickPlayerName = Request.Params["playerlist-kick"] - local Player = World:GetPlayer( KickPlayerName ) - if( Player == nil ) then - Content = Content .. "

Could not find player " .. KickPlayerName .. " !

" - elseif( Player:GetName() == KickPlayerName ) then - Player:GetClientHandle():Kick("You were kicked from the game!") - Content = Content .. "

" .. KickPlayerName .. " has been kicked from the game!

" - end - end - - Content = Content .. "

Connected Players: " .. World:GetNumPlayers() .. "

" - Content = Content .. "" - - local PlayerNum = 0 - local AddPlayerToTable = function( Player ) - PlayerNum = PlayerNum + 1 - Content = Content .. "" - Content = Content .. "" - Content = Content .. "" - Content = Content .. "" - Content = Content .. "" - end - World:ForEachPlayer( AddPlayerToTable ) - - if( PlayerNum == 0 ) then - Content = Content .. "" - end - Content = Content .. "
" .. PlayerNum .. "." .. Player:GetName() .. "Kick
None
" - Content = Content .. "
" - return Content -end \ No newline at end of file diff --git a/Plugins/Core/web_whitelist.lua b/Plugins/Core/web_whitelist.lua deleted file mode 100644 index 2c9ddb953..000000000 --- a/Plugins/Core/web_whitelist.lua +++ /dev/null @@ -1,79 +0,0 @@ -local function HTMLDeleteButton( name ) - return "
" -end - -function HandleRequest_WhiteList( Request ) - local UpdateMessage = "" - if( Request.PostParams["whitelist-add"] ~= nil ) then - local PlayerName = Request.PostParams["whitelist-add"] - - if( WhiteListIni:GetValueB("WhiteList", PlayerName, false) == true ) then - UpdateMessage = "".. PlayerName.." is already on the whitelist" - else - WhiteListIni:SetValueB("WhiteList", PlayerName, true ) - UpdateMessage = "Added " .. PlayerName .. " to whitelist." - WhiteListIni:WriteFile() - end - elseif( Request.PostParams["whitelist-delete"] ~= nil ) then - local PlayerName = Request.PostParams["whitelist-delete"] - WhiteListIni:DeleteValue( "WhiteList", PlayerName ) - UpdateMessage = "Removed " .. PlayerName .. " from whitelist." - WhiteListIni:WriteFile() - elseif( Request.PostParams["whitelist-reload"] ~= nil ) then - WhiteListIni:Erase() -- Empty entire loaded ini first, otherwise weird shit goes down - WhiteListIni:ReadFile() - UpdateMessage = "Loaded from disk" - elseif( Request.Params["whitelist-setenable"] ~= nil ) then - local Enabled = Request.Params["whitelist-setenable"] - local CreateNewValue = false - if( WhiteListIni:FindValue( WhiteListIni:FindKey("WhiteListSettings"), "WhiteListOn" ) == cIniFile.noID ) then -- Find out whether the value is in the ini - CreateNewValue = true - end - - if( Enabled == "1" ) then - WhiteListIni:SetValueB("WhiteListSettings", "WhiteListOn", true, CreateNewValue ) - else - WhiteListIni:SetValueB("WhiteListSettings", "WhiteListOn", false, CreateNewValue ) - end - WhiteListIni:WriteFile() - end - - - local Content = "" - - local WhiteListEnabled = WhiteListIni:GetValueB("WhiteListSettings", "WhiteListOn", false) - if( WhiteListEnabled == false ) then - Content = Content .. "

Whitelist is currently disabled! Click here to enable.

" - end - - - Content = Content .. "

Whitelisted players

" - Content = Content .. "" - local KeyNum = WhiteListIni:FindKey("WhiteList") - local NumValues = WhiteListIni:GetNumValues(KeyNum) - if( NumValues > 0 ) then - for Num = 0, NumValues-1 do - if( WhiteListIni:GetValue(KeyNum, Num, "0") == "1" ) then - local PlayerName = WhiteListIni:GetValueName(KeyNum, Num ) - Content = Content .. "" - end - end - else - Content = Content .. "" - end - Content = Content .. "
" .. PlayerName .. "" .. HTMLDeleteButton( PlayerName ) .. "
None
" - Content = Content .. "

Add player to whitelist

" - Content = Content .. "
" - Content = Content .. "" - Content = Content .. "
" - Content = Content .. "
" - Content = Content .. "" - Content = Content .. "
" - Content = Content .. "
"..UpdateMessage - - if( WhiteListEnabled == true ) then - Content = Content .. "

Whitelist is currently enabled, click here to disable.

" - end - - return Content -end \ No newline at end of file diff --git a/Plugins/MagicCarpet/objects.lua b/Plugins/MagicCarpet/objects.lua deleted file mode 100644 index 30528cc42..000000000 --- a/Plugins/MagicCarpet/objects.lua +++ /dev/null @@ -1,97 +0,0 @@ --- Location object -cLocation = {} -function cLocation:new( x, y, z ) - local object = { x = x, y = y, z = z } - setmetatable(object, { __index = cLocation }) - return object -end - --- Offsets -cFibers = { } -function cFibers:new() - local object = { - cLocation:new( 2, -1, 2 ), - cLocation:new( 2, -1, 1 ), - cLocation:new( 2, -1, 0 ), - cLocation:new( 2, -1, -1 ), - cLocation:new( 2, -1, -2 ), - cLocation:new( 1, -1, 2 ), - cLocation:new( 1, -1, 1 ), - cLocation:new( 1, -1, 0 ), - cLocation:new( 1, -1, -1 ), - cLocation:new( 1, -1, -2 ), - cLocation:new( 0, -1, 2 ), - cLocation:new( 0, -1, 1 ), - cLocation:new( 0, -1, 0 ), - cLocation:new( 0, -1, -1 ), - cLocation:new( 0, -1, -2 ), - cLocation:new( -1, -1, 2 ), - cLocation:new( -1, -1, 1 ), - cLocation:new( -1, -1, 0 ), - cLocation:new( -1, -1, -1 ), - cLocation:new( -1, -1, -2 ), - cLocation:new( -2, -1, 2 ), - cLocation:new( -2, -1, 1 ), - cLocation:new( -2, -1, 0 ), - cLocation:new( -2, -1, -1 ), - cLocation:new( -2, -1, -2 ), - imadeit = false, - } - setmetatable(object, { __index = cFibers }) - return object; -end - --- Carpet object -cCarpet = {} -function cCarpet:new() - local object = { Location = cLocation:new(0,0,0), - Fibers = cFibers:new(), - } - setmetatable(object, { __index = cCarpet }) - return object -end - -function cCarpet:remove() - local World = cRoot:Get():GetWorld() - for i, fib in ipairs( self.Fibers ) do - local x = self.Location.x + fib.x - local y = self.Location.y + fib.y - local z = self.Location.z + fib.z - local BlockID = World:GetBlock( x, y, z ) - if( fib.imadeit == true and BlockID == E_BLOCK_GLASS ) then - World:SetBlock( x, y, z, 0, 0 ) - fib.imadeit = false - end - end -end - -function cCarpet:draw() - local World = cRoot:Get():GetWorld() - for i, fib in ipairs( self.Fibers ) do - local x = self.Location.x + fib.x - local y = self.Location.y + fib.y - local z = self.Location.z + fib.z - local BlockID = World:GetBlock( x, y, z ) - if( BlockID == 0 ) then - fib.imadeit = true - World:SetBlock( x, y, z, E_BLOCK_GLASS, 0 ) - else - fib.imadeit = false - end - end -end - -function cCarpet:moveTo( NewPos ) - local x = math.floor( NewPos.x ) - local y = math.floor( NewPos.y ) - local z = math.floor( NewPos.z ) - if( self.Location.x ~= x or self.Location.y ~= y or self.Location.z ~= z ) then - self:remove() - self.Location = cLocation:new( x, y, z ) - self:draw() - end -end - -function cCarpet:getY() - return self.Location.y -end \ No newline at end of file diff --git a/Plugins/MagicCarpet/plugin.lua b/Plugins/MagicCarpet/plugin.lua deleted file mode 100644 index 22604c9d9..000000000 --- a/Plugins/MagicCarpet/plugin.lua +++ /dev/null @@ -1,65 +0,0 @@ -local PLUGIN = {} -local Carpets = {} - -function Initialize( Plugin ) - PLUGIN = Plugin - - Plugin:SetName( "MagicCarpet" ) - Plugin:SetVersion( 1 ) - - PluginManager = cRoot:Get():GetPluginManager() - PluginManager:AddHook( Plugin, cPluginManager.E_PLUGIN_PLAYER_MOVE) - PluginManager:AddHook( Plugin, cPluginManager.E_PLUGIN_DISCONNECT) - - Plugin:AddCommand("/mc", " - Spawns a magical carpet!", "magiccarpet") - Plugin:BindCommand( "/mc", "magiccarpet", HandleCarpetCommand ) - - Log( "Initialized " .. Plugin:GetName() .. " v." .. Plugin:GetVersion() ) - return true -end - -function OnDisable() - Log( PLUGIN:GetName() .. " v." .. PLUGIN:GetVersion() .. " is shutting down..." ) - for i, Carpet in pairs( Carpets ) do - Carpet:remove() - end -end - -function HandleCarpetCommand( Split, Player ) - Carpet = Carpets[ Player ] - if( Carpet == nil ) then - Carpets[ Player ] = cCarpet:new() - Player:SendMessage("You're on a magic carpet!" ) - else - Carpet:remove() - Carpets[ Player ] = nil - Player:SendMessage("The carpet vanished!" ) - end - - return true -end - -function OnDisconnect( Reason, Player ) - local Carpet = Carpets[ Player ] - if( Carpet ~= nil ) then - Carpet:remove() - end - Carpets[ Player ] = nil -end - -function OnPlayerMove( Player ) - local Carpet = Carpets[ Player ] - if( Carpet == nil ) then - return - end - - if( Player:GetPitch() == 90 ) then - Carpet:moveTo( cLocation:new( Player:GetPosX(), Player:GetPosY()-1, Player:GetPosZ() ) ) - else - if( Player:GetPosY() < Carpet:getY() ) then - LOGINFO("Fell tru mc!") - Player:TeleportTo( Player:GetPosX(), Carpet:getY(), Player:GetPosZ() ) - end - Carpet:moveTo( cLocation:new( Player:GetPosX(), Player:GetPosY(), Player:GetPosZ() ) ) - end -end \ No newline at end of file diff --git a/Plugins/SquirrelChatLog.nut b/Plugins/SquirrelChatLog.nut deleted file mode 100644 index 4ef0fd595..000000000 --- a/Plugins/SquirrelChatLog.nut +++ /dev/null @@ -1,13 +0,0 @@ -class SquirrelChatLog extends Plugin -{ - function Initialize() - { - this.AddHook(Hook.Chat); - return true; - } - - function OnChat(Message, Player) - { - ::print(Player.GetName() + ": " + Message); - } -} diff --git a/Plugins/sTick/main.lua b/Plugins/sTick/main.lua deleted file mode 100644 index 16ac7167f..000000000 --- a/Plugins/sTick/main.lua +++ /dev/null @@ -1,20 +0,0 @@ - --- Global variables -PLUGIN = {} -- Reference to own plugin object - - - - - -function Initialize( Plugin ) - PLUGIN = Plugin - - Plugin:SetName( "sTick" ) - Plugin:SetVersion( 8 ) - - PluginManager = cRoot:Get():GetPluginManager() - PluginManager:AddHook( Plugin, cPluginManager.E_PLUGIN_BLOCK_PLACE ) - - LOG( "Initialized " .. Plugin:GetName() .. " v." .. Plugin:GetVersion() ) - return true -end \ No newline at end of file diff --git a/Plugins/sTick/onblockplace.lua b/Plugins/sTick/onblockplace.lua deleted file mode 100644 index 0216b580e..000000000 --- a/Plugins/sTick/onblockplace.lua +++ /dev/null @@ -1,18 +0,0 @@ -function OnBlockPlace( Block, Player ) - - -- dont check if the direction is in the air - if Block.m_Direction == -1 then - return false - end - - if (Block.m_ItemType ~= 280) then -- not a Stick of Ticking - return false - end - - LOG("Setting next block tick to {" .. Block.m_PosX .. ", " .. Block.m_PosY .. ", " .. Block.m_PosZ .. "}") - - Player:GetWorld():SetNextBlockTick(Block.m_PosX, Block.m_PosY, Block.m_PosZ); - - return true - -end \ No newline at end of file diff --git a/VC2008/MCServer.vcproj b/VC2008/MCServer.vcproj index a2137e87f..9082c8de2 100644 --- a/VC2008/MCServer.vcproj +++ b/VC2008/MCServer.vcproj @@ -64,6 +64,7 @@ = # -# = = | | ... | -# = , : , : , ..., : -# = [^] -# , = "1" .. "3", or "*" for any value. "*:*" can be replaced by a single "*". -# = [^] [, ] -# -# The Xn, Yn coordinates are a reference to the crafting grid: -# 1:1 | 2:1 | 3:1 -# 1:2 | 2:2 | 3:2 -# 1:3 | 2:3 | 3:3 -# -# can be either a number, or an item name (checked against items.ini) -# -# ^ is optional, if not present, any damage value is matched for ingredients and zero is produced for the result -# -# Ingredients with an asterisk for a coord will not match already matched crafting grid items. This enables simplifying some of the recipes, -# e. g. hoe: "Iron, 2:1, *:1" -# -- this means "one iron at 2:1, and another one at either 1:1 or 3:1" -# -# To require multiple items of the same type in a slot, specify the slot number several times: -# "Iron, 1:1, 2:2, 2:2" -# -- this means "take one iron from slot 1:1 and two irons from slot 2:2" -# Note that asterisked items cannot require multiple items in a single slot. -# -# Note that due to technical problems, it is NOT advised to use asterisked ingredients in crossing directions, such as "*:1, "2:*". -# The parser may be unable to match such a recipe to the crafting grid! -# -# Whitespace is optional. Use it reasonably. Please do NOT use Tabs in the middle of lines! - - - - - -#******************************************************# -# Basic Crafts -# - -# Need to list each of the four log types, otherwise all logs would get converted into apple planks (^0) -ApplePlanks, 4 = AppleLog, * -ConiferPlanks, 4 = ConiferLog, * -BirchPlanks, 4 = BirchLog, * -JunglePlanks, 4 = JungleLog, * -Stick, 4 = Planks, 2:2, 2:3 -Torch, 4 = Stick, 1:2 | Coal, 1:1 -Workbench = Planks, 1:1, 1:2, 2:1, 2:2 -Chest = Planks, 1:1, 1:2, 1:3, 2:1, 2:3, 3:1, 3:2, 3:3 -Furnace = Cobblestone, 1:1, 1:2, 1:3, 2:1, 2:3, 3:1, 3:2, 3:3 - - - - - -#******************************************************# -# Blocks -# -IronBlock = IronIngot, 1:1, 1:2, 1:3, 2:1, 2:2, 2:3, 3:1, 3:2, 3:3 -GoldBlock = GoldIngot, 1:1, 1:2, 1:3, 2:1, 2:2, 2:3, 3:1, 3:2, 3:3 -DiamondBlock = Diamond, 1:1, 1:2, 1:3, 2:1, 2:2, 2:3, 3:1, 3:2, 3:3 -LapisBlock = LapisLazuli, 1:1, 1:2, 1:3, 2:1, 2:2, 2:3, 3:1, 3:2, 3:3 -Glowstone = GlowstoneDust, 1:1, 1:2, 2:1, 2:2 -Wool = String, 1:1, 1:2, 2:1, 2:2 -TNT = Gunpowder, 1:1, 3:1, 2:2, 1:3, 3:3 | Sand, 2:1, 1:2, 3:2, 2:3 - -# Slabs: -StoneSlab, 6 = Stone, 1:1, 2:1, 3:1 -SandstoneSlab, 6 = Sandstone, 1:1, 2:1, 3:1 -WoodSlab, 6 = Planks, 1:1, 2:1, 3:1 -CobblestoneSlab, 6 = Cobblestone, 1:1, 2:1, 3:1 -BrickSlab, 6 = BrickBlock, 1:1, 2:1, 3:1 -StonebrickSlab, 6 = StoneBrick, 1:1, 2:1, 3:1 - -# Stairs: -WoodStairs, 4 = Planks, 1:1, 1:2, 2:2, 1:3, 2:3, 3:3 -WoodStairs, 4 = Planks, 3:1, 2:2, 3:2, 1:3, 2:3, 3:3 -cobblestoneStairs, 4 = Cobblestone, 1:1, 1:2, 2:2, 1:3, 2:3, 3:3 -cobblestoneStairs, 4 = Cobblestone, 3:1, 2:2, 3:2, 1:3, 2:3, 3:3 -BrickStairs, 4 = BrickBlock, 1:1, 1:2, 2:2, 1:3, 2:3, 3:3 -BrickStairs, 4 = BrickBlock, 3:1, 2:2, 3:2, 1:3, 2:3, 3:3 -SandstoneStairs, 4 = Sandstone, 1:1, 1:2, 2:2, 1:3, 2:3, 3:3 -SandstoneStairs, 4 = Sandstone, 3:1, 2:2, 3:2, 1:3, 2:3, 3:3 -NetherBrickStairs, 4 = NetherBrick, 1:1, 1:2, 2:2, 1:3, 2:3, 3:3 -NetherBrickStairs, 4 = NetherBrick, 3:1, 2:2, 3:2, 1:3, 2:3, 3:3 - -SnowBlock = SnowBall, 1:1, 1:2, 2:1, 2:2 -ClayBlock = Clay, 1:1, 1:2, 2:1, 2:2 -BrickBlock = Brick, 1:1, 1:2, 2:1, 2:2 -StoneBrick, 4 = Stone, 1:1, 1:2, 2:1, 2:2 -BookShelf = Planks, 1:1, 2:1, 3:1, 1:3, 2:3, 3:3 | Book, 1:2, 2:2, 3:2 -Sandstone, 4 = Sand, 1:1, 1:2, 2:1, 2:2 -SmoothSandstone,4= Sandstone, 1:1, 1:2, 2:1, 2:2 -OrnamentSandstone= SandstoneSlab, 1:1, 1:2 -JackOLantern = Pumpkin, 1:1 | Torch, 1:2 - - - - - -#******************************************************# -# Tools -# - -# Axes: -WoodenAxe = Stick, 2:2, 2:3 | Planks, 2:1, *:1, *:2 -StoneAxe = Stick, 2:2, 2:3 | Cobblestone, 2:1, *:1, *:2 -GoldenAxe = Stick, 2:2, 2:3 | GoldIngot, 2:1, *:1, *:2 -IronAxe = Stick, 2:2, 2:3 | IronIngot, 2:1, *:1, *:2 -DiamondAxe = Stick, 2:2, 2:3 | Diamond, 2:1, *:1, *:2 - -# Pickaxes: -WoodenPickaxe = Stick, 2:2, 2:3 | Planks, 1:1, 2:1, 3:1 -StonePickaxe = Stick, 2:2, 2:3 | Cobblestone, 1:1, 2:1, 3:1 -GoldenPickaxe = Stick, 2:2, 2:3 | GoldIngot, 1:1, 2:1, 3:1 -IronPickaxe = Stick, 2:2, 2:3 | IronIngot, 1:1, 2:1, 3:1 -DiamondPickaxe = Stick, 2:2, 2:3 | Diamond, 1:1, 2:1, 3:1 - -# Shovels: -WoodenShovel = Stick, 2:2, 2:3 | Planks, 2:1 -StoneShovel = Stick, 2:2, 2:3 | Cobblestone, 2:1 -GoldenShovel = Stick, 2:2, 2:3 | GoldIngot, 2:1 -IronShovel = Stick, 2:2, 2:3 | IronIngot, 2:1 -DiamondShovel = Stick, 2:2, 2:3 | Diamond, 2:1 - -# Hoes: -WoodenHoe = Stick, 2:2, 2:3 | Planks, 2:1, *:1 -StoneHoe = Stick, 2:2, 2:3 | Cobblestone, 2:1, *:1 -GoldenHoe = Stick, 2:2, 2:3 | GoldIngot, 2:1, *:1 -IronHoe = Stick, 2:2, 2:3 | IronIngot, 2:1, *:1 -DiamondHoe = Stick, 2:2, 2:3 | Diamond, 2:1, *:1 - -Lighter = IronIngot, 1:1 | Flint, 2:2 -Lighter = IronIngot, 2:1 | Flint, 1:2 -Bucket = IronIngot, 1:1, 2:2, 3:1 -Compass = IronIngot, 2:1, 1:2, 3:2, 2:3 | RedstoneDust, 2:2 -Map = Paper, 1:1, 1:2, 1:3, 2:1, 2:3, 3:1, 3:2, 3:3 | Compass, 2:2 -Watch = GoldIngot, 2:1, 1:2, 3:2, 2:3 | RedstoneDust, 2:2 -FishingRod = Stick, 1:3, 2:2, 3:1 | String, 3:2, 3:3 -FishingRod = Stick, 3:3, 2:2, 1:1 | String, 1:2, 1:3 -Shears = IronIngot, 1:1, 2:2 -Shears = IronIngot, 2:1, 1:2 -FireCharge = BlazePowder, * | Coal, * | Gunpowder, * - - - - - -#******************************************************# -# Weapons -# -WoodenSword = Stick, 2:3 | Planks, 2:1, 2:2 -StoneSword = Stick, 2:3 | Cobblestone, 2:1, 2:2 -GoldenSword = Stick, 2:3 | GoldIngot, 2:1, 2:2 -IronSword = Stick, 2:3 | IronIngot, 2:1, 2:2 -DiamondSword = Stick, 2:3 | Diamond, 2:1, 2:2 -Bow = Stick, 2:1, 1:2, 2:3 | String, 3:1, 3:2, 3:3 -Bow = Stick, 2:1, 3:2, 2:3 | String, 1:1, 1:2, 1:3 -Arrow, 4 = Flint, 1:1 | Stick, 1:2 | Feather, 1:3 - - - - - - -#******************************************************# -# Armor -# - -# Helmets: -LeatherHelmet = Leather, 1:1, 2:1, 3:1, 1:2, 3:2 -ChainmailHelmet = Fire, 1:1, 2:1, 3:1, 1:2, 3:2 -GoldenHelmet = GoldIngot, 1:1, 2:1, 3:1, 1:2, 3:2 -IronHelmet = IronIngot, 1:1, 2:1, 3:1, 1:2, 3:2 -DiamondHelmet = Diamond, 1:1, 2:1, 3:1, 1:2, 3:2 - -# Chestplates: -LeatherChestplate = Leather, 1:1, 3:1, 1:2, 2:2, 3:2, 1:3, 2:3, 3:3 -ChainmailChestplate = Fire, 1:1, 3:1, 1:2, 2:2, 3:2, 1:3, 2:3, 3:3 -GoldenChestplate = GoldIngot, 1:1, 3:1, 1:2, 2:2, 3:2, 1:3, 2:3, 3:3 -IronChestplate = IronIngot, 1:1, 3:1, 1:2, 2:2, 3:2, 1:3, 2:3, 3:3 -DiamondChestplate = Diamond, 1:1, 3:1, 1:2, 2:2, 3:2, 1:3, 2:3, 3:3 - -# Leggins: -LeatherPants = Leather, 1:1, 2:1, 3:1, 1:2, 3:2, 1:3, 3:3 -ChainmailPants = Fire, 1:1, 2:1, 3:1, 1:2, 3:2, 1:3, 3:3 -GoldenPants = GoldIngot, 1:1, 2:1, 3:1, 1:2, 3:2, 1:3, 3:3 -IronPants = IronIngot, 1:1, 2:1, 3:1, 1:2, 3:2, 1:3, 3:3 -DiamondPants = Diamond, 1:1, 2:1, 3:1, 1:2, 3:2, 1:3, 3:3 - -# Boots: -LeatherBoots = Leather, 1:1, 3:1, 1:2, 3:2 -ChainmailBoots = Fire, 1:1, 3:1, 1:2, 3:2 -GoldenBoots = GoldIngot, 1:1, 3:1, 1:2, 3:2 -IronBoots = IronIngot, 1:1, 3:1, 1:2, 3:2 -DiamondBoots = Diamond, 1:1, 3:1, 1:2, 3:2 - - - - - -#******************************************************# -# Transportation -# -Minecart = IronIngot, 1:1, 3:1, 1:2, 2:2, 3:2 -PoweredMinecart = Minecart, * | Furnace, * -StorageMinecart = Minecart, * | Chest, * -Rails, 16 = IronIngot, 1:1, 3:1, 1:2, 3:2, 1:3, 3:3 | Stick, 2:2 -PoweredRail, 6 = GoldIngot, 1:1, 3:1, 1:2, 3:2, 1:3, 3:3 | Stick, 2:2 | RedstoneDust, 2:3 -DetectorRail, 6 = IronIngot, 1:1, 3:1, 1:2, 3:2, 1:3, 3:3 | StonePlate, 2:2 | RedstoneDust, 2:3 -Boat = Planks, 1:1, 3:1, 1:2, 2:2, 3:2 - - - - - -#******************************************************# -# Mechanisms -# -WoodenDoor = Planks, 1:1, 1:2, 1:3, 2:1, 2:2, 2:3 -IronDoor = IronIngot, 1:1, 1:2, 1:3, 2:1, 2:2, 2:3 -TrapDoor, 2 = Planks, 1:1, 2:1, 3:1, 1:2, 2:2, 3:2 -WoodPlate = Planks, 1:1, 2:1 -StonePlate = Stone, 1:1, 2:1 -Button = Stone, 1:1, 1:2 -RedstoneTorchOn = Stick, 1:2 | RedstoneDust, 1:1 -Lever = Cobblestone, 1:2 | Stick, 1:1 -NoteBlock = Planks, 1:1, 1:2, 1:3, 2:1, 2:3, 3:1, 3:2, 3:3 | RedstoneDust, 2:2 -Jukebox = Planks, 1:1, 1:2, 1:3, 2:1, 2:3, 3:1, 3:2, 3:3 | Diamond, 2:2 -Dispenser = Cobblestone, 1:1, 1:2, 1:3, 2:1, 3:1, 3:2, 3:3 | RedstoneDust, 2:3 | Bow, 2:2 -Repeater = Stone, 1:2, 2:2, 3:2 | RedstoneTorchOn, 1:1, 3:1 | RedstoneDust, 2:1 -Piston = Planks, 1:1, 2:1, 3:1 | RedstoneDust, 2:2 | Cobblestone, 1:2, 3:2, 1:3, 2:3, 3:3 -StickyPiston = Piston, * | SlimeBall, * -RedstoneLamp = RedstoneDust, 2:1, 1:2, 3:2, 2:3 | Glowstone, 2:2 - - - - - -#******************************************************# -# Food -# -Bowl = Planks, 1:1, 2:2, 3:1 -MushroomStew = Bowl, * | BrownMushroom, * | RedMushroom, * -Bread = Wheat, 1:1, 2:1, 3:1 -Sugar = Sugarcane, * -Cake = MilkBucket, 1:1, 2:1, 3:1 | Sugar, 1:2, 3:2 | Egg, 2:2 | Wheat, 1:3, 2:3, 3:3 -Cookie = Wheat, *, * | CocoaBeans, * -GoldenApple = RedApple, 2:2 | GoldNugget, 1:1, 1:2, 1:3, 2:1, 2:3, 3:1, 3:2, 3:3 -Melon = MelonSlice, 1:1, 1:2, 1:3, 2:1, 2:2, 2:3, 3:1, 3:2, 3:3 -MelonSeeds = MelonSlice, * -PumpkinSeeds, 4 = Pumpkin, * - - - - - -#******************************************************# -# Miscellaneous -# - -# Minerals: -IronIngot, 9 = IronBlock, * -GoldIngot, 9 = GoldBlock, * -Diamond, 9 = DiamondBlock, * -LapisLazuli, 9 = LapisBlock, * - -Painting = Stick, 1:1, 1:2, 1:3, 2:1, 2:3, 3:1, 3:2, 3:3 | Wool, 2:2 -Sign = Planks, 1:1, 2:1, 3:1, 1:2, 2:2, 3:2 | Stick, 2:3 -Ladder, 3 = Stick, 1:1, 3:1, 1:2, 2:2, 3:2, 1:3, 3:3 -GlassPane, 16 = Glass, 1:1, 2:1, 3:1, 1:2, 2:2, 3:2 -IronBars, 16 = IronIngot, 1:1, 2:1, 3:1, 1:2, 2:2, 3:2 -Paper, 3 = Sugarcane, 1:1, 2:1, 3:1 -Book = Paper, 1:1, 1:2, 1:3 -Fence, 2 = Stick, 1:1, 2:1, 3:1, 1:2, 2:2, 3:2 -NetherBrickFence, 6 = NetherBrick, 1:1, 2:1, 3:1, 1:2, 2:2, 3:2 -FenceGate = Stick, 1:1, 1:2, 3:1, 3:2 | Planks, 2:1, 2:2 -Bed = Planks, 1:2, 2:2, 3:2 | Wool, 1:1, 2:1, 3:1 -GoldIngot = GoldNugget, 1:1, 1:2, 1:3, 2:1, 2:2, 2:3, 3:1, 3:2, 3:3 -EyeOfEnder = EnderPearl, * | BlazePowder, * - - - - - -#******************************************************# -# Dyes -# - -WhiteDye, 3 = Bone, * -RedDye, 2 = Rose, * -YellowDye, 2 = Flower, * - -# Color mixing, duals: -OrangeDye, 2 = YellowDye, * | RedDye, * -CyanDye, 2 = GreenDye, * | BlueDye, * -PurpleDye, 2 = RedDye, * | BlueDye, * -GrayDye, 2 = BlackDye, * | WhiteDye, * -LtBlueDye, 2 = BlueDye, * | WhiteDye, * -PinkDye, 2 = RedDye, * | WhiteDye, * -LimeDye, 2 = GreenDye, * | WhiteDye, * -MagentaDye, 2 = PurpleDye, * | PinkDye, * -LtGrayDye, 2 = GrayDye, * | WhiteDye, * - -# triplets: -LtGrayDye, 3 = BlackDye, * | WhiteDye, *, * -MagentaDye, 3 = BlueDye, * | PinkDye, * | RedDye, * - -# quads: -MagentaDye, 4 = BlueDye, * | WhiteDye, * | RedDye, *, * - - - - - -#******************************************************# -# Colored wool: -# -WhiteWool = Wool, * | BoneMeal, * -OrangeWool = Wool, * | OrangeDye, * -MagentaWool = Wool, * | MagentaDye, * -LightBlueWool = Wool, * | LightBlueDye, * -YellowWool = Wool, * | YellowDye, * -LimeWool = Wool, * | LimeDye, * -PinkWool = Wool, * | PinkDye, * -GrayWool = Wool, * | GrayDye, * -LightGrayWool = Wool, * | LightGrayDye, * -CyanWool = Wool, * | CyanDye, * -VioletWool = Wool, * | VioletDye, * -BlueWool = Wool, * | BlueDye, * -BrownWool = Wool, * | BrownDye, * -GreenWool = Wool, * | GreenDye, * -RedWool = Wool, * | RedDye, * -BlackWool = Wool, * | BlackDye, * - - - - - -#******************************************************# -# Enchantment & Brewing -# -GlassBottle, 3 = Glass, 1:1, 2:2, 3:1 -Cauldron = IronIngot, 1:1, 3:1, 1:2, 3:2, 1:3, 2:3, 3:3 -BrewingStand = Cobblestone, 1:2, 2:2, 3:2 | BlazeRod, 2:1 -BlazePowder, 2 = BlazeRod, * -MagmaCream = SlimeBall, * | BlazePowder, * -FermentedSpiderEye = SpiderEye, * | Sugar, * | BrownMushroom, * -GlisteringMelon = MelonSlice, * | GoldNugget, * -GoldNugget, 9 = GoldIngot, * -EnchantmentTable = Obsidian, 1:3, 2:3, 3:3, 2:2 | Diamond, 1:2, 3:2 | Book, 2:1 - - - - - diff --git a/furnace.txt b/furnace.txt deleted file mode 100644 index c8e3cd0c7..000000000 --- a/furnace.txt +++ /dev/null @@ -1,64 +0,0 @@ -#************************** -# Default Furnace Recipes # -#*************************# -# -# -#******************************************************# -# Basic Notation Help -#******************************************************# -# -# **** Item Definition **** -# An Item is defined by an Item ID, an amount (and health) -# The health is optional, and if not specified it's -# assumed to be 0 -# -# -Cactus Green: -# 351 : 1 ( : 2 ) -# ItemID : Amount ( : Health ) -# -# -# **** Recipe and result **** -# -# 4:1@10000=1:1 -> Produces 1 smooth stone from -# 1 cobblestone in 10 second -# -# 4 : 1 @ 10000 = 1 : 1 -# ItemID : Amount @ milliseconds = ItemID : Amount -# -# **** Burnable Materials / Fuel **** -# -# !17:1=15000 -> 1 Wood burns for 15000 milliseconds -# (15 s) -# -# ! 17 : 1 = 15000 -# Fuel ItemID : Amount = milliseconds -# -#******************************************************# - -#-------------------------- -# Let's get cookin' :D - -4:1 @10000=1:1 #-> 1 Cobblestone -> 1 Rock -15:1 @10000=265:1 #-> 1 Iron Ore -> 1 Iron Ingot -14:1 @10000=266:1 #-> 1 Gold Ore -> 1 Gold Ingot -12:1 @10000=20:1 #-> 1 Sand -> 1 Glass -319:1@10000=320:1 #-> 1 Raw Pork -> 1 Cooked Pork -337:1@10000=336:1 #-> 1 Clay -> 1 Clay Brick -349:1@10000=350:1 #-> 1 Raw Fish -> 1 Cooked Fish -17:1 @10000=263:1 #-> 1 Wood -> 1 Charcoal -81:1 @10000=351:1:2 #-> 1 Cactus -> 1 Dye - -#-------------------------- -# Burn baby! Buuurn! - -!263:1 = 80000 #-> 1 Charcoal -> 80 sec -!5:1 = 15000 #-> 1 Planks -> 15 sec -!280:1 = 5000 #-> 1 Stick -> 5 sec -!85:1 = 15000 #-> 1 Fence -> 15 sec -!53:1 = 15000 #-> 1 Wooden Stairs -> 15 sec -!58:1 = 15000 #-> 1 Crafting Table -> 15 sec -!47:1 = 15000 #-> 1 Bookshelf -> 15 sec -!54:1 = 15000 #-> 1 Chest -> 15 sec -!84:1 = 15000 #-> 1 Jukebox -> 15 sec -!327:1 = 1000000 #-> 1 Lava Bucket -> 1000 sec -!17:1 = 15000 #-> 1 Wood -> 15 sec \ No newline at end of file diff --git a/groups.example.ini b/groups.example.ini deleted file mode 100644 index 7f061204b..000000000 --- a/groups.example.ini +++ /dev/null @@ -1,17 +0,0 @@ -[Admins] -Permissions=* -Color=c - -[Mods] -Color=5 -Inherits=Vips -Permissions=core.time,core.item - -[Vips] -Permissions=core.teleport -Color=2 -Inherits=Default - -[Default] -Permissions=core.build,core.help,core.playerlist,core.pluginlist,core.spawn -Color=7 \ No newline at end of file diff --git a/groups.ini b/groups.ini deleted file mode 100644 index 7f061204b..000000000 --- a/groups.ini +++ /dev/null @@ -1,17 +0,0 @@ -[Admins] -Permissions=* -Color=c - -[Mods] -Color=5 -Inherits=Vips -Permissions=core.time,core.item - -[Vips] -Permissions=core.teleport -Color=2 -Inherits=Default - -[Default] -Permissions=core.build,core.help,core.playerlist,core.pluginlist,core.spawn -Color=7 \ No newline at end of file diff --git a/items.ini b/items.ini deleted file mode 100644 index 5b9012521..000000000 --- a/items.ini +++ /dev/null @@ -1,471 +0,0 @@ -[Items] -rock=1 -stone=1 -grass=2 -dirt=3 -cobblestone=4 -cobble=4 -planks=5 -appleplanks=5:0 -oakplanks=5:0 -coniferplanks=5:1 -pineplanks=5:1 -spruceplanks=5:1 -darkplanks=5:1 -birchplanks=5:2 -lightplanks=5:2 -jungleplanks=5:3 -redplanks=5:3 - -; Obsolete: do not use "wood", as its meaning is not clear - wiki uses log as wood, we use planks as wood. -wood=5 - -sapling=6 -applesapling=6:0 -oaksapling=6:0 -conifersapling=6:1 -pinesapling=6:1 -sprucesapling=6:1 -birchsapling=6:2 -junglesapling=6:3 -adminium=7 -bedrock=7 -water=8 -stillwater=9 -swater=9 -lava=10 -stilllava=11 -slava=11 -sand=12 -gravel=13 -goldore=14 -ironore=15 -coalore=16 -tree=17 -log=17 -applelog=17:0 -oaklog=17:0 -coniferlog=17:1 -pinelog=17:1 -sprucelog=17:1 -darklog=17:1 -birchlog=17:2 -whitelog=17:2 -junglelog=17:3 -leaves=18 -appleleaves=18:0 -oakleaves=18:0 -coniferleaves=18:1 -pineleaves=18:1 -spruceleaves=18:1 -birchleaves=18:2 -jungleleaves=18:3 -sponge=19 -glass=20 -lapisore=21 -lapisblock=22 -dispenser=23 -sandstone=24 -normalsandstone=24:0 -ornamentsandstone=24:1 -decorativesandstone=24:1 -smoothsandstone=24:2 -noteblock=25 -bedblock=26 -poweredrail=27 -detectorrail=28 -stickypiston=29 -cobweb=30 -tallgrass=31 -tallgrassone=31:1 -tallgrasstwo=31:2 -deadbush=32 -piston=33 -pistonextension=34 -pistonhead=34 -cloth=35 -wool=35 -whitewool=35:0 -orangewool=35:1 -magentawool=35:2 -lightbluewool=35:3 -yellowwool=35:4 -limewool=35:5 -lightgreenwool=35:5 -ltgreenwool=35:5 -pinkwool=35:6 -graywool=35:7 -greywool=35:7 -darkgraywool=35:7 -darkgreywool=35:7 -dkgraywool=35:7 -dkgreywool=35:7 -lightgraywool=35:8 -lightgreywool=35:8 -ltgraywool=35:8 -ltgreywool=35:8 -cyanwool=35:9 -purplewool=35:10 -violetwool=35:10 -bluewool=35:11 -darkbluewool=35:11 -brownwool=35:12 -greenwool=35:13 -darkgreenwool=35:13 -dkgreenwool=35:13 -redwool=35:14 -blackwool=35:15 -flower=37 -rose=38 -brownmushroom=39 -redmushroom=40 -gold=41 -goldblock=41 -iron=42 -ironblock=42 -doubleslab=43 -stonedoubleslab=43:0 -sandstonedoubleslab=43:1 -wooddoubleslab=43:2 -cobblestonedoubleslab=43:3 -brickdoubleslab=43:4 -stonebrickdoubleslab=43:5 -slab=44 -step=44 -stoneslab=44:0 -sandstoneslab=44:1 -woodslab=44:2 -cobblestoneslab=44:3 -brickslab=44:4 -stonebrickslab=44:5 -brickblock=45 -brickwall=45 -tnt=46 -bookshelf=47 -bookcase=47 -mossycobblestone=48 -mossy=48 -obsidian=49 -torch=50 -fire=51 -mobspawner=52 -woodstairs=53 -chest=54 -redstonedust=55 -redstonewire=55 -diamondore=56 -diamondblock=57 -workbench=58 -crop=59 -crops=59 -soil=60 -furnace=61 -litfurnace=62 -signblock=63 -wooddoorblock=64 -ladder=65 -rails=66 -rail=66 -track=66 -tracks=66 -cobblestonestairs=67 -stairs=67 -signblocktop=68 -wallsign=68 -lever=69 -rockplate=70 -stoneplate=70 -irondoorblock=71 -woodplate=72 -redstoneore=73 -redstoneorealt=74 -redstonetorchoff=75 -redstonetorchon=76 -button=77 -snow=78 -ice=79 -snowblock=80 -cactus=81 -clayblock=82 -reedblock=83 -jukebox=84 -fence=85 -pumpkin=86 -netherstone=87 -netherrack=87 -hellrock=87 -slowsand=88 -soulsand=88 -lightstone=89 -glowstone=89 -portal=90 -jackolantern=91 -jacko=91 -cakeblock=92 -lockedchest=95 -trapdoor=96 -silverfishblock=97 -stonebricks=98 -stonebrick=98 -mossystonebrick=98:1 -crackedstonebrick=98:2 -chiseledstonebrick=98:3 -hugebrownmushroom=99 -hugeredmushroom=100 -ironbars=101 -glasspane=102 -melon=103 -pumpkinstem=104 -melonstem=105 -vines=106 -fencegate=107 -brickstairs=108 -stonebrickstairs=109 -mycelium=110 -lilypad=111 -netherbrick=112 -netherbrickfence=113 -netherbrickstairs=114 -netherwartblock=115 -enchantmenttable=116 -brewingstandblock=117 -cauldronblock=118 -endportal=119 -endportalframe=120 -endstone=121 -dragonegg=122 -redstonelamp=123 -redstonelampoff=123 -redstonelampon=124 -woodendoubleslab=125 -woodenslab=126 -sandstonestairs=128 -ironshovel=256 -ironspade=256 -ironpickaxe=257 -ironpick=257 -ironaxe=258 -flintandsteel=259 -lighter=259 -apple=260 -redapple=260 -bow=261 -arrow=262 -coal=263 -charcoal=263:1 -diamond=264 -ironingot=265 -ironbar=265 -goldingot=266 -goldeningot=266 -goldbar=266 -goldenbar=266 -ironsword=267 -woodensword=268 -woodsword=268 -woodenshovel=269 -woodshovel=269 -woodenspade=269 -woodspade=269 -woodenpickaxe=270 -woodpickaxe=270 -woodenpick=270 -woodpick=270 -woodenaxe=271 -woodaxe=271 -stonesword=272 -stoneshovel=273 -stonespade=273 -stonepickaxe=274 -stonepick=274 -stoneaxe=275 -diamondsword=276 -diamondshovel=277 -diamondspade=277 -diamondpickaxe=278 -diamondpick=278 -diamondaxe=279 -stick=280 -bowl=281 -mushroomstew=282 -bowlwithsoup=282 -soupbowl=282 -soup=282 -goldensword=283 -goldsword=283 -goldenshovel=284 -goldshovel=284 -goldenspade=284 -goldspade=284 -goldenpickaxe=285 -goldpickaxe=285 -goldenpick=285 -goldpick=285 -goldenaxe=286 -goldaxe=286 -string=287 -feather=288 -gunpowder=289 -woodhoe=290 -woodenhoe=290 -stonehoe=291 -ironhoe=292 -diamondhoe=293 -goldhoe=294 -goldenhoe=294 -seeds=295 -wheat=296 -bread=297 -leatherhelmet=298 -leatherchestplate=299 -leatherpants=300 -leatherboots=301 -chainmailhelmet=302 -chainmailchestplate=303 -chainmailpants=304 -chainmailboots=305 -ironhelmet=306 -ironchestplate=307 -ironpants=308 -ironboots=309 -diamondhelmet=310 -diamondchestplate=311 -diamondpants=312 -diamondboots=313 -goldenhelmet=314 -goldhelmet=314 -goldenchestplate=315 -goldchestplate=315 -goldenpants=316 -goldpants=316 -goldenboots=317 -goldboots=317 -flint=318 -meat=319 -pork=319 -cookedmeat=320 -cookedpork=320 -painting=321 -paintings=321 -goldenapple=322 -goldapple=322 -sign=323 -wooddoor=324 -woodendoor=324 -bucket=325 -waterbucket=326 -lavabucket=327 -minecart=328 -saddle=329 -irondoor=330 -redstonedust=331 -snowball=332 -boat=333 -leather=334 -milkbucket=335 -brick=336 -clay=337 -reed=338 -sugarcane=338 -paper=339 -book=340 -slimeorb=341 -slimeball=341 -storageminecart=342 -poweredminecart=343 -egg=344 -compass=345 -fishingrod=346 -watch=347 -lightstonedust=348 -lightdust=348 -glowstonedust=348 -glowdust=348 -rawfish=349 -fish=349 -cookedfish=350 -dye=351 -inksac=351:0 -blackdye=351:0 -reddye=351:1 -rosered=351:1 -greendye=351:2 -cactusgreen=351:2 -cocoabeans=351:3 -browndye=351:3 -lapislazuli=351:4 -bluedye=351:4 -darkbluedye=351:4 -dkbluedye=351:4 -purpledye=351:5 -violetdye=351:5 -cyandye=351:6 -lightgreydye=351:7 -lightgraydye=351:7 -ltgreydye=351:7 -ltgraydye=351:7 -greydye=351:8 -graydye=351:8 -darkgreydye=351:8 -darkgraydye=351:8 -dkgreydye=351:8 -dkgraydye=351:8 -pinkdye=351:9 -limedye=351:10 -lightgreendye=351:10 -ltgreendye=351:10 -dandellionyellow=351:11 -yellowdye=351:11 -lightbluedye=351:12 -ltbluedye=351:12 -magentadye=351:13 -orangedye=351:14 -bonemeal=351:15 -whitedye=351:15 -bone=352 -sugar=353 -cake=354 -bed=355 -repeater=356 -diode=356 -cookie=357 -map=358 -shears=359 -melonslice=360 -pumpkinseeds=361 -melonseeds=362 -rawbeef=363 -steak=364 -rawchicken=365 -cookedchicken=366 -rottenflesh=367 -enderpearl=368 -blazerod=369 -ghasttear=370 -goldnugget=371 -netherwart=372 -potion=373 -glassbottle=374 -spidereye=375 -fermentedspidereye=376 -blazepowder=377 -magmacream=378 -brewingstand=379 -cauldron=380 -eyeofender=381 -glisteringmelon=382 -spawnegg=383 -bottleoenchanting=384 -firecharge=385 -goldrecord=2256 -greenrecord=2257 -blocksrecord=2258 -chirprecord=2259 -farrecord=2260 -mallrecord=2261 -mellohirecord=2262 -stalrecord=2263 -stradrecord=2264 -wardrecord=2265 -11record=2266 - diff --git a/monsters.ini b/monsters.ini deleted file mode 100644 index 6634c5bef..000000000 --- a/monsters.ini +++ /dev/null @@ -1,111 +0,0 @@ -[Spider] -AttackRange=5.0 -AttackRate=1 -AttackDamage=1.0 -SightDistance=25.0 -MaxHealth=10 - -[Chicken] -AttackRange=5.0 -AttackRate=1 -AttackDamage=1.0 -SightDistance=25.0 -MaxHealth=4 - -[Cow] -AttackRange=5.0 -AttackRate=1 -AttackDamage=1.0 -SightDistance=25.0 -MaxHealth=10 - -[Pig] -AttackRange=5.0 -AttackRate=1 -AttackDamage=1.0 -SightDistance=25.0 -MaxHealth=10 - -[Sheep] -AttackRange=5.0 -AttackRate=1 -AttackDamage=1.0 -SightDistance=25.0 -MaxHealth=8 - -[Squid] -AttackRange=5.0 -AttackRate=1 -AttackDamage=1.0 -SightDistance=25.0 -MaxHealth=10 - -[Enderman] -AttackRange=5.0 -AttackRate=1 -AttackDamage=4.0 -SightDistance=25.0 -MaxHealth=40 - -[Zombiepigman] -AttackRange=5.0 -AttackRate=1 -AttackDamage=5.0 -SightDistance=25.0 -MaxHealth=20 - -[Cavespider] -AttackRange=5.0 -AttackRate=1 -AttackDamage=2.0 -SightDistance=25.0 -MaxHealth=12 - -[Creeper] -AttackRange=5.0 -AttackRate=1 -AttackDamage=0.0 -SightDistance=25.0 -MaxHealth=20 - -[Ghast] -AttackRange=5.0 -AttackRate=1 -AttackDamage=0.0 -SightDistance=25.0 -MaxHealth=10 - -[Silverfish] -AttackRange=5.0 -AttackRate=1 -AttackDamage=1.0 -SightDistance=25.0 -MaxHealth=8 - -[Skeleton] -AttackRange=5.0 -AttackRate=1 -AttackDamage=4.0 -SightDistance=25.0 -MaxHealth=20 - -[Slime] -AttackRange=5.0 -AttackRate=1 -AttackDamage=10.0 -SightDistance=25.0 -MaxHealth=32 - -[Spider] -AttackRange=5.0 -AttackRate=1 -AttackDamage=2.0 -SightDistance=25.0 -MaxHealth=16 - -[Zombie] -AttackRange=5.0 -AttackRate=1 -AttackDamage=4.0 -SightDistance=25.0 -MaxHealth=20 \ No newline at end of file diff --git a/settings.example.ini b/settings.example.ini deleted file mode 100644 index bfb16c7e6..000000000 --- a/settings.example.ini +++ /dev/null @@ -1,31 +0,0 @@ -[Server] -Port=25565 -MaxPlayers=42 -Description=MCServer - Slightly more custom! - -[Worlds] -DefaultWorld=world -;World=world_sexy - -[Plugins] -NewPlugin=Core -NewPlugin=ChatLog - -[HelpPlugin] -ShowPluginNames=1 - -[Physics] -Water=0 - -[Redstone] -SimulateRedstone=0 - -[Monsters] -AnimalsOn=0 -AnimalSpawnInterval=10 -Types=Spider,Chicken,Cow,Pig,Sheep,Squid,Enderman,Zombiepigman,Cavespider,Creeper,Ghast,Silverfish,Skeleton,Slime,Spider,Zombie - -[Authentication] -Server=session.minecraft.net -Address=/game/checkserver.jsp?user=%USERNAME%&serverId=%SERVERID% -Authenticate=0 diff --git a/settings.ini b/settings.ini deleted file mode 100644 index b21997f32..000000000 --- a/settings.ini +++ /dev/null @@ -1,33 +0,0 @@ -[Server] -Port=25565 -MaxPlayers=10000 -Description=MCServer - Slightly more custom! - -[Worlds] -;World=world_sexy -DefaultWorld=world - -[Plugins] -NewPlugin=Core -;NewPlugin=Protect -;NewPlugin=MagicCarpet -;NewPlugin=ChatLog - -[HelpPlugin] -ShowPluginNames=1 - -[Physics] -Water=0 - -[Redstone] -SimulateRedstone=0 - -[Monsters] -AnimalsOn=0 -AnimalSpawnInterval=10 -Types=Spider,Chicken,Cow,Pig,Sheep,Squid,Enderman,Zombiepigman,Cavespider,Creeper,Ghast,Silverfish,Skeleton,Slime,Spider,Zombie - -[Authentication] -Server=session.minecraft.net -Address=/game/checkserver.jsp?user=%USERNAME%&serverId=%SERVERID% -Authenticate=0 \ No newline at end of file diff --git a/terrain.ini b/terrain.ini deleted file mode 100644 index a917223f9..000000000 --- a/terrain.ini +++ /dev/null @@ -1,8 +0,0 @@ -[Terrain] -HeightFreq1=0.100000 -HeightFreq2=1.000000 -HeightFreq3=2.000000 -HeightAmp1=1.000000 -HeightAmp2=0.500000 -HeightAmp3=0.500000 - diff --git a/users.example.ini b/users.example.ini deleted file mode 100644 index fae7030f1..000000000 --- a/users.example.ini +++ /dev/null @@ -1,8 +0,0 @@ -[SomeAdmin] -Groups=Admins - -[FancyModerator] -Groups=Moderators - -[ImportantPerson] -Groups=Vips \ No newline at end of file diff --git a/users.ini b/users.ini deleted file mode 100644 index 21a52760f..000000000 --- a/users.ini +++ /dev/null @@ -1,20 +0,0 @@ -[FakeTruth] -Groups=Admins - -[Duralex] -Groups=Admins - -[Luthrandel] -Groups=Admins - -[cruisecho] -Groups=Admins - -[Kwen] -Groups=Admins - -[aloe_vera] -Groups=Admins - -[xoft] -Groups=Admins diff --git a/webadmin.example.ini b/webadmin.example.ini deleted file mode 100644 index 6ecbf7513..000000000 --- a/webadmin.example.ini +++ /dev/null @@ -1,6 +0,0 @@ -[WebAdmin] -Enabled=1 -Port=8080 - -[User:admin] -Password=admin \ No newline at end of file diff --git a/webadmin.ini b/webadmin.ini deleted file mode 100644 index 6ecbf7513..000000000 --- a/webadmin.ini +++ /dev/null @@ -1,6 +0,0 @@ -[WebAdmin] -Enabled=1 -Port=8080 - -[User:admin] -Password=admin \ No newline at end of file diff --git a/webadmin/template.html b/webadmin/template.html deleted file mode 100644 index a607c3f53..000000000 --- a/webadmin/template.html +++ /dev/null @@ -1,376 +0,0 @@ - - - - - -{TITLE} - - - - - - -
- -

{TITLE}

- -
-
- - - - -

Welcome {USERNAME}

- -
-

{PLUGIN_NAME}

- - {CONTENT} - -
- - -
-
- -
- - - -
- - - diff --git a/whitelist.example.ini b/whitelist.example.ini deleted file mode 100644 index eb884dcda..000000000 --- a/whitelist.example.ini +++ /dev/null @@ -1,6 +0,0 @@ -[WhiteListSettings] -WhiteListOn=0 - -[WhiteList] -;PlayerName=1 - -- cgit v1.2.3