summaryrefslogtreecommitdiffstats
path: root/MCServer/Plugins/Core/worldlimiter.lua
blob: 1bb1b4fc68dbd84ba2d09ce234dbc9a5971d0d41 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
function OnPlayerMoving( Player )
	LimitWorldWidth = WorldsWorldLimit[Player:GetWorld():GetName()]
	if LimitWorldWidth > 0 then
		local World = Player:GetWorld()
		local SpawnX = math.floor(World:GetSpawnX() / 16)
		local SpawnZ = math.floor(World:GetSpawnZ() / 16)
		local X = math.floor(Player:GetPosX() / 16)
		local Z = math.floor(Player:GetPosZ() / 16)
		if ( (SpawnX + LimitWorldWidth - 1) < X ) then 
			Player:TeleportToCoords(Player:GetPosX() - 1, Player:GetPosY(), Player:GetPosZ()) 
		end
		if ( (SpawnX - LimitWorldWidth + 1) > X ) then
			Player:TeleportToCoords(Player:GetPosX() + 1, Player:GetPosY(), Player:GetPosZ()) 
		end
		if ( (SpawnZ + LimitWorldWidth - 1) < Z ) then 
			Player:TeleportToCoords(Player:GetPosX(), Player:GetPosY(), Player:GetPosZ() - 1) 
		end
		if ( (SpawnZ - LimitWorldWidth + 1) > Z ) then
			Player:TeleportToCoords(Player:GetPosX(), Player:GetPosY(), Player:GetPosZ() + 1) 
		end
	end
end