static void PlayerChangedWorld(object sender, PlayerJoinedWorldEventArgs e) { if (e.OldWorld == null) { return; } if (e.NewWorld == world) { if (!BlueTeam.Has(e.Player) && !RedTeam.Has(e.Player)) { ChooseTeamFor(e.Player, e.NewWorld); } } else if (e.OldWorld == world) { RemovePlayer(e.Player, e.OldWorld); if (BlueTeam.Count + RedTeam.Count == 0) { e.Player.Message("You were the last player in the game, and thus, the game has ended."); Stop(); } } }
/// <summary> /// Event: Manages a player changing world /// </summary> private void OnChangedWorld(object sender, PlayerJoinedWorldEventArgs e) { if (e.OldWorld != null) { if (e.OldWorld.gameMode == GameMode.ZombieSurvival && e.NewWorld != e.OldWorld) { if (e.Player.iName != null) { RevertPlayerName(e.Player); } } else if (e.OldWorld.gameMode != GameMode.ZombieSurvival && e.NewWorld.gameMode == GameMode.ZombieSurvival) { if (e.NewWorld.Players.Where(p => p.iName == _zomb).Count() > 0) { e.Player.iName = _zomb; e.Player.entityChanged = true; e.Player.Message("&WYou arrived late, so you are " + _zomb); } if (e.Player.IsUsingWoM) { e.Player.Message("&HUsing WoM? Be sure to turn off hacks"); } } } }
public static void PlayerJoiningWorld(object sender, PlayerJoinedWorldEventArgs e) { foreach (FeedData data in e.NewWorld.Feeds.Values.Where(f => !f.started)) { if (data.world.Name == e.NewWorld.Name) { data.Start(); } } }
public void OnPlayerJoined(object sender, PlayerJoinedWorldEventArgs args) { lock ( _lock ) { if (args.NewWorld != args.OldWorld) { if (_world == args.NewWorld) { _tracker.AddPlayer(args.Player, args.Player.Position.ToBlockCoords()); } } } }
public static void WorldChanging(object sender, PlayerJoinedWorldEventArgs e) { if (e.OldWorld != null) { if (e.OldWorld != e.NewWorld && e.NewWorld.GameOn) { if (!e.NewWorld.blueTeam.Contains(e.Player) && !e.NewWorld.redTeam.Contains(e.Player)) { TeamChooser(e.Player, e.NewWorld); } } else if (e.OldWorld.GameOn && e.OldWorld != e.NewWorld) { teamRemover(e.Player, e.OldWorld); e.Player.GunMode = false; foreach (Vector3I block in e.Player.GunCache.Values) { e.Player.Send(PacketWriter.MakeSetBlock(block, world.Map.GetBlock(block))); } } } }
public static void ChangedWorld(object sender, PlayerJoinedWorldEventArgs e) { try { if (e.OldWorld == null) { return; } if (e.OldWorld.Name == e.NewWorld.Name) { e.Player.orangeOld.Clear(); e.Player.orangePortal.Clear(); e.Player.blueOld.Clear(); e.Player.bluePortal.Clear(); } if (e.OldWorld.IsLoaded) { Map map = e.OldWorld.Map; if (e.Player.orangePortal.Count > 0) { int i = 0; foreach (Vector3I block in e.Player.orangePortal) { map?.QueueUpdate(new BlockUpdate(null, block, e.Player.orangeOld[i])); i++; } e.Player.orangeOld.Clear(); e.Player.orangePortal.Clear(); } if (e.Player.bluePortal.Count <= 0) { return; } { int i = 0; foreach (Vector3I block in e.Player.bluePortal) { map?.QueueUpdate(new BlockUpdate(null, block, e.Player.blueOld[i])); i++; } e.Player.blueOld.Clear(); e.Player.bluePortal.Clear(); } } else { if (e.Player.bluePortal.Count > 0) { if (e.OldWorld.Map != null) { e.OldWorld.Map.Blocks[e.OldWorld.Map.Index(e.Player.bluePortal[0])] = (byte)e.Player.blueOld[0]; e.OldWorld.Map.Blocks[e.OldWorld.Map.Index(e.Player.bluePortal[1])] = (byte)e.Player.blueOld[1]; } e.Player.blueOld.Clear(); e.Player.bluePortal.Clear(); } if (e.Player.orangePortal.Count <= 0) { return; } if (e.OldWorld.Map != null) { e.OldWorld.Map.Blocks[e.OldWorld.Map.Index(e.Player.orangePortal[0])] = (byte)e.Player.orangeOld[0]; e.OldWorld.Map.Blocks[e.OldWorld.Map.Index(e.Player.orangePortal[1])] = (byte)e.Player.orangeOld[1]; } e.Player.orangeOld.Clear(); e.Player.orangePortal.Clear(); } } catch (Exception ex) { Logger.Log(LogType.SeriousError, "GunPortalChangeWorld: " + ex); } }