diff options
author | faketruth <faketruth@0a769ca7-a7f5-676a-18bf-c427514a06d6> | 2012-08-20 14:20:20 +0200 |
---|---|---|
committer | faketruth <faketruth@0a769ca7-a7f5-676a-18bf-c427514a06d6> | 2012-08-20 14:20:20 +0200 |
commit | 12906c026d414c752d3c0ba9481f425b24b29c67 (patch) | |
tree | d64298334a68275e0d7c22c9dfb0e82c95654f83 /MCServer/Plugins/MagicCarpet/plugin.lua | |
parent | Window, Chest, Furnace and Pawn are not using cPackets at all (diff) | |
download | cuberite-12906c026d414c752d3c0ba9481f425b24b29c67.tar cuberite-12906c026d414c752d3c0ba9481f425b24b29c67.tar.gz cuberite-12906c026d414c752d3c0ba9481f425b24b29c67.tar.bz2 cuberite-12906c026d414c752d3c0ba9481f425b24b29c67.tar.lz cuberite-12906c026d414c752d3c0ba9481f425b24b29c67.tar.xz cuberite-12906c026d414c752d3c0ba9481f425b24b29c67.tar.zst cuberite-12906c026d414c752d3c0ba9481f425b24b29c67.zip |
Diffstat (limited to 'MCServer/Plugins/MagicCarpet/plugin.lua')
-rw-r--r-- | MCServer/Plugins/MagicCarpet/plugin.lua | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/MCServer/Plugins/MagicCarpet/plugin.lua b/MCServer/Plugins/MagicCarpet/plugin.lua new file mode 100644 index 000000000..22604c9d9 --- /dev/null +++ b/MCServer/Plugins/MagicCarpet/plugin.lua @@ -0,0 +1,65 @@ +local PLUGIN = {}
+local Carpets = {}
+
+function Initialize( Plugin )
+ PLUGIN = Plugin
+
+ Plugin:SetName( "MagicCarpet" )
+ Plugin:SetVersion( 1 )
+
+ PluginManager = cRoot:Get():GetPluginManager()
+ PluginManager:AddHook( Plugin, cPluginManager.E_PLUGIN_PLAYER_MOVE)
+ PluginManager:AddHook( Plugin, cPluginManager.E_PLUGIN_DISCONNECT)
+
+ Plugin:AddCommand("/mc", " - Spawns a magical carpet!", "magiccarpet")
+ Plugin:BindCommand( "/mc", "magiccarpet", HandleCarpetCommand )
+
+ Log( "Initialized " .. Plugin:GetName() .. " v." .. Plugin:GetVersion() )
+ return true
+end
+
+function OnDisable()
+ Log( PLUGIN:GetName() .. " v." .. PLUGIN:GetVersion() .. " is shutting down..." )
+ for i, Carpet in pairs( Carpets ) do
+ Carpet:remove()
+ end
+end
+
+function HandleCarpetCommand( Split, Player )
+ Carpet = Carpets[ Player ]
+ if( Carpet == nil ) then
+ Carpets[ Player ] = cCarpet:new()
+ Player:SendMessage("You're on a magic carpet!" )
+ else
+ Carpet:remove()
+ Carpets[ Player ] = nil
+ Player:SendMessage("The carpet vanished!" )
+ end
+
+ return true
+end
+
+function OnDisconnect( Reason, Player )
+ local Carpet = Carpets[ Player ]
+ if( Carpet ~= nil ) then
+ Carpet:remove()
+ end
+ Carpets[ Player ] = nil
+end
+
+function OnPlayerMove( Player )
+ local Carpet = Carpets[ Player ]
+ if( Carpet == nil ) then
+ return
+ end
+
+ if( Player:GetPitch() == 90 ) then
+ Carpet:moveTo( cLocation:new( Player:GetPosX(), Player:GetPosY()-1, Player:GetPosZ() ) )
+ else
+ if( Player:GetPosY() < Carpet:getY() ) then
+ LOGINFO("Fell tru mc!")
+ Player:TeleportTo( Player:GetPosX(), Carpet:getY(), Player:GetPosZ() )
+ end
+ Carpet:moveTo( cLocation:new( Player:GetPosX(), Player:GetPosY(), Player:GetPosZ() ) )
+ end
+end
\ No newline at end of file |