From 7e010e7f8fc3983c3bd85fe17da27e06bdb4c7d9 Mon Sep 17 00:00:00 2001 From: faketruth Date: Mon, 3 Oct 2011 19:39:53 +0000 Subject: Setting files Plugins git-svn-id: http://mc-server.googlecode.com/svn/trunk@5 0a769ca7-a7f5-676a-18bf-c427514a06d6 --- Lua-LICENSE.txt | 21 + Plugins/ChatLog.lua | 41 ++ Plugins/Core.lua | 663 ++++++++++++++++++++++++++++ Plugins/Fire.lua | 149 +++++++ Plugins/MagicCarpet.lua | 169 ++++++++ clean.bat | 21 + furnace.txt | 64 +++ groups.ini | 17 + items.ini | 213 +++++++++ makefile | 1108 +++++++++++++++++++++++++++++++++++++++++++++++ monsters.ini | 11 + recipes.txt | 280 ++++++++++++ settings.ini | 24 + terrain.ini | 8 + users.ini | 8 + webadmin.ini | 6 + 16 files changed, 2803 insertions(+) create mode 100644 Lua-LICENSE.txt create mode 100644 Plugins/ChatLog.lua create mode 100644 Plugins/Core.lua create mode 100644 Plugins/Fire.lua create mode 100644 Plugins/MagicCarpet.lua create mode 100644 clean.bat create mode 100644 furnace.txt create mode 100644 groups.ini create mode 100644 items.ini create mode 100644 makefile create mode 100644 monsters.ini create mode 100644 recipes.txt create mode 100644 settings.ini create mode 100644 terrain.ini create mode 100644 users.ini create mode 100644 webadmin.ini diff --git a/Lua-LICENSE.txt b/Lua-LICENSE.txt new file mode 100644 index 000000000..bc4f3973c --- /dev/null +++ b/Lua-LICENSE.txt @@ -0,0 +1,21 @@ +Copyright (C) 1994-2008 Lua.org, PUC-Rio. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR +ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN +ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE +OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/Plugins/ChatLog.lua b/Plugins/ChatLog.lua new file mode 100644 index 000000000..9f86a7086 --- /dev/null +++ b/Plugins/ChatLog.lua @@ -0,0 +1,41 @@ +local ChatLogPlugin = {} +ChatLogPlugin.__index = ChatLogPlugin + +function ChatLogPlugin:new() + local t = {} + setmetatable(t, ChatLogPlugin) + local w = Lua__cPlugin:new() + tolua.setpeer(w, t) + w:tolua__set_instance(w) + return w +end + +function ChatLogPlugin:OnDisable() + Log( self:GetName() .. " v." .. self:GetVersion() .. " is shutting down..." ) +end + +function ChatLogPlugin:Initialize() + self:SetName( "ChatLog" ) + self:SetVersion( 1 ) + + PluginManager = cRoot:Get():GetPluginManager() + PluginManager:AddHook( self, cPluginManager.E_PLUGIN_CHAT ) + + self.Logger = cMCLogger:new_local("ChatLog"..GetTime()..".txt") + self.Logger:LogSimple("--- ChatLog started ---", 1); + + Log( "Initialized " .. self:GetName() .. " v." .. self:GetVersion() ) + return true +end + +function ChatLogPlugin:OnChat( Message, Player ) + Server = cRoot:Get():GetServer() + + -- Lets get loggin' + self.Logger:LogSimple(Player:GetName() .. ": " .. Message, 1); + + return false +end + +Plugin = ChatLogPlugin:new() +cRoot:Get():GetPluginManager():AddPlugin( Plugin ) diff --git a/Plugins/Core.lua b/Plugins/Core.lua new file mode 100644 index 000000000..e124a9261 --- /dev/null +++ b/Plugins/Core.lua @@ -0,0 +1,663 @@ +---- Some settings ----- +SHOW_PLUGIN_NAMES = true -- If true, plugin name will be shown before commands + -- This is overwritten in the Initialize() function +------------------------ + +local BannedPlayersIni = {} +local WhiteListIni = {} + +CorePlugin = {} +CorePlugin.__index = CorePlugin + +function CorePlugin:new() + local t = {} + setmetatable(t, CorePlugin) + local w = Lua__cPlugin:new() + tolua.setpeer(w, t) + w:tolua__set_instance(w) + return w +end + +function CorePlugin:OnDisable() + LOG( self:GetName() .. " v." .. self:GetVersion() .. " is shutting down..." ) +end + +function CorePlugin:Initialize() + self:SetName( "Core" ) + self:SetVersion( 6 ) + + PluginManager = cRoot:Get():GetPluginManager() + PluginManager:AddHook( self, cPluginManager.E_PLUGIN_PLAYER_JOIN ) + PluginManager:AddHook( self, cPluginManager.E_PLUGIN_LOGIN ) + PluginManager:AddHook( self, cPluginManager.E_PLUGIN_BLOCK_PLACE ) + PluginManager:AddHook( self, cPluginManager.E_PLUGIN_KILLED ) + + self:AddCommand("/help", " - [Page] Show this message", "core.help") + self:AddCommand("/pluginlist", " - Show list of plugins", "core.pluginlist") + self:AddCommand("/tp", " - [Player] - Teleport yourself to a player", "core.teleport") + self:AddCommand("/item", " - [ItemID/Name] - Spawn an item for yourself", "core.item") + self:AddCommand("/list", " - Shows list of connected players", "core.playerlist") + self:AddCommand("/motd", " - Show message of the day", "core.motd") + self:AddCommand("/reload", " - Reload all plugins", "core.reload") + self:AddCommand("/time", " - [Day/Night] - Sets the time of day", "core.time") + self:AddCommand("/spawn", " - Return to the spawn", "core.spawn") + self:AddCommand("/kick", " - [Player] - Kick a player", "core.kick") + self:AddCommand("/ban", " - [Player] - Ban a player", "core.ban") + self:AddCommand("/unban", " - [Player] - Unban a player", "core.unban") + self:AddCommand("/top", " - Teleport yourself to the top most block", "core.top") + + self:BindCommand( "/help", "core.help", HandleHelpCommand ) + self:BindCommand( "/pluginlist","core.pluginlist", HandlePluginListCommand ) + self:BindCommand( "/tp", "core.teleport", HandleTPCommand ) + self:BindCommand( "/item", "core.item", HandleItemCommand ) + self:BindCommand( "/i", "core.item", HandleItemCommand ) + self:BindCommand( "/list", "core.playerlist", HandlePlayerListCommand ) + self:BindCommand( "/who", "core.playerlist", HandlePlayerListCommand ) + self:BindCommand( "/playerlist","core.playerlist", HandlePlayerListCommand ) + self:BindCommand( "/motd", "core.motd", HandleMOTDCommand ) + self:BindCommand( "/reload", "core.reload", HandleReloadCommand ) + self:BindCommand( "/time", "core.time", HandleTimeCommand ) + self:BindCommand( "/spawn", "core.spawn", HandleSpawnCommand ) + self:BindCommand( "/home", "core.spawn", HandleSpawnCommand ) + self:BindCommand( "/kick", "core.kick", HandleKickCommand ) + self:BindCommand( "/ban", "core.ban", HandleBanCommand ) + self:BindCommand( "/unban", "core.unban", HandleUnbanCommand ) + self:BindCommand( "/top", "core.top", HandleTopCommand ) + + local IniFile = cIniFile("settings.ini") + if ( IniFile:ReadFile() == true ) then + SHOW_PLUGIN_NAMES = IniFile:GetValueB("HelpPlugin", "ShowPluginNames", true ) + end + + itemsINI = cIniFile("items.ini") + if ( itemsINI:ReadFile() == true ) then + LOGINFO("Core: loaded " .. itemsINI:GetNumValues('Items') .. " item names.") + 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 + + LOG( "Initialized " .. self:GetName() .. " v." .. self:GetVersion() ) + return true +end + +function HandleTopCommand( Split, Player ) + local World = cRoot:Get():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 + +function HandleKickCommand( Split, Player ) + if( #Split < 2 ) then + Player:SendMessage( cChatColor.Green .. "Usage: /kick [Player] " ) + return true + end + + local World = cRoot:Get():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 + +function HandleBanCommand( Split, Player ) + if( #Split < 2 ) then + Player:SendMessage( cChatColor.Green .. "Usage: /ban [Player] " ) + return true + end + + local World = cRoot:Get():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 + +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 + +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 + +function HandleSpawnCommand( Split, Player ) + World = cRoot:Get():GetWorld() + Player:TeleportTo( World:GetSpawnX(), World:GetSpawnY(), World:GetSpawnZ() ) + LOGINFO( Player:GetName() .. " returned to spawn." ) + return true +end + +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 + cRoot:Get():GetWorld():SetWorldTime( 0 ) + Server:SendMessage( cChatColor.Green .. Player:GetName() .. " set the time to Day.") + elseif( string.upper( Split[2] ) == "NIGHT") then + cRoot:Get():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 + +function HandleReloadCommand( Split, Player ) + Server = cRoot:Get():GetServer() + Server:SendMessage( cChatColor.Green .. "Reloading all plugins." ) + cRoot:Get():GetPluginManager():ReloadPlugins() + return true +end + +function HandlePlayerListCommand( Split, Player ) + local World = cRoot:Get():GetWorld() + local PlayerList = World:GetAllPlayers() + + local Message = cChatColor.Green .. "Connected players: (".. cChatColor.White.. #PlayerList .. cChatColor.Green .. ")" + Player:SendMessage( Message ) + + local PlayerTable = {} + for i, TempPlayer in ipairs( PlayerList ) do + local PlayerName = TempPlayer:GetName() + table.insert(PlayerTable, PlayerName ) + end + + Player:SendMessage( table.concat(PlayerTable, " ") ) + return true +end + +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 + +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:" ) + Player:SendMessage( cChatColor.Gold .. table.concat(PluginTable, cChatColor.Gold.." ") ) + return true +end + +function HandleItemCommand( Split, Player ) + if( #Split ~= 2 and #Split ~=3 ) then + Player:SendMessage( cChatColor.Green .. "Usage: /item [ItemID/Name] " ) + return true + end + + foundItem = false + + ItemID = tonumber( Split[2] ) + if( ItemID == nil or not isValidItem( ItemID ) ) then + -- nothing + else + foundItem = true + end + + if not foundItem then + if ( HAVE_ITEM_NAMES == true ) then + itemValue = itemsINI:GetValueI('Items', ''..Split[2]..'', 0) + if itemValue ~= 0 then + ItemID = itemValue + if( ItemID == nil or not isValidItem( tonumber(itemValue) ) ) then + -- nothing + else + foundItem = true + end + end + end + end + + if not foundItem then + Player:SendMessage( cChatColor.Green .. "Invalid Item ID / Name !" ) + return true + end + + local Amount = 1 + if( #Split == 3 ) then + Amount = tonumber( Split[3] ) + if( Amount == nil or Amount < 1 or Amount > 512 ) then + Player:SendMessage( cChatColor.Green .. "Invalid Amount !" ) + return true + end + end + + local NewItem = cItem( ItemID, Amount ) + if( Player:GetInventory():AddItem( NewItem ) == true ) then + Player:SendMessage( cChatColor.Green .. "There you go !" ) + LOG("Gave " .. Player:GetName() .. " " .. Amount .. " times " .. ItemID ) + else + Player:SendMessage( cChatColor.Green .. "Not enough space in inventory !" ) + end + return true +end + +function HandleTPCommand( Split, Player ) + if( #Split ~= 2 ) then + Player:SendMessage( cChatColor.Green .. "Usage: /tp [PlayerName]" ) + return true + end + local World = cRoot:Get():GetWorld() + local OtherPlayer = World:GetPlayer( Split[2] ) + if( OtherPlayer == nil ) then + Player:SendMessage( cChatColor.Green .. "Can't find player " .. Split[2] ) + elseif( OtherPlayer == Player ) then + Player:SendMessage( cChatColor.Green .. "Already there :)" ) + else + Player:TeleportTo( OtherPlayer ) + Player:SendMessage( cChatColor.Green .. "You teleported to "..OtherPlayer:GetName().."!" ) + OtherPlayer:SendMessage( cChatColor.Green .. Player:GetName().." teleported to you!" ) + end + return true +end + +function CorePlugin:OnPlayerJoin( Player ) + ShowMOTDTo( Player ) + return false +end + +function CorePlugin:OnBlockPlace( Block, Player ) + + -- dont check if the direction is in the air + if Block.m_Direction ~= -1 then + + local X = Block.m_PosX + local Y = Block.m_PosY + local Z = Block.m_PosZ + X, Y, Z = AddDirection( X, Y, Z, Block.m_Direction ) + if( Y >= 128 or Y < 0 ) then + return true + end + + local collision = false + local World = cRoot:Get():GetWorld() + local PlayerList = World:GetAllPlayers() + + -- check if a player occupies the placement location + for i, Player in ipairs( PlayerList ) do + + -- 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) + + local BlockX = Block.m_PosX + local BlockY = Block.m_PosY + local BlockZ = Block.m_PosZ + + -- player height is 2 blocks, so we check the position and then offset it up one + -- so they can't place a block on there face + + if Block.m_Direction == 0 then if PlayerY == BlockY-2 and PlayerX == BlockX and PlayerZ == BlockZ then collision = true end end + if Block.m_Direction == 1 then if PlayerY == BlockY+1 and PlayerX == BlockX and PlayerZ == BlockZ then collision = true end end + + if Block.m_Direction == 2 then if PlayerY == BlockY and PlayerX == BlockX and PlayerZ == BlockZ-1 then collision = true end end + if Block.m_Direction == 2 then if PlayerY+1 == BlockY and PlayerX == BlockX and PlayerZ == BlockZ-1 then collision = true end end + + if Block.m_Direction == 3 then if PlayerY == BlockY and PlayerX == BlockX and PlayerZ == BlockZ+1 then collision = true end end + if Block.m_Direction == 3 then if PlayerY+1 == BlockY and PlayerX == BlockX and PlayerZ == BlockZ+1 then collision = true end end + + if Block.m_Direction == 4 then if PlayerY == BlockY and PlayerX == BlockX-1 and PlayerZ == BlockZ then collision = true end end + if Block.m_Direction == 4 then if PlayerY+1 == BlockY and PlayerX == BlockX-1 and PlayerZ == BlockZ then collision = true end end + + if Block.m_Direction == 5 then if PlayerY == BlockY and PlayerX == BlockX+1 and PlayerZ == BlockZ then collision = true end end + if Block.m_Direction == 5 then if PlayerY+1 == BlockY and PlayerX == BlockX+1 and PlayerZ == BlockZ then collision = true end end + + end + + if collision then + return true + else + return false + end + + end + + return false + +end + +function CorePlugin: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 + +function CorePlugin: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 + +Plugin = CorePlugin:new() +cRoot:Get():GetPluginManager():AddPlugin( Plugin ) + +------------------------------------------------ +-- Now some webadmin stuffs! -- +------------------------------------------------ +local PlayerListWeb = {} +PlayerListWeb.__index = PlayerListWeb + +function PlayerListWeb:new() + local t = {} + setmetatable(t, PlayerListWeb) + local w = Lua__cWebPlugin:new() + tolua.setpeer(w, t) + w:tolua__set_instance(w) + return w +end + +function PlayerListWeb:HandleRequest( Request ) + local World = cRoot:Get():GetWorld() + local Content = "" + Content = Content .. "
Connected Players: " .. World:GetNumPlayers() .. "
" + Content = Content .. "
    " + + local PlayerList = World:GetAllPlayers() + for i, Player in ipairs( PlayerList ) do + Content = Content .. "
  • " .. Player:GetName() + end + + Content = Content .. "
