public new virtual void RemovePlayer(MiNET.Player player, bool removeFromWorld = false) { //SkyUtil.log($"Attempting to remove {player.Username} from {GameId}"); if (((SkyPlayer)player).GameTeam == null || player.Level != this) { //Run base MiNET code even if our code shouldn't run. base.RemovePlayer(player, removeFromWorld); return; //Shouldn't be in the/any game. } CurrentState.HandleLeave(this, (SkyPlayer)player); if (PlayerTeamDict.TryGetValue(player.Username, out var gameTeam)) { PlayerTeamDict.Remove(player.Username); TeamPlayerDict[gameTeam].Remove((SkyPlayer)player); } //Enforce removing the attached team ((SkyPlayer)player).GameTeam = null; player.RemoveAllEffects(); base.RemovePlayer(player, removeFromWorld); //Remove player from the 'world' }
public void Effect(Player player, string effect) { if ("clear".Equals(effect, StringComparison.InvariantCultureIgnoreCase)) { player.Level.BroadcastMessage($"Removed all effects for {player.Username}.", MessageType.Raw); player.RemoveAllEffects(); } }
public Package RespawnHandler(McpeRespawn packet, Player player) { player.RemoveAllEffects(); player.SetEffect(new Speed { Level = 2, Duration = 1000 }); ////player.SetEffect(new Slowness {Level = 2, Duration = 20}); //player.SetEffect(new JumpBoost { Level = 2, Duration = Effect.MaxDuration }); //player.SetAutoJump(true); if (player.Level.LevelId.Equals("Default")) { player.Level.CurrentWorldTime = 6000; player.Level.IsWorldTimeStarted = false; } player.SendSetTime(); return packet; }
public Package RespawnHandler(McpeRespawn packet, Player player) { SendNameTag(player); player.RemoveAllEffects(); player.SetEffect(new Speed {Level = 1, Duration = Effect.MaxDuration}); // 10s in ticks //player.SetEffect(new Slowness { Level = 20, Duration = 20 * 10 }); //player.SetEffect(new Haste { Level = 20, Duration = 20 * 10 }); //player.SetEffect(new MiningFatigue { Level = 20, Duration = 20 * 10 }); //player.SetEffect(new Strength { Level = 20, Duration = 20 * 10 }); player.SetEffect(new JumpBoost {Level = 1, Duration = Effect.MaxDuration}); //player.SetEffect(new Blindness { Level = 20, Duration = 20 * 10 }); //player.SetAutoJump(true); if (player.Level.LevelId.Equals("Default")) { player.Level.CurrentWorldTime = 6000; player.Level.IsWorldTimeStarted = false; } player.SendSetTime(); return packet; }
public void Effect(Player player, string effect, int level, int duration) { if ("clear".Equals(effect, StringComparison.InvariantCultureIgnoreCase)) { player.Level.BroadcastMessage($"Removed all effects for {player.Username}.", MessageType.Raw); player.RemoveAllEffects(); return; } EffectType effectType; if (Enum.TryParse(effect, true, out effectType)) { Effect eff = null; switch (effectType) { case EffectType.Speed: eff = new Speed(); break; case EffectType.Slowness: eff = new Slowness(); break; case EffectType.Haste: eff = new Haste(); break; case EffectType.MiningFatigue: eff = new MiningFatigue(); break; case EffectType.Strength: eff = new Strength(); break; case EffectType.InstantHealth: eff = new InstantHealth(); break; case EffectType.InstantDamage: eff = new InstantDamage(); break; case EffectType.JumpBoost: eff = new JumpBoost(); break; case EffectType.Nausea: eff = new Nausea(); break; case EffectType.Regeneration: eff = new Regeneration(); break; case EffectType.Resistance: eff = new Resistance(); break; case EffectType.FireResistance: eff = new FireResistance(); break; case EffectType.WaterBreathing: eff = new WaterBreathing(); break; case EffectType.Invisibility: eff = new Invisibility(); break; case EffectType.Blindness: eff = new Blindness(); break; case EffectType.NightVision: eff = new NightVision(); break; case EffectType.Hunger: eff = new Hunger(); break; case EffectType.Weakness: eff = new Weakness(); break; case EffectType.Poison: eff = new Poison(); break; case EffectType.Wither: eff = new Wither(); break; case EffectType.HealthBoost: eff = new HealthBoost(); break; case EffectType.Absorption: eff = new Absorption(); break; case EffectType.Saturation: eff = new Saturation(); break; } if (eff != null) { eff.Level = level; eff.Duration = duration; eff.Particles = false; player.SetEffect(eff); player.Level.BroadcastMessage($"{player.Username} added effect {effectType} with strenght {level}", MessageType.Raw); } } }