Example #1
0
        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();
                }
            }
        }
Example #2
0
 /// <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");
             }
         }
     }
 }
Example #3
0
 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();
         }
     }
 }
Example #4
0
 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());
             }
         }
     }
 }
Example #5
0
 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)));
             }
         }
     }
 }
Example #6
0
        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);
            }
        }