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