/// <inheritdoc /> public void Execute(IPlayerEntity player, object[] parameters) { if (parameters.Length == 1) { IPlayerEntity playerToSummon = _worldServer.GetPlayerEntity(parameters[0].ToString()); if (playerToSummon == null) { throw new ArgumentException($"The player doesn't exist or is not connected.", nameof(parameters)); } _teleportSystem.Teleport(playerToSummon, player.Object.MapId, player.Object.Position.X, player.Object.Position.Y, player.Object.Position.Z, player.Object.Angle); _logger.LogTrace($"{playerToSummon.Object.Name} is summoned by {player.Object.Name}."); } else { throw new ArgumentException("Too many or not enough arguments."); } }
/// <inheritdoc /> public void Execute(IPlayerEntity player, object[] parameters) { if (parameters.Length == 1) { IPlayerEntity playerToFreeze = _worldServer.GetPlayerEntity(parameters[0].ToString()); if (!player.PlayerData.Mode.HasFlag(ModeType.DONMOVE_MODE)) { playerToFreeze.PlayerData.Mode |= ModeType.DONMOVE_MODE; _playerDataPacketFactory.SendModifyMode(playerToFreeze); _logger.LogTrace($"Player '{playerToFreeze.Object.Name}' is now freezed."); } else { _logger.LogTrace($"Player '{playerToFreeze.Object.Name}' is already freezed."); } } else { throw new ArgumentException("Too many or not enough arguments."); } }