" + return Content +end + +WebPlugin = PlayerListWeb:new() +WebPlugin:SetName("PlayerList") + +------------------------------------------------ +-- Reload web plugin -- +------------------------------------------------ +local ReloadWeb = {} +ReloadWeb.__index = ReloadWeb + +function ReloadWeb:new() + local t = {} + setmetatable(t, ReloadWeb) + local w = Lua__cWebPlugin:new() + tolua.setpeer(w, t) + w:tolua__set_instance(w) + return w +end + +function ReloadWeb:HandleRequest( Request ) + local World = cRoot:Get():GetWorld() + local Content = "" + + if( Request.Params:get("reload") ~= "" ) then + Content = Content .. "" + Content = Content .. "
Reloading plugins...
" + cRoot:Get():GetPluginManager():ReloadPlugins() + else + Content = Content .. "
Click the reload button to reload all plugins!
" + Content = Content .. "
" + Content = Content .. "" + Content = Content .. "
" + end + return Content +end + +WebPlugin = ReloadWeb:new() +WebPlugin:SetName("Reload") + +------------------------------------------------ +-- Whitelist web plugin -- +------------------------------------------------ +local WhiteListWeb = {} +WhiteListWeb.__index = WhiteListWeb + +function WhiteListWeb:new() + local t = {} + setmetatable(t, WhiteListWeb) + local w = Lua__cWebPlugin:new() + tolua.setpeer(w, t) + w:tolua__set_instance(w) + return w +end + +local function HTMLDeleteButton( name ) + return "
" +end + +function WhiteListWeb:HandleRequest( Request ) + local World = cRoot:Get():GetWorld() + + local UpdateMessage = "" + if( Request.Params:get("whitelist-add") ~= "" ) then + local PlayerName = Request.Params:get("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.Params:get("whitelist-delete") ~= "" ) then + local PlayerName = Request.Params:get("whitelist-delete") + WhiteListIni:DeleteValue( "WhiteList", PlayerName ) + UpdateMessage = "Removed " .. PlayerName .. " from whitelist." + WhiteListIni:WriteFile() + elseif( Request.Params:get("whitelist-reload") ~= "" ) then + WhiteListIni:Erase() -- Empty entire loaded ini first, otherwise weird shit goes down + WhiteListIni:ReadFile() + UpdateMessage = "Loaded from disk" + end + + + local Content = "" + Content = Content .. "

Whitelisted players

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

Add player to whitelist

