public void method_1(object sender, ElapsedEventArgs e) { Zones.PlayerWarp(this.netUser_0, this.userData_0, this.worldZone_0); }
public static void OnPlayerMove(NetUser netUser, ref Vector3 newpos, ref TruthDetector.ActionTaken taken) { Predicate <EventTimer> predicate = null; ElapsedEventHandler elapsedEventHandler = null; Zones.Class56 @class = new Zones.Class56(); @class.netUser_0 = netUser; if (@class.netUser_0 != null && !(@class.netUser_0.playerClient == null) && !(@class.netUser_0.playerClient.controllable == null)) { Vector3 position = @class.netUser_0.playerClient.controllable.character.transform.position; if (!(position == newpos)) { if (position.x != newpos.x || position.z != newpos.z) { @class.userData_0 = Users.GetBySteamID(@class.netUser_0.userID); if (@class.userData_0 != null) { if ([email protected]_0.HasFlag(UserFlags.onevent)) { @class.userData_0.Position = newpos; } @class.worldZone_0 = Zones.Get(newpos); if (@class.userData_0.Zone != @class.worldZone_0) { EventTimer eventTimer = null; if (@class.userData_0.Zone != null) { List <EventTimer> timer = Events.Timer; if (predicate == null) { predicate = new Predicate <EventTimer>(@class.method_0); } eventTimer = timer.Find(predicate); } if (eventTimer != null) { Broadcast.Notice(@class.netUser_0, "☢", Config.GetMessageTeleport("Player.WarpZone.Interrupt", @class.netUser_0, @class.userData_0.Zone, null), 2f); eventTimer.Dispose(); } if (@class.userData_0.Zone != null) { if (@class.userData_0.Zone.NoLeave && [email protected]_0.admin && (@class.worldZone_0 == null || [email protected]_0.Zone.Internal.Contains(@class.worldZone_0))) { newpos = position; taken = (TruthDetector.ActionTaken) 2; return; } if (!string.IsNullOrEmpty(@class.userData_0.Zone.Notice_OnLeave)) { Broadcast.Notice(@class.netUser_0, "☢", @class.userData_0.Zone.Notice_OnLeave, 5f); } string[] message_OnLeave = @class.userData_0.Zone.Message_OnLeave; for (int i = 0; i < message_OnLeave.Length; i++) { string text = message_OnLeave[i]; Broadcast.Message(@class.netUser_0, text, null, 0f); } } if (@class.worldZone_0 != null) { if (@class.worldZone_0.NoEnter && [email protected]_0.admin && (@class.userData_0.Zone == null || [email protected]_0.Internal.Contains(@class.userData_0.Zone))) { newpos = position; taken = (TruthDetector.ActionTaken) 2; return; } if (!string.IsNullOrEmpty(@class.worldZone_0.Notice_OnEnter)) { Broadcast.Notice(@class.netUser_0, "☢", @class.worldZone_0.Notice_OnEnter, 5f); } string[] message_OnEnter = @class.worldZone_0.Message_OnEnter; for (int j = 0; j < message_OnEnter.Length; j++) { string text2 = message_OnEnter[j]; Broadcast.Message(@class.netUser_0, text2, null, 0f); } } @class.userData_0.Zone = @class.worldZone_0; if (@class.worldZone_0 != null && @class.worldZone_0.WarpZone != null && @class.worldZone_0.WarpZone.Spawns.Count > 0) { if (@class.worldZone_0.WarpTime > 0L) { eventTimer = new EventTimer { Interval = (double)(@class.worldZone_0.WarpTime * 1000L), AutoReset = false }; Timer timer2 = eventTimer; if (elapsedEventHandler == null) { elapsedEventHandler = new ElapsedEventHandler(@class.method_1); } timer2.Elapsed += elapsedEventHandler; eventTimer.Sender = @class.netUser_0; eventTimer.Command = @class.worldZone_0.Defname; eventTimer.Start(); Broadcast.Notice(@class.netUser_0, "☢", Config.GetMessageTeleport("Player.WarpZone.Start", @class.netUser_0, @class.worldZone_0, null), 2f); } else { Zones.PlayerWarp(@class.netUser_0, @class.userData_0, @class.worldZone_0); } } } } } } } }