" + Content = Content .. "
" + Content = Content .. "" + Content = Content .. "
" + Content = Content .. "
" + Content = Content .. "" + Content = Content .. "
" + Content = Content .. "
"..UpdateMessage + return Content +end + +WebPlugin = WhiteListWeb:new() +WebPlugin:SetName("WhiteList") \ No newline at end of file diff --git a/Plugins/Fire.lua b/Plugins/Fire.lua new file mode 100644 index 000000000..88bff84da --- /dev/null +++ b/Plugins/Fire.lua @@ -0,0 +1,149 @@ +local FirePlugin = {} +FirePlugin.__index = FirePlugin + +FireBlocks = {} + +function FirePlugin:new() + local t = {} + setmetatable(t, FirePlugin) + local w = Lua__cPlugin:new() + tolua.setpeer(w, t) + w:tolua__set_instance(w) + return w +end + +function IsForeverBurnable( BlockID ) + if( BlockID == E_BLOCK_BLOODSTONE ) then + return true + end + return false +end + +function IsBurnable( BlockID ) + if( BlockID == E_BLOCK_LEAVES or BlockID == E_BLOCK_LOG ) then + return true + end + + return false +end + +function FindBurnableAround( X, Y, Z ) + World = cRoot:Get():GetWorld() + + ListBurnables = {} + if( IsBurnable( World:GetBlock(X-1, Y, Z) ) ) then + table.insert( ListBurnables, { ["x"] = X-1, ["y"] = Y, ["z"] = Z } ) + end + if( IsBurnable( World:GetBlock(X+1, Y, Z) ) ) then + table.insert( ListBurnables, { ["x"] = X+1, ["y"] = Y, ["z"] = Z } ) + end + if( IsBurnable( World:GetBlock(X, Y-1, Z) ) ) then + table.insert( ListBurnables, { ["x"] = X, ["y"] = Y-1, ["z"] = Z } ) + end + if( IsBurnable( World:GetBlock(X, Y+1, Z) ) ) then + table.insert( ListBurnables, { ["x"] = X, ["y"] = Y+1, ["z"] = Z } ) + end + if( IsBurnable( World:GetBlock(X, Y, Z-1) ) ) then + table.insert( ListBurnables, { ["x"] = X, ["y"] = Y, ["z"] = Z-1 } ) + end + if( IsBurnable( World:GetBlock(X, Y, Z+1) ) ) then + table.insert( ListBurnables, { ["x"] = X, ["y"] = Y, ["z"] = Z+1 } ) + end + + return ListBurnables +end + +function FirePlugin:OnDisable() + Log( self:GetName() .. " v." .. self:GetVersion() .. " is shutting down..." ) +end + +function FirePlugin:Initialize() + self:SetName( "Fire" ) + self:SetVersion( 1 ) + + PluginManager = cRoot:Get():GetPluginManager() + PluginManager:AddHook( self, cPluginManager.E_PLUGIN_TICK ) + PluginManager:AddHook( self, cPluginManager.E_PLUGIN_BLOCK_PLACE ) + PluginManager:AddHook( self, cPluginManager.E_PLUGIN_BLOCK_DIG ) + + Log( "Initialized " .. self:GetName() .. " v." .. self:GetVersion() ) + return true +end + +function FirePlugin:OnBlockPlace( PacketData, Player ) + + if( PacketData.m_ItemType == E_BLOCK_FIRE or PacketData.m_ItemType == E_ITEM_FLINT_AND_STEEL ) then + if( PacketData.m_Direction > -1 ) then + local X = PacketData.m_PosX + local Y = PacketData.m_PosY + local Z = PacketData.m_PosZ + + X, Y, Z = AddDirection( X, Y, Z, PacketData.m_Direction ) + + --Since flint and steel doesn't do anything on the server side yet + if( PacketData.m_ItemType == E_ITEM_FLINT_AND_STEEL ) then + local World = cRoot:Get():GetWorld() + World:SetBlock( X, Y, Z, E_BLOCK_FIRE, 0 ) + end + + if( not IsForeverBurnable( World:GetBlock( X, Y-1, Z ) ) ) then + table.insert( FireBlocks, { ["x"] = X, ["y"] = Y, ["z"] = Z } ) + end + end + end + + return false -- dont forbid placing the fire +end + +-- To put out fires! :D +function FirePlugin:OnBlockDig( PacketData, Player ) + if( PacketData.m_Direction < 0 ) then + return false + end + + local X = PacketData.m_PosX + local Y = PacketData.m_PosY + local Z = PacketData.m_PosZ + + X, Y, Z = AddDirection( X, Y, Z, PacketData.m_Direction ) + + local World = cRoot:Get():GetWorld() + if( World:GetBlock( X, Y, Z ) == E_BLOCK_FIRE ) then + World:SetBlock( X, Y, Z, E_BLOCK_AIR, 0 ) + end + + return false +end + +NumTicks = 0 +function FirePlugin:Tick( DeltaTime ) + if( NumTicks < 10 ) then -- Only spread every 10 ticks, to make sure it doesnt happen too fast + NumTicks = NumTicks + 1 + return + end + NumTicks = 0 + + World = cRoot:Get():GetWorld() + + NewTable = {} + for key,val in pairs(FireBlocks) do + X = val["x"] + Y = val["y"] + Z = val["z"] + Burnables = FindBurnableAround(X, Y, Z) + if( math.random(10) > 5 ) then + table.insert( NewTable, val ) + elseif( #Burnables > 0 ) then + ToBurn = Burnables[ math.random( #Burnables ) ] + World:SetBlock( ToBurn["x"], ToBurn["y"], ToBurn["z"], E_BLOCK_FIRE, 0 ) + table.insert( NewTable, ToBurn ) + table.insert( NewTable, val ) + else + World:SetBlock( X, Y, Z, 0, 0 ) + end + end + FireBlocks = NewTable +end + +Plugin = FirePlugin:new() +cRoot:Get():GetPluginManager():AddPlugin( Plugin ) diff --git a/Plugins/MagicCarpet.lua b/Plugins/MagicCarpet.lua new file mode 100644 index 000000000..69ccd0d5c --- /dev/null +++ b/Plugins/MagicCarpet.lua @@ -0,0 +1,169 @@ +-- 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 + + +MagicCarpetPlugin = {} +MagicCarpetPlugin.__index = MagicCarpetPlugin + +function MagicCarpetPlugin:new() + local t = {} + setmetatable(t, MagicCarpetPlugin) + local w = Lua__cPlugin:new() + tolua.setpeer(w, t) + w:tolua__set_instance(w) + return w +end + +function MagicCarpetPlugin:Initialize() + self:SetName( "MagicCarpet" ) + self:SetVersion( 1 ) + + PluginManager = cRoot:Get():GetPluginManager() + PluginManager:AddHook( self, cPluginManager.E_PLUGIN_PLAYER_MOVE) + PluginManager:AddHook( self, cPluginManager.E_PLUGIN_DISCONNECT) + + self:AddCommand("/mc", " - Spawns a magical carpet!", "magiccarpet") + self:BindCommand( "/mc", "magiccarpet", HandleCarpetCommand ) + + self.Carpets = {} + + Log( "Initialized " .. self:GetName() .. " v." .. self:GetVersion() ) + return true +end + +function MagicCarpetPlugin:OnDisable() + Log( self:GetName() .. " v." .. self:GetVersion() .. " is shutting down..." ) + for i, Carpet in pairs( self.Carpets ) do + Carpet:remove() + end +end + +function HandleCarpetCommand( Split, Player ) + Carpet = self.Carpets[ Player ] + if( Carpet == nil ) then + self.Carpets[ Player ] = cCarpet:new() + Player:SendMessage("You're on a magic carpet!" ) + else + Carpet:remove() + self.Carpets[ Player ] = nil + Player:SendMessage("The carpet vanished!" ) + end + + return true +end + +function MagicCarpetPlugin:OnDisconnect( Reason, Player ) + local Carpet = self.Carpets[ Player ] + if( Carpet ~= nil ) then + Carpet:remove() + end + self.Carpets[ Player ] = nil +end + +function MagicCarpetPlugin:OnPlayerMove( Player ) + local Carpet = self.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 + Carpet:moveTo( cLocation:new( Player:GetPosX(), Player:GetPosY(), Player:GetPosZ() ) ) + end +end + +Plugin = MagicCarpetPlugin:new() +cRoot:Get():GetPluginManager():AddPlugin( Plugin ) + diff --git a/clean.bat b/clean.bat new file mode 100644 index 000000000..31ed6cc9a --- /dev/null +++ b/clean.bat @@ -0,0 +1,21 @@ +del *.ncb +del *.ilk +del *.lib +del *.exp +del *.map +del *.pdb +del MCServer.exe +del MCServer_debug.exe +del log.txt +del *.bsc +del applog.txt +del *.suo /AH +del *.user +del debug\*.* /Q +del release\*.* /Q +rd release /Q +rd debug /Q + +cd VC2010 +call clean.bat +cd .. \ No newline at end of file diff --git a/furnace.txt b/furnace.txt new file mode 100644 index 000000000..c8e3cd0c7 --- /dev/null +++ b/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/groups.ini b/groups.ini new file mode 100644 index 000000000..2f03bc229 --- /dev/null +++ b/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.help,core.playerlist,core.pluginlist,core.spawn +Color=7 diff --git a/items.ini b/items.ini new file mode 100644 index 000000000..393c5ef77 --- /dev/null +++ b/items.ini @@ -0,0 +1,213 @@ +[Items] +rock=1 +stone=1 +grass=2 +dirt=3 +cobblestone=4 +cobble=4 +wood=5 +sapling=6 +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 +leaves=18 +sponge=19 +glass=20 +cloth=35 +flower=37 +rose=38 +brownmushroom=39 +redmushroom=40 +gold=41 +goldblock=41 +iron=42 +ironblock=42 +doublestair=43 +stair=44 +step=44 +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 +slowsand=88 +lightstone=89 +portal=90 +jackolantern=91 +jacko=91 +ironshovel=256 +ironspade=256 +ironpickaxe=257 +ironpick=257 +ironaxe=258 +flintandsteel=259 +lighter=259 +apple=260 +bow=261 +arrow=262 +coal=263 +diamond=264 +ironbar=265 +goldbar=266 +ironsword=267 +woodsword=268 +woodshovel=269 +woodspade=269 +woodpickaxe=270 +woodpick=270 +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 +bowlwithsoup=282 +soupbowl=282 +soup=282 +goldsword=283 +goldshovel=284 +goldspade=284 +goldpickaxe=285 +goldpick=285 +goldaxe=286 +string=287 +feather=288 +gunpowder=289 +woodhoe=290 +stonehoe=291 +ironhoe=292 +diamondhoe=293 +goldhoe=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 +goldhelmet=314 +goldchestplate=315 +goldpants=316 +goldboots=317 +flint=318 +meat=319 +pork=319 +cookedmeat=320 +cookedpork=320 +painting=321 +paintings=321 +goldenapple=322 +sign=323 +wooddoor=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 +paper=339 +book=340 +slimeorb=341 +storageminecart=342 +poweredminecart=343 +egg=344 +compass=345 +fishingrod=346 +watch=347 +lightstonedust=348 +lightdust=348 +rawfish=349 +fish=349 +cookedfish=350 +goldrecord=2256 +greenrecord=2257 \ No newline at end of file diff --git a/makefile b/makefile new file mode 100644 index 000000000..793221a62 --- /dev/null +++ b/makefile @@ -0,0 +1,1108 @@ +################################################### +# +# Makefile for MCServer +# Creator [Xcode -> Makefile Ver: Feb 14 2007 09:18:41] +# Created: [Thu Feb 24 19:53:17 2011] +# +################################################### + +# +# Macros +# + +CC = /usr/bin/g++ +CC_OPTIONS = -O2 -s +CCE_OPTIONS = -O2 -s -x c +LNK_OPTIONS = -lstdc++ -pthread + + +# +# INCLUDE directories for MCServer +# + +INCLUDE = -I.\ + -Isource\ + -Isource/md5\ + -IWebServer\ + -Isource/packets\ + -Itolua++-1.0.93/src/lib\ + -Ilua-5.1.4/src\ + -Izlib-1.2.5\ + -IiniFile\ + -Itolua++-1.0.93/include\ + -Ijsoncpp-src-0.5.0/include\ + -Ijsoncpp-src-0.5.0/src/lib_json + + +# +# Build MCServer +# + +MCServer : \ + build/json_reader.o\ + build/json_value.o\ + build/json_writer.o\ + build/cMakeDir.o\ + build/cGenSettings.o\ + build/cCuboid.o\ + build/cNoise.o\ + build/cPacket_WindowClick.o\ + build/cPacket_Login.o\ + build/cPacket_Chat.o\ + build/cTimer.o\ + build/cSleep.o\ + build/cPacket_Metadata.o\ + build/cMonsterConfig.o\ + build/cSpider.o\ + build/cThread.o\ + build/cBlockingTCPLink.o\ + build/cAuthenticator.o\ + build/cLuaCommandBinder.o\ + build/cChicken.o\ + build/md5.o\ + build/cReferenceManager.o\ + build/Bindings.o\ + build/cBlockToPickup.o\ + build/cChatColor.o\ + build/cChestEntity.o\ + build/cChunk.o\ + build/cChunkMap.o\ + build/cClientHandle.o\ + build/cCraftingWindow.o\ + build/cCriticalSection.o\ + build/cEntity.o\ + build/cEvent.o\ + build/cFurnaceEntity.o\ + build/cFurnaceRecipe.o\ + build/cFurnaceWindow.o\ + build/cGroup.o\ + build/cGroupManager.o\ + build/cInventory.o\ + build/cLog.o\ + build/cMonster.o\ + build/cPawn.o\ + build/cPickup.o\ + build/cPlayer.o\ + build/cPlugin_Lua.o\ + build/cPlugin.o\ + build/cPluginManager.o\ + build/cRecipeChecker.o\ + build/cRoot.o\ + build/cSemaphore.o\ + build/cServer.o\ + build/cSignEntity.o\ + build/cStringMap.o\ + build/cWebAdmin.o\ + build/cWebPlugin.o\ + build/cWindow.o\ + build/cWorld.o\ + build/main.o\ + build/ManualBindings.o\ + build/Matrix4f.o\ + build/PacketHeader.o\ + build/Vector3d.o\ + build/Vector3f.o\ + build/Vector3i.o\ + build/cHeartBeat.o\ + build/cTCPLink.o\ + build/cMCLogger.o\ + build/cTracer.o\ + build/cPacket_DestroyEntity.o\ + build/cPacket_EntityLook.o\ + build/cPacket_NamedEntitySpawn.o\ + build/cPacket_PlayerPosition.o\ + build/cPacket_RelativeEntityMove.o\ + build/cPacket_RelativeEntityMoveLook.o\ + build/cPacket_Respawn.o\ + build/cPacket_SpawnMob.o\ + build/cPacket_TeleportEntity.o\ + build/cPacket_UpdateHealth.o\ + build/cPacket.o\ + build/base64.o\ + build/Socket.o\ + build/StdHelpers.o\ + build/UrlHelper.o\ + build/WebServer.o\ + build/tolua_event.o\ + build/tolua_is.o\ + build/tolua_map.o\ + build/tolua_push.o\ + build/tolua_to.o\ + build/lapi.o\ + build/lauxlib.o\ + build/lbaselib.o\ + build/lcode.o\ + build/ldblib.o\ + build/ldebug.o\ + build/ldo.o\ + build/ldump.o\ + build/lfunc.o\ + build/lgc.o\ + build/linit.o\ + build/liolib.o\ + build/llex.o\ + build/lmathlib.o\ + build/lmem.o\ + build/loadlib.o\ + build/lobject.o\ + build/lopcodes.o\ + build/loslib.o\ + build/lparser.o\ + build/lstate.o\ + build/lstring.o\ + build/lstrlib.o\ + build/ltable.o\ + build/ltablib.o\ + build/ltm.o\ + build/luac.o\ + build/lundump.o\ + build/lvm.o\ + build/lzio.o\ + build/print.o\ + build/adler32.o\ + build/compress.o\ + build/crc32.o\ + build/deflate.o\ + build/gzclose.o\ + build/gzlib.o\ + build/gzread.o\ + build/gzwrite.o\ + build/infback.o\ + build/inffast.o\ + build/inflate.o\ + build/inftrees.o\ + build/trees.o\ + build/uncompr.o\ + build/zutil.o\ + build/iniFile.o + $(CC) $(LNK_OPTIONS) \ + build/json_reader.o\ + build/json_value.o\ + build/json_writer.o\ + build/cMakeDir.o\ + build/cGenSettings.o\ + build/cCuboid.o\ + build/cNoise.o\ + build/cPacket_WindowClick.o\ + build/cPacket_Login.o\ + build/cPacket_Chat.o\ + build/cTimer.o\ + build/cSleep.o\ + build/cPacket_Metadata.o\ + build/cMonsterConfig.o\ + build/cSpider.o\ + build/cThread.o\ + build/cBlockingTCPLink.o\ + build/cAuthenticator.o\ + build/cLuaCommandBinder.o\ + build/cChicken.o\ + build/md5.o\ + build/cReferenceManager.o\ + build/Bindings.o\ + build/cBlockToPickup.o\ + build/cChatColor.o\ + build/cChestEntity.o\ + build/cChunk.o\ + build/cChunkMap.o\ + build/cClientHandle.o\ + build/cCraftingWindow.o\ + build/cCriticalSection.o\ + build/cEntity.o\ + build/cEvent.o\ + build/cFurnaceEntity.o\ + build/cFurnaceRecipe.o\ + build/cFurnaceWindow.o\ + build/cGroup.o\ + build/cGroupManager.o\ + build/cInventory.o\ + build/cLog.o\ + build/cMonster.o\ + build/cPawn.o\ + build/cPickup.o\ + build/cPlayer.o\ + build/cPlugin_Lua.o\ + build/cPlugin.o\ + build/cPluginManager.o\ + build/cRecipeChecker.o\ + build/cRoot.o\ + build/cSemaphore.o\ + build/cServer.o\ + build/cSignEntity.o\ + build/cStringMap.o\ + build/cWebAdmin.o\ + build/cWebPlugin.o\ + build/cWindow.o\ + build/cWorld.o\ + build/main.o\ + build/ManualBindings.o\ + build/Matrix4f.o\ + build/PacketHeader.o\ + build/Vector3d.o\ + build/Vector3f.o\ + build/Vector3i.o\ + build/cHeartBeat.o\ + build/cTCPLink.o\ + build/cMCLogger.o\ + build/cTracer.o\ + build/cPacket_DestroyEntity.o\ + build/cPacket_EntityLook.o\ + build/cPacket_NamedEntitySpawn.o\ + build/cPacket_PlayerPosition.o\ + build/cPacket_RelativeEntityMove.o\ + build/cPacket_RelativeEntityMoveLook.o\ + build/cPacket_Respawn.o\ + build/cPacket_SpawnMob.o\ + build/cPacket_TeleportEntity.o\ + build/cPacket_UpdateHealth.o\ + build/cPacket.o\ + build/base64.o\ + build/Socket.o\ + build/StdHelpers.o\ + build/UrlHelper.o\ + build/WebServer.o\ + build/tolua_event.o\ + build/tolua_is.o\ + build/tolua_map.o\ + build/tolua_push.o\ + build/tolua_to.o\ + build/lapi.o\ + build/lauxlib.o\ + build/lbaselib.o\ + build/lcode.o\ + build/ldblib.o\ + build/ldebug.o\ + build/ldo.o\ + build/ldump.o\ + build/lfunc.o\ + build/lgc.o\ + build/linit.o\ + build/liolib.o\ + build/llex.o\ + build/lmathlib.o\ + build/lmem.o\ + build/loadlib.o\ + build/lobject.o\ + build/lopcodes.o\ + build/loslib.o\ + build/lparser.o\ + build/lstate.o\ + build/lstring.o\ + build/lstrlib.o\ + build/ltable.o\ + build/ltablib.o\ + build/ltm.o\ + build/luac.o\ + build/lundump.o\ + build/lvm.o\ + build/lzio.o\ + build/print.o\ + build/adler32.o\ + build/compress.o\ + build/crc32.o\ + build/deflate.o\ + build/gzclose.o\ + build/gzlib.o\ + build/gzread.o\ + build/gzwrite.o\ + build/infback.o\ + build/inffast.o\ + build/inflate.o\ + build/inftrees.o\ + build/trees.o\ + build/uncompr.o\ + build/zutil.o\ + build/iniFile.o\ + -o MCServer + +clean : + rm \ + build/json_reader.o\ + build/json_value.o\ + build/json_writer.o\ + build/cMakeDir.o\ + build/cGenSettings.o\ + build/cCuboid.o\ + build/cNoise.o\ + build/cPacket_WindowClick.o\ + build/cPacket_Login.o\ + build/cPacket_Chat.o\ + build/cTimer.o\ + build/cSleep.o\ + build/cPacket_Metadata.o\ + build/cMonsterConfig.o\ + build/cSpider.o\ + build/cThread.o\ + build/cBlockingTCPLink.o\ + build/cAuthenticator.o\ + build/cLuaCommandBinder.o\ + build/cChicken.o\ + build/md5.o\ + build/cReferenceManager.o\ + build/Bindings.o\ + build/cBlockToPickup.o\ + build/cChatColor.o\ + build/cChestEntity.o\ + build/cChunk.o\ + build/cChunkMap.o\ + build/cClientHandle.o\ + build/cCraftingWindow.o\ + build/cCriticalSection.o\ + build/cEntity.o\ + build/cEvent.o\ + build/cFurnaceEntity.o\ + build/cFurnaceRecipe.o\ + build/cFurnaceWindow.o\ + build/cGroup.o\ + build/cGroupManager.o\ + build/cInventory.o\ + build/cLog.o\ + build/cMonster.o\ + build/cPawn.o\ + build/cPickup.o\ + build/cPlayer.o\ + build/cPlugin_Lua.o\ + build/cPlugin.o\ + build/cPluginManager.o\ + build/cRecipeChecker.o\ + build/cRoot.o\ + build/cSemaphore.o\ + build/cServer.o\ + build/cSignEntity.o\ + build/cStringMap.o\ + build/cWebAdmin.o\ + build/cWebPlugin.o\ + build/cWindow.o\ + build/cWorld.o\ + build/main.o\ + build/ManualBindings.o\ + build/Matrix4f.o\ + build/PacketHeader.o\ + build/Vector3d.o\ + build/Vector3f.o\ + build/Vector3i.o\ + build/cHeartBeat.o\ + build/cTCPLink.o\ + build/cMCLogger.o\ + build/cTracer.o\ + build/cPacket_DestroyEntity.o\ + build/cPacket_EntityLook.o\ + build/cPacket_NamedEntitySpawn.o\ + build/cPacket_PlayerPosition.o\ + build/cPacket_RelativeEntityMove.o\ + build/cPacket_RelativeEntityMoveLook.o\ + build/cPacket_Respawn.o\ + build/cPacket_SpawnMob.o\ + build/cPacket_TeleportEntity.o\ + build/cPacket_UpdateHealth.o\ + build/cPacket.o\ + build/base64.o\ + build/Socket.o\ + build/StdHelpers.o\ + build/UrlHelper.o\ + build/WebServer.o\ + build/tolua_event.o\ + build/tolua_is.o\ + build/tolua_map.o\ + build/tolua_push.o\ + build/tolua_to.o\ + build/lapi.o\ + build/lauxlib.o\ + build/lbaselib.o\ + build/lcode.o\ + build/ldblib.o\ + build/ldebug.o\ + build/ldo.o\ + build/ldump.o\ + build/lfunc.o\ + build/lgc.o\ + build/linit.o\ + build/liolib.o\ + build/llex.o\ + build/lmathlib.o\ + build/lmem.o\ + build/loadlib.o\ + build/lobject.o\ + build/lopcodes.o\ + build/loslib.o\ + build/lparser.o\ + build/lstate.o\ + build/lstring.o\ + build/lstrlib.o\ + build/ltable.o\ + build/ltablib.o\ + build/ltm.o\ + build/luac.o\ + build/lundump.o\ + build/lvm.o\ + build/lzio.o\ + build/print.o\ + build/adler32.o\ + build/compress.o\ + build/crc32.o\ + build/deflate.o\ + build/gzclose.o\ + build/gzlib.o\ + build/gzread.o\ + build/gzwrite.o\ + build/infback.o\ + build/inffast.o\ + build/inflate.o\ + build/inftrees.o\ + build/trees.o\ + build/uncompr.o\ + build/zutil.o\ + build/iniFile.o\ + MCServer + +install : MCServer + cp MCServer MCServer + +# +# Build the parts of MCServer +# + + +# Item # 1 -- cLuaCommandBinder -- +build/cLuaCommandBinder.o : source/cLuaCommandBinder.cpp + $(CC) $(CC_OPTIONS) source/cLuaCommandBinder.cpp -c $(INCLUDE) -o build/cLuaCommandBinder.o + + +# Item # 2 -- cChicken -- +build/cChicken.o : source/cChicken.cpp + $(CC) $(CC_OPTIONS) source/cChicken.cpp -c $(INCLUDE) -o build/cChicken.o + + +# Item # 3 -- md5 -- +build/md5.o : source/md5/md5.cpp + $(CC) $(CC_OPTIONS) source/md5/md5.cpp -c $(INCLUDE) -o build/md5.o + + +# Item # 4 -- cReferenceManager -- +build/cReferenceManager.o : source/cReferenceManager.cpp + $(CC) $(CC_OPTIONS) source/cReferenceManager.cpp -c $(INCLUDE) -o build/cReferenceManager.o + + +# Item # 5 -- Bindings -- +build/Bindings.o : source/Bindings.cpp + $(CC) $(CC_OPTIONS) source/Bindings.cpp -c $(INCLUDE) -o build/Bindings.o + + +# Item # 6 -- cBlockToPickup -- +build/cBlockToPickup.o : source/cBlockToPickup.cpp + $(CC) $(CC_OPTIONS) source/cBlockToPickup.cpp -c $(INCLUDE) -o build/cBlockToPickup.o + + +# Item # 7 -- cChatColor -- +build/cChatColor.o : source/cChatColor.cpp + $(CC) $(CC_OPTIONS) source/cChatColor.cpp -c $(INCLUDE) -o build/cChatColor.o + + +# Item # 8 -- cChestEntity -- +build/cChestEntity.o : source/cChestEntity.cpp + $(CC) $(CC_OPTIONS) source/cChestEntity.cpp -c $(INCLUDE) -o build/cChestEntity.o + + +# Item # 9 -- cChunk -- +build/cChunk.o : source/cChunk.cpp + $(CC) $(CC_OPTIONS) source/cChunk.cpp -c $(INCLUDE) -o build/cChunk.o + + +# Item # 10 -- cChunkMap -- +build/cChunkMap.o : source/cChunkMap.cpp + $(CC) $(CC_OPTIONS) source/cChunkMap.cpp -c $(INCLUDE) -o build/cChunkMap.o + + +# Item # 11 -- cClientHandle -- +build/cClientHandle.o : source/cClientHandle.cpp + $(CC) $(CC_OPTIONS) source/cClientHandle.cpp -c $(INCLUDE) -o build/cClientHandle.o + + +# Item # 12 -- cCraftingWindow -- +build/cCraftingWindow.o : source/cCraftingWindow.cpp + $(CC) $(CC_OPTIONS) source/cCraftingWindow.cpp -c $(INCLUDE) -o build/cCraftingWindow.o + + +# Item # 13 -- cCriticalSection -- +build/cCriticalSection.o : source/cCriticalSection.cpp + $(CC) $(CC_OPTIONS) source/cCriticalSection.cpp -c $(INCLUDE) -o build/cCriticalSection.o + + +# Item # 14 -- cEntity -- +build/cEntity.o : source/cEntity.cpp + $(CC) $(CC_OPTIONS) source/cEntity.cpp -c $(INCLUDE) -o build/cEntity.o + + +# Item # 15 -- cEvent -- +build/cEvent.o : source/cEvent.cpp + $(CC) $(CC_OPTIONS) source/cEvent.cpp -c $(INCLUDE) -o build/cEvent.o + + +# Item # 16 -- cFurnaceEntity -- +build/cFurnaceEntity.o : source/cFurnaceEntity.cpp + $(CC) $(CC_OPTIONS) source/cFurnaceEntity.cpp -c $(INCLUDE) -o build/cFurnaceEntity.o + + +# Item # 17 -- cFurnaceRecipe -- +build/cFurnaceRecipe.o : source/cFurnaceRecipe.cpp + $(CC) $(CC_OPTIONS) source/cFurnaceRecipe.cpp -c $(INCLUDE) -o build/cFurnaceRecipe.o + + +# Item # 18 -- cFurnaceWindow -- +build/cFurnaceWindow.o : source/cFurnaceWindow.cpp + $(CC) $(CC_OPTIONS) source/cFurnaceWindow.cpp -c $(INCLUDE) -o build/cFurnaceWindow.o + + +# Item # 19 -- cGroup -- +build/cGroup.o : source/cGroup.cpp + $(CC) $(CC_OPTIONS) source/cGroup.cpp -c $(INCLUDE) -o build/cGroup.o + + +# Item # 20 -- cGroupManager -- +build/cGroupManager.o : source/cGroupManager.cpp + $(CC) $(CC_OPTIONS) source/cGroupManager.cpp -c $(INCLUDE) -o build/cGroupManager.o + + +# Item # 21 -- cInventory -- +build/cInventory.o : source/cInventory.cpp + $(CC) $(CC_OPTIONS) source/cInventory.cpp -c $(INCLUDE) -o build/cInventory.o + + +# Item # 22 -- cLog -- +build/cLog.o : source/cLog.cpp + $(CC) $(CC_OPTIONS) source/cLog.cpp -c $(INCLUDE) -o build/cLog.o + + +# Item # 23 -- cMonster -- +build/cMonster.o : source/cMonster.cpp + $(CC) $(CC_OPTIONS) source/cMonster.cpp -c $(INCLUDE) -o build/cMonster.o + + +# Item # 25 -- cPawn -- +build/cPawn.o : source/cPawn.cpp + $(CC) $(CC_OPTIONS) source/cPawn.cpp -c $(INCLUDE) -o build/cPawn.o + + +# Item # 26 -- cPickup -- +build/cPickup.o : source/cPickup.cpp + $(CC) $(CC_OPTIONS) source/cPickup.cpp -c $(INCLUDE) -o build/cPickup.o + + +# Item # 27 -- cPlayer -- +build/cPlayer.o : source/cPlayer.cpp + $(CC) $(CC_OPTIONS) source/cPlayer.cpp -c $(INCLUDE) -o build/cPlayer.o + + +# Item # 28 -- cPlugin_Lua -- +build/cPlugin_Lua.o : source/cPlugin_Lua.cpp + $(CC) $(CC_OPTIONS) source/cPlugin_Lua.cpp -c $(INCLUDE) -o build/cPlugin_Lua.o + + +# Item # 29 -- cPlugin -- +build/cPlugin.o : source/cPlugin.cpp + $(CC) $(CC_OPTIONS) source/cPlugin.cpp -c $(INCLUDE) -o build/cPlugin.o + + +# Item # 30 -- cPluginManager -- +build/cPluginManager.o : source/cPluginManager.cpp + $(CC) $(CC_OPTIONS) source/cPluginManager.cpp -c $(INCLUDE) -o build/cPluginManager.o + + +# Item # 31 -- cRecipeChecker -- +build/cRecipeChecker.o : source/cRecipeChecker.cpp + $(CC) $(CC_OPTIONS) source/cRecipeChecker.cpp -c $(INCLUDE) -o build/cRecipeChecker.o + + +# Item # 32 -- cRoot -- +build/cRoot.o : source/cRoot.cpp + $(CC) $(CC_OPTIONS) source/cRoot.cpp -c $(INCLUDE) -o build/cRoot.o + + +# Item # 33 -- cSemaphore -- +build/cSemaphore.o : source/cSemaphore.cpp + $(CC) $(CC_OPTIONS) source/cSemaphore.cpp -c $(INCLUDE) -o build/cSemaphore.o + + +# Item # 34 -- cServer -- +build/cServer.o : source/cServer.cpp + $(CC) $(CC_OPTIONS) source/cServer.cpp -c $(INCLUDE) -o build/cServer.o + + +# Item # 35 -- cSignEntity -- +build/cSignEntity.o : source/cSignEntity.cpp + $(CC) $(CC_OPTIONS) source/cSignEntity.cpp -c $(INCLUDE) -o build/cSignEntity.o + + +# Item # 36 -- cStringMap -- +build/cStringMap.o : source/cStringMap.cpp + $(CC) $(CC_OPTIONS) source/cStringMap.cpp -c $(INCLUDE) -o build/cStringMap.o + + +# Item # 37 -- cWebAdmin -- +build/cWebAdmin.o : source/cWebAdmin.cpp + $(CC) $(CC_OPTIONS) source/cWebAdmin.cpp -c $(INCLUDE) -o build/cWebAdmin.o + + +# Item # 38 -- cWebPlugin -- +build/cWebPlugin.o : source/cWebPlugin.cpp + $(CC) $(CC_OPTIONS) source/cWebPlugin.cpp -c $(INCLUDE) -o build/cWebPlugin.o + + +# Item # 39 -- cWindow -- +build/cWindow.o : source/cWindow.cpp + $(CC) $(CC_OPTIONS) source/cWindow.cpp -c $(INCLUDE) -o build/cWindow.o + + +# Item # 40 -- cWorld -- +build/cWorld.o : source/cWorld.cpp + $(CC) $(CC_OPTIONS) source/cWorld.cpp -c $(INCLUDE) -o build/cWorld.o + + +# Item # 41 -- main -- +build/main.o : source/main.cpp + $(CC) $(CC_OPTIONS) source/main.cpp -c $(INCLUDE) -o build/main.o + + +# Item # 42 -- ManualBindings -- +build/ManualBindings.o : source/ManualBindings.cpp + $(CC) $(CC_OPTIONS) source/ManualBindings.cpp -c $(INCLUDE) -o build/ManualBindings.o + + +# Item # 43 -- Matrix4f -- +build/Matrix4f.o : source/Matrix4f.cpp + $(CC) $(CC_OPTIONS) source/Matrix4f.cpp -c $(INCLUDE) -o build/Matrix4f.o + + +# Item # 44 -- PacketHeader -- +build/PacketHeader.o : source/PacketHeader.cpp + $(CC) $(CC_OPTIONS) source/PacketHeader.cpp -c $(INCLUDE) -o build/PacketHeader.o + + +# Item # 45 -- Vector3d -- +build/Vector3d.o : source/Vector3d.cpp + $(CC) $(CC_OPTIONS) source/Vector3d.cpp -c $(INCLUDE) -o build/Vector3d.o + + +# Item # 46 -- Vector3f -- +build/Vector3f.o : source/Vector3f.cpp + $(CC) $(CC_OPTIONS) source/Vector3f.cpp -c $(INCLUDE) -o build/Vector3f.o + + +# Item # 47 -- Vector3i -- +build/Vector3i.o : source/Vector3i.cpp + $(CC) $(CC_OPTIONS) source/Vector3i.cpp -c $(INCLUDE) -o build/Vector3i.o + + +# Item # 48 -- cHeartBeat -- +build/cHeartBeat.o : source/cHeartBeat.cpp + $(CC) $(CC_OPTIONS) source/cHeartBeat.cpp -c $(INCLUDE) -o build/cHeartBeat.o + + +# Item # 49 -- cTCPLink -- +build/cTCPLink.o : source/cTCPLink.cpp + $(CC) $(CC_OPTIONS) source/cTCPLink.cpp -c $(INCLUDE) -o build/cTCPLink.o + + +# Item # 50 -- cMCLogger -- +build/cMCLogger.o : source/cMCLogger.cpp + $(CC) $(CC_OPTIONS) source/cMCLogger.cpp -c $(INCLUDE) -o build/cMCLogger.o + + +# Item # 51 -- cTracer -- +build/cTracer.o : source/cTracer.cpp + $(CC) $(CC_OPTIONS) source/cTracer.cpp -c $(INCLUDE) -o build/cTracer.o + + +# Item # 52 -- cPacket_DestroyEntity -- +build/cPacket_DestroyEntity.o : source/packets/cPacket_DestroyEntity.cpp + $(CC) $(CC_OPTIONS) source/packets/cPacket_DestroyEntity.cpp -c $(INCLUDE) -o build/cPacket_DestroyEntity.o + + +# Item # 53 -- cPacket_EntityLook -- +build/cPacket_EntityLook.o : source/packets/cPacket_EntityLook.cpp + $(CC) $(CC_OPTIONS) source/packets/cPacket_EntityLook.cpp -c $(INCLUDE) -o build/cPacket_EntityLook.o + + +# Item # 54 -- cPacket_NamedEntitySpawn -- +build/cPacket_NamedEntitySpawn.o : source/packets/cPacket_NamedEntitySpawn.cpp + $(CC) $(CC_OPTIONS) source/packets/cPacket_NamedEntitySpawn.cpp -c $(INCLUDE) -o build/cPacket_NamedEntitySpawn.o + + +# Item # 55 -- cPacket_PlayerPosition -- +build/cPacket_PlayerPosition.o : source/packets/cPacket_PlayerPosition.cpp + $(CC) $(CC_OPTIONS) source/packets/cPacket_PlayerPosition.cpp -c $(INCLUDE) -o build/cPacket_PlayerPosition.o + + +# Item # 56 -- cPacket_RelativeEntityMove -- +build/cPacket_RelativeEntityMove.o : source/packets/cPacket_RelativeEntityMove.cpp + $(CC) $(CC_OPTIONS) source/packets/cPacket_RelativeEntityMove.cpp -c $(INCLUDE) -o build/cPacket_RelativeEntityMove.o + + +# Item # 57 -- cPacket_RelativeEntityMoveLook -- +build/cPacket_RelativeEntityMoveLook.o : source/packets/cPacket_RelativeEntityMoveLook.cpp + $(CC) $(CC_OPTIONS) source/packets/cPacket_RelativeEntityMoveLook.cpp -c $(INCLUDE) -o build/cPacket_RelativeEntityMoveLook.o + + +# Item # 58 -- cPacket_Respawn -- +build/cPacket_Respawn.o : source/packets/cPacket_Respawn.cpp + $(CC) $(CC_OPTIONS) source/packets/cPacket_Respawn.cpp -c $(INCLUDE) -o build/cPacket_Respawn.o + + +# Item # 59 -- cPacket_SpawnMob -- +build/cPacket_SpawnMob.o : source/packets/cPacket_SpawnMob.cpp + $(CC) $(CC_OPTIONS) source/packets/cPacket_SpawnMob.cpp -c $(INCLUDE) -o build/cPacket_SpawnMob.o + + +# Item # 60 -- cPacket_TeleportEntity -- +build/cPacket_TeleportEntity.o : source/packets/cPacket_TeleportEntity.cpp + $(CC) $(CC_OPTIONS) source/packets/cPacket_TeleportEntity.cpp -c $(INCLUDE) -o build/cPacket_TeleportEntity.o + + +# Item # 61 -- cPacket_UpdateHealth -- +build/cPacket_UpdateHealth.o : source/packets/cPacket_UpdateHealth.cpp + $(CC) $(CC_OPTIONS) source/packets/cPacket_UpdateHealth.cpp -c $(INCLUDE) -o build/cPacket_UpdateHealth.o + + +# Item # 62 -- cPacket -- +build/cPacket.o : source/packets/cPacket.cpp + $(CC) $(CC_OPTIONS) source/packets/cPacket.cpp -c $(INCLUDE) -o build/cPacket.o + + +# Item # 63 -- base64 -- +build/base64.o : WebServer/base64.cpp + $(CC) $(CC_OPTIONS) WebServer/base64.cpp -c $(INCLUDE) -o build/base64.o + + +# Item # 64 -- Socket -- +build/Socket.o : WebServer/Socket.cpp + $(CC) $(CC_OPTIONS) WebServer/Socket.cpp -c $(INCLUDE) -o build/Socket.o + + +# Item # 65 -- StdHelpers -- +build/StdHelpers.o : WebServer/StdHelpers.cpp + $(CC) $(CC_OPTIONS) WebServer/StdHelpers.cpp -c $(INCLUDE) -o build/StdHelpers.o + + +# Item # 66 -- UrlHelper -- +build/UrlHelper.o : WebServer/UrlHelper.cpp + $(CC) $(CC_OPTIONS) WebServer/UrlHelper.cpp -c $(INCLUDE) -o build/UrlHelper.o + + +# Item # 67 -- WebServer -- +build/WebServer.o : WebServer/WebServer.cpp + $(CC) $(CC_OPTIONS) WebServer/WebServer.cpp -c $(INCLUDE) -o build/WebServer.o + + +# Item # 68 -- tolua_event -- +build/tolua_event.o : tolua++-1.0.93/src/lib/tolua_event.c + $(CC) $(CCE_OPTIONS) tolua++-1.0.93/src/lib/tolua_event.c -c $(INCLUDE) -o build/tolua_event.o + + +# Item # 69 -- tolua_is -- +build/tolua_is.o : tolua++-1.0.93/src/lib/tolua_is.c + $(CC) $(CCE_OPTIONS) tolua++-1.0.93/src/lib/tolua_is.c -c $(INCLUDE) -o build/tolua_is.o + + +# Item # 70 -- tolua_map -- +build/tolua_map.o : tolua++-1.0.93/src/lib/tolua_map.c + $(CC) $(CCE_OPTIONS) tolua++-1.0.93/src/lib/tolua_map.c -c $(INCLUDE) -o build/tolua_map.o + + +# Item # 71 -- tolua_push -- +build/tolua_push.o : tolua++-1.0.93/src/lib/tolua_push.c + $(CC) $(CCE_OPTIONS) tolua++-1.0.93/src/lib/tolua_push.c -c $(INCLUDE) -o build/tolua_push.o + + +# Item # 72 -- tolua_to -- +build/tolua_to.o : tolua++-1.0.93/src/lib/tolua_to.c + $(CC) $(CCE_OPTIONS) tolua++-1.0.93/src/lib/tolua_to.c -c $(INCLUDE) -o build/tolua_to.o + + +# Item # 73 -- lapi -- +build/lapi.o : lua-5.1.4/src/lapi.c + $(CC) $(CCE_OPTIONS) lua-5.1.4/src/lapi.c -c $(INCLUDE) -o build/lapi.o + + +# Item # 74 -- lauxlib -- +build/lauxlib.o : lua-5.1.4/src/lauxlib.c + $(CC) $(CCE_OPTIONS) lua-5.1.4/src/lauxlib.c -c $(INCLUDE) -o build/lauxlib.o + + +# Item # 75 -- lbaselib -- +build/lbaselib.o : lua-5.1.4/src/lbaselib.c + $(CC) $(CCE_OPTIONS) lua-5.1.4/src/lbaselib.c -c $(INCLUDE) -o build/lbaselib.o + + +# Item # 76 -- lcode -- +build/lcode.o : lua-5.1.4/src/lcode.c + $(CC) $(CCE_OPTIONS) lua-5.1.4/src/lcode.c -c $(INCLUDE) -o build/lcode.o + + +# Item # 77 -- ldblib -- +build/ldblib.o : lua-5.1.4/src/ldblib.c + $(CC) $(CCE_OPTIONS) lua-5.1.4/src/ldblib.c -c $(INCLUDE) -o build/ldblib.o + + +# Item # 78 -- ldebug -- +build/ldebug.o : lua-5.1.4/src/ldebug.c + $(CC) $(CCE_OPTIONS) lua-5.1.4/src/ldebug.c -c $(INCLUDE) -o build/ldebug.o + + +# Item # 79 -- ldo -- +build/ldo.o : lua-5.1.4/src/ldo.c + $(CC) $(CCE_OPTIONS) lua-5.1.4/src/ldo.c -c $(INCLUDE) -o build/ldo.o + + +# Item # 80 -- ldump -- +build/ldump.o : lua-5.1.4/src/ldump.c + $(CC) $(CCE_OPTIONS) lua-5.1.4/src/ldump.c -c $(INCLUDE) -o build/ldump.o + + +# Item # 81 -- lfunc -- +build/lfunc.o : lua-5.1.4/src/lfunc.c + $(CC) $(CCE_OPTIONS) lua-5.1.4/src/lfunc.c -c $(INCLUDE) -o build/lfunc.o + + +# Item # 82 -- lgc -- +build/lgc.o : lua-5.1.4/src/lgc.c + $(CC) $(CCE_OPTIONS) lua-5.1.4/src/lgc.c -c $(INCLUDE) -o build/lgc.o + + +# Item # 83 -- linit -- +build/linit.o : lua-5.1.4/src/linit.c + $(CC) $(CCE_OPTIONS) lua-5.1.4/src/linit.c -c $(INCLUDE) -o build/linit.o + + +# Item # 84 -- liolib -- +build/liolib.o : lua-5.1.4/src/liolib.c + $(CC) $(CCE_OPTIONS) lua-5.1.4/src/liolib.c -c $(INCLUDE) -o build/liolib.o + + +# Item # 85 -- llex -- +build/llex.o : lua-5.1.4/src/llex.c + $(CC) $(CCE_OPTIONS) lua-5.1.4/src/llex.c -c $(INCLUDE) -o build/llex.o + + +# Item # 86 -- lmathlib -- +build/lmathlib.o : lua-5.1.4/src/lmathlib.c + $(CC) $(CCE_OPTIONS) lua-5.1.4/src/lmathlib.c -c $(INCLUDE) -o build/lmathlib.o + + +# Item # 87 -- lmem -- +build/lmem.o : lua-5.1.4/src/lmem.c + $(CC) $(CCE_OPTIONS) lua-5.1.4/src/lmem.c -c $(INCLUDE) -o build/lmem.o + + +# Item # 88 -- loadlib -- +build/loadlib.o : lua-5.1.4/src/loadlib.c + $(CC) $(CCE_OPTIONS) lua-5.1.4/src/loadlib.c -c $(INCLUDE) -o build/loadlib.o + + +# Item # 89 -- lobject -- +build/lobject.o : lua-5.1.4/src/lobject.c + $(CC) $(CCE_OPTIONS) lua-5.1.4/src/lobject.c -c $(INCLUDE) -o build/lobject.o + + +# Item # 90 -- lopcodes -- +build/lopcodes.o : lua-5.1.4/src/lopcodes.c + $(CC) $(CCE_OPTIONS) lua-5.1.4/src/lopcodes.c -c $(INCLUDE) -o build/lopcodes.o + + +# Item # 91 -- loslib -- +build/loslib.o : lua-5.1.4/src/loslib.c + $(CC) $(CCE_OPTIONS) lua-5.1.4/src/loslib.c -c $(INCLUDE) -o build/loslib.o + + +# Item # 92 -- lparser -- +build/lparser.o : lua-5.1.4/src/lparser.c + $(CC) $(CCE_OPTIONS) lua-5.1.4/src/lparser.c -c $(INCLUDE) -o build/lparser.o + + +# Item # 93 -- lstate -- +build/lstate.o : lua-5.1.4/src/lstate.c + $(CC) $(CCE_OPTIONS) lua-5.1.4/src/lstate.c -c $(INCLUDE) -o build/lstate.o + + +# Item # 94 -- lstring -- +build/lstring.o : lua-5.1.4/src/lstring.c + $(CC) $(CCE_OPTIONS) lua-5.1.4/src/lstring.c -c $(INCLUDE) -o build/lstring.o + + +# Item # 95 -- lstrlib -- +build/lstrlib.o : lua-5.1.4/src/lstrlib.c + $(CC) $(CCE_OPTIONS) lua-5.1.4/src/lstrlib.c -c $(INCLUDE) -o build/lstrlib.o + + +# Item # 96 -- ltable -- +build/ltable.o : lua-5.1.4/src/ltable.c + $(CC) $(CCE_OPTIONS) lua-5.1.4/src/ltable.c -c $(INCLUDE) -o build/ltable.o + + +# Item # 97 -- ltablib -- +build/ltablib.o : lua-5.1.4/src/ltablib.c + $(CC) $(CCE_OPTIONS) lua-5.1.4/src/ltablib.c -c $(INCLUDE) -o build/ltablib.o + + +# Item # 98 -- ltm -- +build/ltm.o : lua-5.1.4/src/ltm.c + $(CC) $(CCE_OPTIONS) lua-5.1.4/src/ltm.c -c $(INCLUDE) -o build/ltm.o + + +# Item # 99 -- luac -- +build/luac.o : lua-5.1.4/src/luac.c + $(CC) $(CCE_OPTIONS) lua-5.1.4/src/luac.c -c $(INCLUDE) -o build/luac.o + + +# Item # 100 -- lundump -- +build/lundump.o : lua-5.1.4/src/lundump.c + $(CC) $(CCE_OPTIONS) lua-5.1.4/src/lundump.c -c $(INCLUDE) -o build/lundump.o + + +# Item # 101 -- lvm -- +build/lvm.o : lua-5.1.4/src/lvm.c + $(CC) $(CCE_OPTIONS) lua-5.1.4/src/lvm.c -c $(INCLUDE) -o build/lvm.o + + +# Item # 102 -- lzio -- +build/lzio.o : lua-5.1.4/src/lzio.c + $(CC) $(CCE_OPTIONS) lua-5.1.4/src/lzio.c -c $(INCLUDE) -o build/lzio.o + + +# Item # 103 -- print -- +build/print.o : lua-5.1.4/src/print.c + $(CC) $(CCE_OPTIONS) lua-5.1.4/src/print.c -c $(INCLUDE) -o build/print.o + + +# Item # 104 -- adler32 -- +build/adler32.o : zlib-1.2.5/adler32.c + $(CC) $(CCE_OPTIONS) zlib-1.2.5/adler32.c -c $(INCLUDE) -o build/adler32.o + + +# Item # 105 -- compress -- +build/compress.o : zlib-1.2.5/compress.c + $(CC) $(CCE_OPTIONS) zlib-1.2.5/compress.c -c $(INCLUDE) -o build/compress.o + + +# Item # 106 -- crc32 -- +build/crc32.o : zlib-1.2.5/crc32.c + $(CC) $(CCE_OPTIONS) zlib-1.2.5/crc32.c -c $(INCLUDE) -o build/crc32.o + + +# Item # 107 -- deflate -- +build/deflate.o : zlib-1.2.5/deflate.c + $(CC) $(CCE_OPTIONS) zlib-1.2.5/deflate.c -c $(INCLUDE) -o build/deflate.o + + +# Item # 108 -- gzclose -- +build/gzclose.o : zlib-1.2.5/gzclose.c + $(CC) $(CCE_OPTIONS) zlib-1.2.5/gzclose.c -c $(INCLUDE) -o build/gzclose.o + + +# Item # 109 -- gzlib -- +build/gzlib.o : zlib-1.2.5/gzlib.c + $(CC) $(CCE_OPTIONS) zlib-1.2.5/gzlib.c -c $(INCLUDE) -o build/gzlib.o + + +# Item # 110 -- gzread -- +build/gzread.o : zlib-1.2.5/gzread.c + $(CC) $(CCE_OPTIONS) zlib-1.2.5/gzread.c -c $(INCLUDE) -o build/gzread.o + + +# Item # 111 -- gzwrite -- +build/gzwrite.o : zlib-1.2.5/gzwrite.c + $(CC) $(CCE_OPTIONS) zlib-1.2.5/gzwrite.c -c $(INCLUDE) -o build/gzwrite.o + + +# Item # 112 -- infback -- +build/infback.o : zlib-1.2.5/infback.c + $(CC) $(CCE_OPTIONS) zlib-1.2.5/infback.c -c $(INCLUDE) -o build/infback.o + + +# Item # 113 -- inffast -- +build/inffast.o : zlib-1.2.5/inffast.c + $(CC) $(CCE_OPTIONS) zlib-1.2.5/inffast.c -c $(INCLUDE) -o build/inffast.o + + +# Item # 114 -- inflate -- +build/inflate.o : zlib-1.2.5/inflate.c + $(CC) $(CCE_OPTIONS) zlib-1.2.5/inflate.c -c $(INCLUDE) -o build/inflate.o + + +# Item # 115 -- inftrees -- +build/inftrees.o : zlib-1.2.5/inftrees.c + $(CC) $(CCE_OPTIONS) zlib-1.2.5/inftrees.c -c $(INCLUDE) -o build/inftrees.o + + +# Item # 116 -- trees -- +build/trees.o : zlib-1.2.5/trees.c + $(CC) $(CCE_OPTIONS) zlib-1.2.5/trees.c -c $(INCLUDE) -o build/trees.o + + +# Item # 117 -- uncompr -- +build/uncompr.o : zlib-1.2.5/uncompr.c + $(CC) $(CCE_OPTIONS) zlib-1.2.5/uncompr.c -c $(INCLUDE) -o build/uncompr.o + + +# Item # 118 -- zutil -- +build/zutil.o : zlib-1.2.5/zutil.c + $(CC) $(CCE_OPTIONS) zlib-1.2.5/zutil.c -c $(INCLUDE) -o build/zutil.o + + +# Item # 119 -- iniFile -- +build/iniFile.o : iniFile/iniFile.cpp + $(CC) $(CC_OPTIONS) iniFile/iniFile.cpp -c $(INCLUDE) -o build/iniFile.o + +# Item # 120 --Authenticator -- +build/cAuthenticator.o: source/cAuthenticator.cpp + $(CC) $(CC_OPTIONS) source/cAuthenticator.cpp -c $(INCLUDE) -o build/cAuthenticator.o + +build/cBlockingTCPLink.o: source/cBlockingTCPLink.cpp + $(CC) $(CC_OPTIONS) source/cBlockingTCPLink.cpp -c $(INCLUDE) -o build/cBlockingTCPLink.o + +build/cThread.o: source/cThread.cpp + $(CC) $(CC_OPTIONS) source/cThread.cpp -c $(INCLUDE) -o build/cThread.o + +build/cSpider.o: source/cSpider.cpp + $(CC) $(CC_OPTIONS) source/cSpider.cpp -c $(INCLUDE) -o build/cSpider.o + +build/cMonsterConfig.o: source/cMonsterConfig.cpp + $(CC) $(CC_OPTIONS) source/cMonsterConfig.cpp -c $(INCLUDE) -o build/cMonsterConfig.o + +build/cPacket_Metadata.o: source/packets/cPacket_Metadata.cpp + $(CC) $(CC_OPTIONS) source/packets/cPacket_Metadata.cpp -c $(INCLUDE) -o build/cPacket_Metadata.o + +build/cSleep.o: source/cSleep.cpp + $(CC) $(CC_OPTIONS) source/cSleep.cpp -c $(INCLUDE) -o build/cSleep.o + +build/cTimer.o: source/cTimer.cpp + $(CC) $(CC_OPTIONS) source/cTimer.cpp -c $(INCLUDE) -o build/cTimer.o + +build/cPacket_Chat.o : source/packets/cPacket_Chat.cpp + $(CC) $(CC_OPTIONS) source/packets/cPacket_Chat.cpp -c $(INCLUDE) -o build/cPacket_Chat.o + +build/cPacket_Login.o : source/packets/cPacket_Login.cpp + $(CC) $(CC_OPTIONS) source/packets/cPacket_Login.cpp -c $(INCLUDE) -o build/cPacket_Login.o + +build/cPacket_WindowClick.o : source/packets/cPacket_WindowClick.cpp + $(CC) $(CC_OPTIONS) source/packets/cPacket_WindowClick.cpp -c $(INCLUDE) -o build/cPacket_WindowClick.o + +build/cNoise.o : source/cNoise.cpp + $(CC) $(CC_OPTIONS) source/cNoise.cpp -c $(INCLUDE) -o build/cNoise.o + +build/cCuboid.o : source/cCuboid.cpp + $(CC) $(CC_OPTIONS) source/cCuboid.cpp -c $(INCLUDE) -o build/cCuboid.o + +build/cGenSettings.o : source/cGenSettings.cpp + $(CC) $(CC_OPTIONS) source/cGenSettings.cpp -c $(INCLUDE) -o build/cGenSettings.o + +build/json_reader.o : jsoncpp-src-0.5.0/src/lib_json/json_reader.cpp + $(CC) $(CC_OPTIONS) jsoncpp-src-0.5.0/src/lib_json/json_reader.cpp -c $(INCLUDE) -o build/json_reader.o + +build/json_value.o : jsoncpp-src-0.5.0/src/lib_json/json_value.cpp + $(CC) $(CC_OPTIONS) jsoncpp-src-0.5.0/src/lib_json/json_value.cpp -c $(INCLUDE) -o build/json_value.o + +build/json_writer.o : jsoncpp-src-0.5.0/src/lib_json/json_writer.cpp + $(CC) $(CC_OPTIONS) jsoncpp-src-0.5.0/src/lib_json/json_writer.cpp -c $(INCLUDE) -o build/json_writer.o + +build/cMakeDir.o : source/cMakeDir.cpp + $(CC) $(CC_OPTIONS) source/cMakeDir.cpp -c $(INCLUDE) -o build/cMakeDir.o +##### END RUN #### diff --git a/monsters.ini b/monsters.ini new file mode 100644 index 000000000..b04eb2c21 --- /dev/null +++ b/monsters.ini @@ -0,0 +1,11 @@ +[Spider] +AttackRange=5.0 +AttackRate=1 +AttackDamage=1.0 +SightDistance=25.0 + +[Chicken] +AttackRange=5.0 +AttackRate=1 +AttackDamage=1.0 +SightDistance=25.0 diff --git a/recipes.txt b/recipes.txt new file mode 100644 index 000000000..896c54283 --- /dev/null +++ b/recipes.txt @@ -0,0 +1,280 @@ +#*************************** +# Default Crafting Recipes # +#**************************# +# # +# Coded by: FakeTruth # +# Written by: Aelux # +# # +#**************************# +# +# +# +#******************************************************# +# Basic Notation Help +#******************************************************# +# +# 1x1,1:1:17:1@5:4 -> Produces 4 Planks +# +# +# --How does the above notation work? +# +# Ans- Think about the crafting table as coordiantes +# on a graph where you have an "X" axis and a +# "Y" axis. The "X" is the horizantle axis and +# the "Y" is the vertical axis. +# +# Syntax- x,x:y::@: +# +# +# +#--------------------Basic EXAMPLE---------------------#---------------Grid Abstraction EXAMPLE------------------# +# +# Example- 3x3,2:3:280:8@5:2 # Example- 1x1,1:1:280:8@5:2 +# +# Recipe- w=3,h=3,x=2,y=3,Item=Stick,Amount=8 # Recipe- w=1,h=1,x=1,y=1,Item=Stick,Amount=8 +# Result- 2 Wood Planks (2 of ItemID 5) Result- 2 Wood Planks (2 of ItemID 5) +# # +# Table grid is set to 3 by 3 (O = empty,+ = full) Table grid is set to 1 by 1 (O = empty,+ = full) +# ----- # --- +# OOO + +# OOO # +# O+O --How does the above example compare to the Basic +# # example? +# --How does the above example work? +# # Ans- This means, you can place a stack of 8 sticks +# Ans- This means, if you place a stack of 8 sticks ANYwhere a 1x1 grid can fit. Obviously since a 1x1 +# at that exact location on the Work Bench, # grid is a single slot, it can be abstracted to fill +# which is a 3x3 grid, you will recieve 2 Wood any single slot on any size grid. +# Planks PER 8 sticks. # +# There are 9 positions for the 1x1 grid in the +# # work bench (3x3) and 4 positions within the +# inventory grid (2x2). +#******************************************************#******************************************************** + + + + + +# +# B a s i c C r a f t s +# +# +1x1,1:1:17:1@5:4 #-> 4 Planks +1x2,*:*:5:1@280:4 #-> 4 Sticks +2x2,*:*:5:1@58:1 #-> Crafting bench +3x3,2:2:5:-1@54:1 #-> Chest +3x3,2:2:4:-1@61:1 #-> Furnace +1x2,1:1:263:1,1:2:280:1@50:4 #-> Torch +#******************************************************# + + + + + +# +# F o o d +# +# +3x1,*:3:296:1@297:1 #-> Bread +3x2,1:2:5:1,3:2:5:1,2:3:5:1@281:4 #-> Bowl +1x3,1:1:49:1,1:2:48:1,1:3:281:1@282:1 #-> Mushroom Stew +3x3,2:2:41:-1,2:2:260:1@322:1 #-> Golden Apple +#******************************************************# + + + + + +# +# U t i l i t i e s +# +# +3x2,1:2:265:1,2:3:265:1@325:1 #-> Bucket +1x2,1:1:265:1,1:2:318:1@259:1 #-> Lighter +3x3,1:3:280:1,2:2:280:1,3:1:280:1,3:2:287:1,3:3:287:1@346:1 #-> Fishing Rod +3x3,1:2:265:1,2:1:265:1,2:2:331:1,3:2:265:1,2:3:265:1@345:1 #-> Compass +3x3,1:2:266:1,2:1:266:1,2:2:331:1,3:2:266:1,2:3:266:1@345:1 #-> Watch +3x3,1:*:287:1,2:1:280:1,3:2:280:1,2:3:280:1@261:1 #-> Bow +1x3,1:1:318:1,1:2:280:1,1:3:288:1@262:4 #-> Arrow +2x3,*:*:5:1@64:1 #-> Wooden Door +3x3,*:1:280:-1@85:2 #-> Fence +3x3,1:*:280:1,3:*:280:1,2:2:280:1@65:1 #-> Ladder +3x2,*:*:5:1,2:3:280:1@323:1 #-> Sign +#******************************************************# +# +# T r a v e l U t i l i t i e s +# +# +3x3,1:*:265:1,3:*:265:1,2:2:280:1@66:16 #-> Rails +3x2,1:2:265:1,3:2:265:1,*:3:265:1@328:1 #-> Minecart +1x2,1:1:61:1,1:2:328:1@343:1 #-> Powered Minecart +1x2,1:1:54:1,1:2:328:1@342:1 #-> Storage Minecart +3x2,1:2:5:1,3:2:5:1,*:3:5:1@333:1 #-> Boat +#******************************************************# +# +# C o n t r o l U t i l i t i e s +# +# +1x2,1:1:331:1,1:2:280:1@76:1 #-> Redstone Torch +1x2,1:1:280:1,1:2:4:1@69:1 #-> Lever +2x1,*:*:5:1@72:1 #-> Wooden Preassure Plate +2x1,*:*:4:1@70:1 #-> Stone Preassure Plate +1x2,1:1:1:1,1:2:1:1@77:1 #-> Button +2x3,*:*:265:1@71:1 #-> Iron Door +#******************************************************# + + + + + +# +# M a t e r i a l B l o c k s +# +# +3x3,*:*:265:1@42:1 #-> Iron +3x3,*:*:266:1@41:1 #-> Gold +3x3,*:*:264:1@57:1 #-> Diamond +2x2,*:*:287:1@35:1 #-> Cloth +2x2,*:*:337:1@82:1 #-> Clay +2x2,*:*:336:1@45:1 #-> Brick +2x2,*:*:341:1@80:1 #-> Snow +#******************************************************# +# +# S p e c i a l B l o c k s +# +# +3x1,*:*:1:1@44:3 #-> Stone Step +3x3,*:3:5:1,1:1:5:1,1:2:5:1,2:2:5:1@53:4 #-> Wood Stairs +3x3,*:3:4:1,1:1:4:1,1:2:4:1,2:2:4:1@67:4 #-> Cobblestone Stairs +3x3,1:1:289:1,3:1:289:1,2:2:289:1,1:3:289:1,3:3:289:1,2:1:12:1,1:2:12:1,3:2:12:1,2:3:12:1@46:1 #-> TNT +3x3,2:2:5:-1,2:2:264:1@84:1 #-> Jukebox +3x3,*:*:348:1@89:1 #-> Light Stone +#******************************************************# +# +# B l o c k T o I n g o t +# +# +1x1,1:1:42:1@265:9 #-> Iron +1x1,1:1:41:1@266:9 #-> Gold +1x1,1:1:57:1@264:9 #-> Diamond +#******************************************************# + + + + + +# +# S h o v e l +# +# +1x3,1:1:5:1,1:2:280:1,1:3:280:1@269:1 #-> Wooden +1x3,1:1:4:1,1:2:280:1,1:3:280:1@273:1 #-> Stone +1x3,1:1:266:1,1:2:280:1,1:3:280:1@284:1 #-> Gold +1x3,1:1:265:1,1:2:280:1,1:3:280:1@256:1 #-> Iron +1x3,1:1:264:1,1:2:280:1,1:3:280:1@277:1 #-> Diamond +#******************************************************# +# +# P i c k a x e +# +# +3x3,*:1:5:1,2:2:280:1,2:3:280:1@270:1 #-> Wooden +3x3,*:1:4:1,2:2:280:1,2:3:280:1@274:1 #-> Stone +3x3,*:1:266:1,2:2:280:1,2:3:280:1@285:1 #-> Gold +3x3,*:1:265:1,2:2:280:1,2:3:280:1@257:1 #-> Iron +3x3,*:1:264:1,2:2:280:1,2:3:280:1@278:1 #-> Diamond +#******************************************************# +# +# A x e +# +# +2x2,2:2:5:-1,2:2:280:1,2:3:280:1@271:1 #-> Wooden (L) +2x2,1:2:5:-1,1:2:280:1,1:3:280:1@271:1 #-> Wooden (R) +2x2,2:2:4:-1,2:2:280:1,2:3:280:1@275:1 #-> Stone (L) +2x2,1:2:4:-1,1:2:280:1,1:3:280:1@275:1 #-> Stone (R) +2x2,2:2:256:-1,2:2:280:1,2:3:280:1@258:1#-> Iron (L) +2x2,1:2:256:-1,1:2:280:1,1:3:280:1@258:1#-> Iron (R) +2x2,2:2:264:-1,2:2:280:1,2:3:280:1@279:1#-> Diamond (L) +2x2,1:2:264:-1,1:2:280:1,1:3:280:1@279:1#-> Diamond (R) +#******************************************************# +# +# S w o r d +# +# +1x2,*:*:5:1,1:3:280:1@268:1 #-> Wooden +1x2,*:*:4:1,1:3:280:1@272:1 #-> Stone +1x2,*:*:266:1,1:3:280:1@283:1 #-> Gold +1x2,*:*:265:1,1:3:280:1@267:1 #-> Iron +1x2,*:*:264:1,1:3:280:1@276:1 #-> Diamond +#******************************************************# +# +# H o e +# +# +2x1,*:*:5:1,2:2:280:1,2:3:280:1@290:1 #-> Wooden (L) +2x1,*:*:5:1,1:2:280:1,1:3:280:1@290:1 #-> Wooden (R) +2x1,*:*:4:1,2:2:280:1,2:3:280:1@291:1 #-> Stone (L) +2x1,*:*:4:1,1:2:280:1,1:3:280:1@291:1 #-> Stone (R) +2x1,*:*:266:1,2:2:280:1,2:3:280:1@294:1 #-> Gold (L) +2x1,*:*:266:1,1:2:280:1,1:3:280:1@294:1 #-> Gold (R) +2x1,*:*:265:1,2:2:280:1,2:3:280:1@292:1 #-> Iron (L) +2x1,*:*:265:1,1:2:280:1,1:3:280:1@292:1 #-> Iron (R) +2x1,*:*:264:1,2:2:280:1,2:3:280:1@293:1 #-> Diamond (L) +2x1,*:*:264:1,1:2:280:1,1:3:280:1@293:1 #-> Diamond (R) +#******************************************************# + + + + + +# +# L e a t h e r A r m o r +# +# +3x2,2:2:334:-1@298:1 #-> Helmet +3x3,2:1:334:-1@299:1 #-> Chest Piece +3x3,1:*:334:1,3:*:334:1,2:1:334:1@300:1 #-> Leggings +3x2,2:*:334:-1@301:1 #-> Boots +#*******************************************************# +# +# G o l d A r m o r +# +# +3x2,2:2:266:-1@314:1 #-> Helmet +3x3,2:1:266:-1@315:1 #-> Chest Piece +3x3,1:*:266:1,3:*:266:1,2:1:266:1@316:1 #-> Leggings +3x2,2:*:266:-1@317:1 #-> Boots +#*******************************************************# +# +# I r o n A r m o r +# +# +3x2,2:2:265:-1@306:1 #-> Helmet +3x3,2:1:265:-1@307:1 #-> Chest Piece +3x3,1:*:265:1,3:*:265:1,2:1:265:1@308:1 #-> Leggings +3x2,2:*:265:-1@309:1 #-> Boots +#*******************************************************# +# +# D i a m o n d A r m o r +# +# +3x2,2:2:264:-1@310:1 #-> Helmet +3x3,2:1:264:-1@311:1 #-> Chest Piece +3x3,1:*:264:1,3:*:264:1,2:1:264:1@312:1 #-> Leggings +3x2,2:*:264:-1@313:1 #-> Boots +#*******************************************************# + + + + + + +# +# D e c o r a t i v e +# +# +3x1,*:3:338:1@339:3 #-> Paper +1x3,2:*:338:1@340:1 #-> Book +3x3,*:1:5:1,*:2:349:1,*:3:5:1@47:1 #-> Book Shelf +3x3,2:2:280:-1,2:2:35:1@321:1 #-> Painting +1x2,1:1:86:1,1:2:50:1@91:1 #-> Jack-O-Lantern +#*******************************************************# \ No newline at end of file diff --git a/settings.ini b/settings.ini new file mode 100644 index 000000000..9952dfb5a --- /dev/null +++ b/settings.ini @@ -0,0 +1,24 @@ +[Server] +Port=25565 +ServerID=- + +[Plugins] +Plugin=Core +Plugin=Fire +Plugin=MagicCarpet + +[HelpPlugin] +ShowPluginNames=1 + +[Physics] +Water=0 + +[Monsters] +AnimalsOn=1 +AnimalSpawnInterval=5 +Types=Chicken,Spider + +[Authentication] +Server=www.minecraft.net +Address=/game/checkserver.jsp?user=%USERNAME%&serverId=%SERVERID% +Authenticate=0 diff --git a/terrain.ini b/terrain.ini new file mode 100644 index 000000000..a917223f9 --- /dev/null +++ b/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/users.ini b/users.ini new file mode 100644 index 000000000..f17f399a8 --- /dev/null +++ b/users.ini @@ -0,0 +1,8 @@ +[FakeTruth] +Groups=Admins + +[Duralex] +Groups=Admins + +[Player] +Groups=Admins diff --git a/webadmin.ini b/webadmin.ini new file mode 100644 index 000000000..6ecbf7513 --- /dev/null +++ b/webadmin.ini @@ -0,0 +1,6 @@ +[WebAdmin] +Enabled=1 +Port=8080 + +[User:admin] +Password=admin \ No newline at end of file -- cgit v1.2.3