public override CommandResult OnExecute(ICommandSource src, ICommandArgs args) { switch (args.Length) { case 0: if (src.IsConsole) { return(CommandResult.ShowUsage()); } var eyePos = src.ToPlayer().GetEyePosition(3000); if (eyePos.HasValue) { Explode(eyePos.Value); } break; case 1: if (args[0].Is("*")) { UPlayer caller = null; if (!src.IsConsole) { caller = src.ToPlayer(); } UServer.Players.Where(p => p != caller).ForEach(p => Explode(p.Position)); } else { var found = UPlayer.TryGet(args[0], player => Explode(player.Position)); if (!found) { return(CommandResult.Lang(EssLang.PLAYER_NOT_FOUND, args[0])); } } break; case 3: var pos = args.GetVector3(0); if (pos.HasValue) { Explode(pos.Value); } else { return(CommandResult.Lang(EssLang.INVALID_COORDS, args[0], args[1], args[2])); } break; default: return(CommandResult.ShowUsage()); } return(CommandResult.Success()); }
public override CommandResult OnExecute(ICommandSource src, ICommandArgs args) { var player = src.ToPlayer(); var playerMeta = player.Metadata; if (!playerMeta.Has(META_KEY_POS) || !playerMeta.Has(META_KEY_DELAY)) { return(CommandResult.Lang("NOT_DIED_YET")); } var deathTime = playerMeta.Get <DateTime>(META_KEY_DELAY); var delta = UEssentials.Config.BackDelay - (DateTime.Now - deathTime).Seconds; if (delta > 0 && !player.HasPermission($"essentials.bypass.backdelay")) { return(CommandResult.Lang("BACK_DELAY", TimeUtil.FormatSeconds((uint)delta))); } var backPosition = playerMeta.Get <Vector3>(META_KEY_POS); src.ToPlayer().Teleport(backPosition); EssLang.Send(src, "RETURNED"); playerMeta.Remove(META_KEY_DELAY); playerMeta.Remove(META_KEY_POS); return(CommandResult.Success()); }
public override CommandResult OnExecute(ICommandSource src, ICommandArgs args) { if (args.IsEmpty) { if (src.IsConsole) { return(CommandResult.ShowUsage()); } GiveMaxSkills(src.ToPlayer(), false); } else { if (args.Length < 2 && src.IsConsole) { return(CommandResult.ShowUsage()); } if (!args[0].IsBool) { return(CommandResult.Lang("INVALID_BOOLEAN", args[0])); } var overpower = args[0].ToBool; // player or all if (args.Length > 1) { if (args[1].Equals("*")) { if (!src.HasPermission($"{Permission}.all")) { return(CommandResult.NoPermission($"{Permission}.all")); } UServer.Players.ForEach(p => GiveMaxSkills(p, overpower)); EssLang.Send(src, "MAX_SKILLS_ALL"); } else { if (!src.HasPermission($"{Permission}.other")) { return(CommandResult.NoPermission($"{Permission}.other")); } if (!args[1].IsValidPlayerIdentifier) { return(CommandResult.Lang("PLAYER_NOT_FOUND", args[1])); } var targetPlayer = args[1].ToPlayer; GiveMaxSkills(targetPlayer, overpower); EssLang.Send(src, "MAX_SKILLS_TARGET", targetPlayer.DisplayName); } } else // self (with overpower) { GiveMaxSkills(src.ToPlayer(), overpower); } } return(CommandResult.Success()); }
public override void OnExecute( ICommandSource source, ICommandArgs parameters ) { if ( parameters.IsEmpty ) { if ( source.IsConsole ) ShowUsage( source ); else GiveMaxSkills( source.ToPlayer(), false ); } else { if ( !parameters[0].IsBool || parameters.Length < 2 && source.IsConsole ) { ShowUsage( source ); return; } var overpower = parameters[0].ToBool; var targetPlayer = parameters.Length == 2 ? parameters[1].ToPlayer : source.ToPlayer(); if ( targetPlayer == null ) EssLang.PLAYER_NOT_FOUND.SendTo( source, parameters[1] ); else { GiveMaxSkills( targetPlayer, overpower ); if ( source.IsConsole || source.ToPlayer() != targetPlayer ) EssLang.MAX_SKILLS_TARGET.SendTo( source, targetPlayer.DisplayName ); } } }
private CommandResult DescendCommand(ICommandSource src, ICommandArgs args, ICommand cmd) { if (args.IsEmpty) { return(CommandResult.ShowUsage()); } if (!args[0].IsFloat) { return(CommandResult.Lang("INVALID_NUMBER", args[0])); } if (args[0].ToFloat <= 0) { return(CommandResult.Lang("MUST_POSITIVE", args[0])); } var player = src.ToPlayer(); var pos = new Vector3(player.Position.x, player.Position.y, player.Position.z); var num = args[0].ToFloat; pos.y -= num; player.Teleport(pos); EssLang.Send(src, "DESCENDED", num); return(CommandResult.Success()); }
public override CommandResult OnExecute(ICommandSource src, ICommandArgs args) { var player = src.ToPlayer(); float dist = 2048f; RaycastInfo veh = TraceRay(player, dist, RayMasks.VEHICLE); if (veh.vehicle != null) { if (!veh.vehicle.isLocked) { VehicleManager.instance.channel.send("tellVehicleLock", ESteamCall.ALL, ESteamPacket.UPDATE_RELIABLE_BUFFER, veh.vehicle.instanceID, player.CSteamId, player.UnturnedPlayer.channel.owner.playerID.group, player.CSteamId != CSteamID.Nil); EssLang.Send(src, "VEHICLE_LOCK"); return(CommandResult.Success()); } else { return(CommandResult.LangError("VEHICLE_ALREADY_LOCKED")); } } else { return(CommandResult.LangError("NO_OBJECT")); } }
public override CommandResult OnExecute(ICommandSource src, ICommandArgs args) { var player = src.ToPlayer(); var look = player.Look; if (PhysicsUtility.raycast(new Ray(look.aim.position, look.aim.forward), out RaycastHit hit, Mathf.Infinity, RayMasks.BARRICADE)) { InteractableStorage storage = hit.transform.GetComponent <InteractableStorage>(); if (storage != null) { storage.isOpen = true; storage.opener = player.UnturnedPlayer; player.Inventory.isStoring = true; player.Inventory.isStorageTrunk = false; player.Inventory.storage = storage; player.Inventory.updateItems(PlayerInventory.STORAGE, storage.items); player.Inventory.sendStorage(); EssLang.Send(src, "STORAGE_OPEN"); return(CommandResult.Success()); } else { return(CommandResult.LangError("STORAGE_INVALID")); } }
public override CommandResult OnExecute(ICommandSource src, ICommandArgs args) { var player = src.ToPlayer(); if (!player.Metadata.Has("back_pos")) { return(CommandResult.Lang("NOT_DIED_YET")); } var backPosition = player.Metadata.Get <Vector3>("back_pos"); src.ToPlayer().Teleport(backPosition); EssLang.Send(src, "RETURNED"); return(CommandResult.Success()); }
public override CommandResult OnExecute(ICommandSource src, ICommandArgs args) { var player = src.ToPlayer(); if (args.IsEmpty) { return(CommandResult.ShowUsage()); } if (args[0].Is("all")) { player.RocketPlayer.Inventory.Items.ToList().ForEach(item => Repair(player, item)); EssLang.ALL_REPAIRED.SendTo(src); } else if (args[0].Is("hand")) { Repair(player, player.Inventory.Items[0]); Repair(player, player.Inventory.Items[1]); if (player.Equipment.HoldingItemID != 0) { player.Equipment.sendUpdateState(); } EssLang.HAND_REPAIRED.SendTo(src); } return(CommandResult.Success()); }
public override CommandResult OnExecute(ICommandSource src, ICommandArgs args) { var playerId = src.ToPlayer().CSteamId.m_SteamID; if (!Conversations.ContainsKey(playerId)) { return(CommandResult.Lang("NOBODY_TO_REPLY")); } var target = ( from conversation in Conversations where conversation.Value.Equals(playerId) select UPlayer.From(conversation.Key) ).FirstOrDefault(); if (target == null) { return(CommandResult.Lang("NO_LONGER_ONLINE")); } src.DispatchCommand($"tell \"{target.DisplayName}\" \"{args.Join(0)}\""); return(CommandResult.Success()); }
public override void OnExecute( ICommandSource source, ICommandArgs parameters ) { var player = source.ToPlayer(); if ( parameters.Length == 0 || parameters.Length > 1 ) { ShowUsage( source ); } else if ( !EssProvider.WarpManager.Contains( parameters[0].ToString() ) ) { EssLang.WARP_NOT_EXIST.SendTo( source, parameters[0] ); } else if ( !player.HasPermission( $"essentials.warp.{parameters[0]}" ) ) { EssLang.WARP_NO_PERMISSION.SendTo( source, parameters[0] ); } else { var dest = EssProvider.WarpManager[parameters[0].ToString()]; var cooldown = EssProvider.Config.WarpCooldown; if ( cooldown > 0 && !player.HasPermission( "essentials.warps.bypasscooldown" ) ) { EssLang.WARP_COOLDOWN.SendTo( source, cooldown ); } Tasks.New( t => { player.Teleport( dest.Location, dest.Rotation ); EssLang.WARP_TELEPORTED.SendTo( source, parameters[0] ); }).Delay( player.HasPermission( "essentials.warps.bypasscooldown" ) ? 0 : cooldown * 1000 ).Go(); } }
public override void OnExecute( ICommandSource source, ICommandArgs parameters ) { if ( parameters.Length == 0 ) { if ( source.IsConsole ) { ShowUsage( source ); } else { var player = source.ToPlayer(); EssLang.POSITION.SendTo( player, player.Position.x, player.Position.y, player.Position.z ); } } else { var found = UPlayer.TryGet( parameters[0], p => { EssLang.POSITION_OTHER.SendTo( source, p.DisplayName, p.Position.x, p.Position.y, p.Position.z ); } ); if ( !found ) { EssLang.PLAYER_NOT_FOUND.SendTo( source, parameters[0] ); } } }
private CommandResult PositionCommand(ICommandSource src, ICommandArgs args, ICommand cmd) { if (args.Length == 0) { if (src.IsConsole) { return(CommandResult.ShowUsage()); } var player = src.ToPlayer(); EssLang.Send(player, "POSITION", player.Position.x, player.Position.y, player.Position.z); } else { var found = UPlayer.TryGet(args[0], p => { EssLang.Send(src, "POSITION_OTHER", p.DisplayName, p.Position.x, p.Position.y, p.Position.z); }); if (!found) { return(CommandResult.Lang("PLAYER_NOT_FOUND", args[0])); } } return(CommandResult.Success()); }
public override CommandResult OnExecute(ICommandSource src, ICommandArgs args) { var player = src.ToPlayer(); if (args[0].ToString() == "on") { player.Look.sendFreecamAllowed(true); player.Look.sendSpecStatsAllowed(true); EssLang.Send(src, "FREECAM_ON"); return(CommandResult.Success()); } else if (args[0].ToString() == "off") { player.Look.sendFreecamAllowed(false); player.Look.sendSpecStatsAllowed(false); EssLang.Send(src, "FREECAM_OFF"); return(CommandResult.Success()); } else { return(CommandResult.ShowUsage()); } }
public void AscendCommand( ICommandSource src, ICommandArgs args, ICommand cmd ) { if ( args.IsEmpty ) { ShowUsage( src, cmd ); } else if ( !args[0].IsFloat ) { EssLang.INVALID_NUMBER.SendTo( src, args[0] ); } else if ( args[0].ToFloat <= 0 ) { EssLang.MUST_POSITIVE.SendTo( src, args[0] ); } else { var player = src.ToPlayer(); var pos = new Vector3(player.Position.x, player.Position.y, player.Position.z); var num = args[0].ToFloat; pos.y += num; player.Teleport( pos ); player.SendMessage( $"You ascended {num} \"meters\"" ); } }
public override CommandResult OnExecute(ICommandSource src, ICommandArgs args) { var player = src.ToPlayer(); if (!player.HasMetadata(Consts.BACK_METADATA_KEY)) { return(CommandResult.Lang("NOT_DIED_YET")); } var backPosition = player.GetMetadata <Vector3>(Consts.BACK_METADATA_KEY); src.ToPlayer().Teleport(backPosition); EssLang.Send(src, "RETURNED"); return(CommandResult.Success()); }
public override CommandResult OnExecute(ICommandSource src, ICommandArgs args) { var player = src.ToPlayer(); float dist = 2048f; RaycastInfo veh = TraceRay(player, dist, RayMasks.VEHICLE); if (veh.vehicle != null) { if (veh.vehicle.isLocked) { VehicleManager.unlockVehicle(veh.vehicle, player.UnturnedPlayer); EssLang.Send(src, "VEHICLE_UNLOCK"); return(CommandResult.Success()); } else { return(CommandResult.LangError("VEHICLE_NOT_LOCKED")); } } else { return(CommandResult.LangError("NO_OBJECT")); } }
public override CommandResult OnExecute(ICommandSource src, ICommandArgs args) { if (args.IsEmpty || args.Length > 1) { if (src.IsConsole) { return(CommandResult.ShowUsage()); } EssLang.Send(src, "PING", src.ToPlayer().Ping); } else { var target = args[0].ToPlayer; if (target == null) { return(CommandResult.Lang("PLAYER_NOT_FOUND", args[0])); } EssLang.Send(src, "PING_OTHER", target.DisplayName, target.Ping); } return(CommandResult.Success()); }
public override void OnExecute( ICommandSource src, ICommandArgs args ) { var player = src.ToPlayer(); var dist = 1000f; if ( args.Length == 1 ) { if ( !args[0].IsDouble ) goto usage; dist = (float) args[0].ToDouble; } var eyePos = player.GetEyePosition( dist ); if ( !eyePos.HasValue ) { EssLang.JUMP_NO_POSITION.SendTo( src ); } else { var point = eyePos.Value; point.y += 6; player.Teleport( point ); EssLang.JUMPED.SendTo( src, point.x, point.y, point.z ); } return; usage: ShowUsage( src ); }
public override CommandResult OnExecute(ICommandSource src, ICommandArgs args) { var player = src.ToPlayer(); var dist = 1000f; if (args.Length == 1) { if (!args[0].IsDouble) { return(CommandResult.ShowUsage()); } dist = (float)args[0].ToDouble; } var eyePos = player.GetEyePosition(dist); if (!eyePos.HasValue) { return(CommandResult.Lang("JUMP_NO_POSITION")); } var point = eyePos.Value; point.y += 6; player.Teleport(point); EssLang.Send(src, "JUMPED", point.x, point.y, point.z); return(CommandResult.Success()); }
private CommandResult PositionCommand(ICommandSource src, ICommandArgs args, ICommand cmd) { if (args.Length == 0) { if (src.IsConsole) { return(CommandResult.ShowUsage()); } var p = src.ToPlayer(); EssLang.Send(src, "POSITION", p.Position.x, p.Position.y, p.Position.z); } else { if (!src.HasPermission($"{cmd.Permission}.other")) { return(CommandResult.NoPermission($"{cmd.Permission}.other")); } if (!args[0].IsValidPlayerIdentifier) { return(CommandResult.LangError("PLAYER_NOT_FOUND", args[0])); } var p = args[0].ToPlayer; EssLang.Send(src, "POSITION_OTHER", p.DisplayName, p.Position.x, p.Position.y, p.Position.z); } return(CommandResult.Success()); }
public override CommandResult OnExecute(ICommandSource src, ICommandArgs args) { if (args.Length == 0 || (args.Length == 1 && src.IsConsole)) { return(CommandResult.ShowUsage()); } if (!args[0].IsInt) { return(CommandResult.Lang(EssLang.INVALID_NUMBER, args[0])); } var amount = args[0].ToInt; if (amount > MAX || amount < -MAX) { return(CommandResult.Lang(EssLang.NUMBER_BETWEEN, -MAX, MAX)); } if (args.Length == 2) { if (args[1].Is("*")) { UServer.Players.ForEach(p => GiveExp(p, amount)); if (amount >= 0) { EssLang.EXPERIENCE_GIVEN.SendTo(src, amount, EssLang.EVERYONE); } else { EssLang.EXPERIENCE_TAKE.SendTo(src, -amount, EssLang.EVERYONE); } } else if (!args[1].IsValidPlayerName) { return(CommandResult.Lang(EssLang.PLAYER_NOT_FOUND, args[1])); } else { var player = args[1].ToPlayer; if (amount >= 0) { EssLang.EXPERIENCE_GIVEN.SendTo(src, amount, player.DisplayName); } else { EssLang.EXPERIENCE_TAKE.SendTo(src, -amount, player.DisplayName); } } } else { GiveExp(src.ToPlayer(), amount); } return(CommandResult.Success()); }
public override CommandResult OnExecute(ICommandSource src, ICommandArgs args) { if (args.Length < 2) { return(CommandResult.ShowUsage()); } var target = args[0].ToPlayer; if (target == null) { return(CommandResult.Lang("PLAYER_NOT_FOUND", args[0])); } var pmSettings = UEssentials.Config.PrivateMessage; var formatFrom = pmSettings.FormatFrom; var formatTo = pmSettings.FormatTo; var formatSpy = pmSettings.FormatSpy; var formatFromColor = ColorUtil.GetColorFromString(ref formatFrom); var formatToColor = ColorUtil.GetColorFromString(ref formatTo); var formatSpyColor = ColorUtil.GetColorFromString(ref formatSpy); var targetName = src.IsConsole ? pmSettings.ConsoleDisplayName : target.DisplayName; var srcName = src.IsConsole ? pmSettings.ConsoleDisplayName : src.DisplayName; formatFrom = string.Format(formatFrom, srcName, args.Join(1)); formatTo = string.Format(formatTo, targetName, args.Join(1)); formatSpy = string.Format(formatSpy, srcName, targetName, args.Join(1)); target.SendMessage(formatFrom, formatFromColor); src.SendMessage(formatTo, formatToColor); Spies.ForEach(p => { UPlayer.From(p).SendMessage(formatSpy, formatSpyColor); }); if (src.IsConsole) { return(CommandResult.Success()); } var srcPlayer = src.ToPlayer(); var srcId = srcPlayer.CSteamId.m_SteamID; if (Conversations.ContainsKey(srcId)) { if (!Conversations[srcId].Equals(target.CSteamId.m_SteamID)) { Conversations[srcId] = target.CSteamId.m_SteamID; } } else { Conversations.Add(srcId, target.CSteamId.m_SteamID); } return(CommandResult.Success()); }
CommandResult VehicleFeaturesCommand(ICommandSource src, ICommandArgs args, ICommand cmd) { if (args.Length != 2) { return(CommandResult.ShowUsage()); } bool toggleValue; if (args[1].IsOneOf(new[] { "1", "on", "true" })) { toggleValue = true; } else if (args[1].IsOneOf(new[] { "0", "off", "false" })) { toggleValue = false; } else { return(CommandResult.ShowUsage()); } var player = src.ToPlayer(); var component = player.GetComponent <PlayerVehicleFeatures>() ?? player.AddComponent <PlayerVehicleFeatures>(); switch (args[0].ToLowerString) { case "autorefuel": if (toggleValue) { component.AutoRefuel = true; EssLang.AUTO_REFUEL_ENABLED.SendTo(src); } else { component.AutoRefuel = false; EssLang.AUTO_REFUEL_DISABLED.SendTo(src); } break; case "autorepair": if (toggleValue) { component.AutoRepair = true; EssLang.AUTO_REPAIR_ENABLED.SendTo(src); } else { component.AutoRepair = false; EssLang.AUTO_REPAIR_DISABLED.SendTo(src); } break; default: return(CommandResult.ShowUsage()); } return(CommandResult.Success()); }
public override CommandResult OnExecute(ICommandSource src, ICommandArgs args) { if (args.IsEmpty) { if (src.IsConsole) { return(CommandResult.ShowUsage()); } GiveMaxSkills(src.ToPlayer(), false); } else { if (args.Length < 2 && src.IsConsole) { return(CommandResult.ShowUsage()); } if (!args[0].IsBool) { return(CommandResult.Lang("INVALID_BOOLEAN", args[0])); } if (args.Length == 2 && !src.HasPermission(Permission + ".other")) { return(CommandResult.Lang("COMMAND_NO_PERMISSION")); } var overpower = args[0].ToBool; var targetPlayer = args.Length == 2 ? args[1].ToPlayer : src.ToPlayer(); if (targetPlayer == null) { return(CommandResult.Lang("PLAYER_NOT_FOUND", args[1])); } GiveMaxSkills(targetPlayer, overpower); if (src.IsConsole || src.ToPlayer() != targetPlayer) { EssLang.Send(src, "MAX_SKILLS_TARGET", targetPlayer.DisplayName); } } return(CommandResult.Success()); }
public override CommandResult OnExecute(ICommandSource src, ICommandArgs args) { var players = UServer.Players.ToList(); if (players.Count == (src.IsConsole ? 0 : 1)) { return(CommandResult.Lang(EssLang.NO_PLAYERS_FOR_TELEPORT)); } switch (args.Length) { case 0: if (src.IsConsole) { return(CommandResult.ShowUsage()); } TeleportAll(src.ToPlayer().RocketPlayer.Position, players); EssLang.TELEPORTED_ALL_YOU.SendTo(src); break; case 1: var found = UPlayer.TryGet(args[0], player => { TeleportAll(player.Position, players); EssLang.TELEPORTED_ALL_PLAYER.SendTo(src, player.DisplayName); }); if (!found) { return(CommandResult.Lang(EssLang.PLAYER_NOT_FOUND, args[0])); } break; case 3: try { var x = (float)args[0].ToDouble; var y = (float)args[1].ToDouble; var z = (float)args[2].ToDouble; var pos = new Vector3(x, y, z); TeleportAll(pos, players); EssLang.TELEPORTED_ALL_COORDS.SendTo(src, x, y, z); } catch (FormatException) { return(CommandResult.Lang(EssLang.INVALID_COORDS, src, args[0], args[1], args[2])); } break; default: return(CommandResult.ShowUsage()); } return(CommandResult.Success()); }
public override CommandResult OnExecute(ICommandSource src, ICommandArgs args) { var player = src.ToPlayer(); player.Inventory.items.ForEach(item => Repair(player, item)); EssLang.Send(src, "ALL_REPAIRED"); return(CommandResult.Success()); }
public override CommandResult OnExecute(ICommandSource src, ICommandArgs args) { var player = src.ToPlayer(); var playerId = player.CSteamId; if (Cooldown.Has(playerId)) { return(CommandResult.Lang(EssLang.USE_COOLDOWN, TimeUtil.FormatSeconds((uint)Cooldown.GetRemaining(playerId)))); } Vector3 position; byte angle; if (player.RocketPlayer.Stance == EPlayerStance.DRIVING || player.RocketPlayer.Stance == EPlayerStance.SITTING) { return(CommandResult.Lang(EssLang.CANNOT_TELEPORT_DRIVING)); } if (!BarricadeManager.tryGetBed(player.CSteamId, out position, out angle)) { return(CommandResult.Lang(EssLang.WITHOUT_BED)); } var homeCommand = UEssentials.Config.HomeCommand; var delay = homeCommand.Delay; var cooldown = homeCommand.Cooldown; if (player.HasPermission("essentials.bypass.homecooldown")) { delay = 0; cooldown = 0; } if (delay > 0) { EssLang.TELEPORT_DELAY.SendTo(src, TimeUtil.FormatSeconds((uint)delay)); } var task = Tasks.New(t => { Delay.Remove(playerId.m_SteamID); if (!player.IsOnline) { return; } player.Teleport(position, angle); EssLang.TELEPORTED_BED.SendTo(src); }).Delay(delay * 1000); task.Go(); Delay.Add(playerId.m_SteamID, task); Cooldown.Add(playerId, cooldown); return(CommandResult.Success()); }
public override CommandResult OnExecute(ICommandSource src, ICommandArgs args) { var player = src.ToPlayer(); var look = player.Look; if (PhysicsUtility.raycast(new Ray(look.aim.position, look.aim.forward), out RaycastHit hit, Mathf.Infinity, RayMasks.BARRICADE | RayMasks.STRUCTURE)) { Interactable2SalvageBarricade barri = hit.transform.GetComponent <Interactable2SalvageBarricade>(); Interactable2SalvageStructure struc = hit.transform.GetComponent <Interactable2SalvageStructure>(); if (barri != null) { BarricadeManager.tryGetInfo(barri.root, out byte x, out byte y, out ushort plant, out ushort index, out BarricadeRegion region); region.barricades.RemoveAt(index); BarricadeManager manager = (BarricadeManager)typeof(BarricadeManager).GetField("manager", BindingFlags.NonPublic | BindingFlags.Static).GetValue(null); manager.channel.send("tellTakeBarricade", ESteamCall.ALL, ESteamPacket.UPDATE_RELIABLE_BUFFER, new object[] { x, y, plant, index }); EssLang.Send(src, "BARRICADE_REMOVED"); return(CommandResult.Success()); } else if (struc != null) { StructureManager.tryGetInfo(struc.transform, out byte x, out byte y, out ushort index, out StructureRegion region); region.structures.RemoveAt(index); StructureManager manager = (StructureManager)typeof(StructureManager).GetField("manager", BindingFlags.NonPublic | BindingFlags.Static).GetValue(null); manager.channel.send("tellTakeStructure", ESteamCall.ALL, x, y, StructureManager.STRUCTURE_REGIONS, ESteamPacket.UPDATE_RELIABLE_BUFFER, new object[] { x, y, index, (region.drops[index].model.position - player.UnturnedPlayer.transform.position).normalized * 100f }); EssLang.Send(src, "STRUCTURE_REMOVED"); return(CommandResult.Success()); } else { return(CommandResult.LangError("DESTROY_INVALID")); } }
public override void OnExecute( ICommandSource source, ICommandArgs parameters ) { if ( parameters.IsEmpty || ( parameters.Length < 5 && source.IsConsole ) ) { ShowUsage( source ); } else { var rawId = parameters[0].ToString(); var rawAmount = parameters.Length >= 2 ? parameters[1].ToString() : "1"; var pos = source.ToPlayer().Position; if ( parameters.Length == 5 ) { var argPos = parameters.GetVector3( 2 ); if ( !argPos.HasValue ) { EssLang.INVALID_COORDS.SendTo( source, parameters[2], parameters[3], parameters[4] ); return; } pos = argPos.Value; } ushort amount; if ( !ushort.TryParse( rawAmount, out amount ) ) { EssLang.INVALID_NUMBER.SendTo( source, rawAmount ); return; } var itemAsset = ItemUtil.GetItem( rawId ); if ( itemAsset.IsAbsent ) { EssLang.INVALID_ITEM_ID.SendTo( source, rawId ); return; } var item = new Item( itemAsset.Value.id, true ); for ( var i = 0; i < amount; i++ ) { ItemManager.dropItem( item, pos, true, true, true ); } if ( parameters.Length == 5 ) EssLang.SPAWNED_ITEM_AT.SendTo( source, amount, itemAsset.Value.Name, pos.x, pos.y, pos.z ); else EssLang.SPAWNED_ITEM.SendTo( source, amount, itemAsset.Value.Name ); } }
public override CommandResult OnExecute(ICommandSource src, ICommandArgs args) { var players = UServer.Players.ToList(); if (players.Count == (src.IsConsole ? 0 : 1)) { return(CommandResult.Lang("NO_PLAYERS_FOR_TELEPORT")); } switch (args.Length) { case 0: if (src.IsConsole) { return(CommandResult.ShowUsage()); } TeleportAll(src.ToPlayer().RocketPlayer.Position, players); EssLang.Send(src, "TELEPORTED_ALL_YOU"); break; case 1: var found = UPlayer.TryGet(args[0], player => { TeleportAll(player.Position, players); EssLang.Send(src, "TELEPORTED_ALL_PLAYER", player.DisplayName); }); if (!found) { return(CommandResult.Lang("PLAYER_NOT_FOUND", args[0])); } break; case 3: var vec3 = args.GetVector3(0); if (!vec3.HasValue) { return(CommandResult.Lang("INVALID_COORDS", src, args[0], args[1], args[2])); } var pos = vec3.Value; TeleportAll(pos, players); EssLang.Send(src, "TELEPORTED_ALL_COORDS", pos.x); break; default: return(CommandResult.ShowUsage()); } return(CommandResult.Success()); }
public override CommandResult OnExecute(ICommandSource src, ICommandArgs args) { var player = src.ToPlayer(); if (args.Length == 0 || args.Length > 1) { return(CommandResult.ShowUsage()); } if (!WarpModule.Instance.WarpManager.Contains(args[0].ToString())) { return(CommandResult.LangError("WARP_NOT_EXIST", args[0])); } if (player.Stance == EPlayerStance.DRIVING || player.Stance == EPlayerStance.SITTING) { return(CommandResult.LangError("CANNOT_TELEPORT_DRIVING")); } if (Delay.ContainsKey(player.CSteamId.m_SteamID)) { return(CommandResult.LangError("ALREADY_WAITING")); } var targetWarp = WarpModule.Instance.WarpManager.GetByName(args[0].ToString()); var cooldown = UEssentials.Config.Warp.TeleportDelay; if (!targetWarp.CanBeUsedBy(src)) { return(CommandResult.LangError("WARP_NO_PERMISSION", args[0])); } if (cooldown > 0 && !player.HasPermission("essentials.bypass.warpcooldown")) { EssLang.Send(src, "WARP_COOLDOWN", cooldown); } var task = Task.Create() .Id($"Warp teleport '{player.DisplayName}'") .Delay(player.HasPermission("essentials.bypass.warpcooldown") ? 0 : cooldown * 1000) .Action(t => { Delay.Remove(player.CSteamId.m_SteamID); player.Teleport(targetWarp.Location, targetWarp.Rotation); EssLang.Send(src, "WARP_TELEPORTED", args[0]); }) .Submit(); Delay.Add(player.CSteamId.m_SteamID, task); return(CommandResult.Success()); }
public override CommandResult OnExecute(ICommandSource src, ICommandArgs args) { if (args.Length < 2) { return(CommandResult.ShowUsage()); } var target = args[0].ToPlayer; if (target == null) { return(CommandResult.Lang("PLAYER_NOT_FOUND", args[0])); } var formatFrom = UEssentials.Config.PMFormatFrom; var formatTo = UEssentials.Config.PMFormatTo; var formatFromColor = ColorUtil.GetColorFromString(ref formatFrom); var formatToColor = ColorUtil.GetColorFromString(ref formatTo); var message = string.Format(formatFrom, src.DisplayName, args.Join(1)); var message2 = string.Format(formatTo, target.DisplayName, args.Join(1)); target.SendMessage(message, formatFromColor); src.SendMessage(message2, formatToColor); Spies.ForEach(p => { UPlayer.From(p).SendMessage($"Spy: ({src.DisplayName} -> " + $"{target.CharacterName}): {args.Join(1)}", Color.gray); }); if (src.IsConsole) { return(CommandResult.Success()); } var srcPlayer = src.ToPlayer(); var srcId = srcPlayer.CSteamId.m_SteamID; if (Conversations.ContainsKey(srcId)) { if (!Conversations[srcId].Equals(target.CSteamId.m_SteamID)) { Conversations[srcId] = target.CSteamId.m_SteamID; } } else { Conversations.Add(srcId, target.CSteamId.m_SteamID); } return(CommandResult.Success()); }
public override CommandResult OnExecute(ICommandSource src, ICommandArgs args) { switch (args.Length) { case 1: if (src.IsConsole) { return(CommandResult.ShowUsage()); } DropKit(src, args[0], src.ToPlayer().Position); EssLang.Send(src, "DROPKIT_SENDER", args[0]); break; case 2: if (!src.HasPermission($"{Permission}.other")) { return(CommandResult.Lang("COMMAND_NO_PERMISSION")); } var found = UPlayer.TryGet(args[1], player => { DropKit(src, args[0], player.Position); EssLang.Send(src, "DROPKIT_PLAYER", args[0], player.DisplayName); }); if (!found) { return(CommandResult.Lang("PLAYER_NOT_FOUND", args[1])); } break; case 4: var pos = args.GetVector3(1); if (pos.HasValue) { DropKit(src, args[0], pos.Value); EssLang.Send(src, "DROPKIT_LOCATION", args[1], args[2], args[3]); } else { return(CommandResult.Lang("INVALID_COORDS", args[1], args[2], args[3])); } break; default: return(CommandResult.ShowUsage()); } return(CommandResult.Success()); }
public override CommandResult OnExecute(ICommandSource src, ICommandArgs args) { if (!float.TryParse(args[0].ToString(), out var amount)) { return(CommandResult.LangError("INVALID_NUMBER", amount)); } var player = src.ToPlayer(); player.Movement.sendPluginSpeedMultiplier(amount); EssLang.Send(src, "JUMP_CHANGED", amount); return(CommandResult.Success()); }
public override CommandResult OnExecute(ICommandSource src, ICommandArgs args) { switch (args.Length) { case 1: if (src.IsConsole) { return(CommandResult.ShowUsage()); } if (WarpModule.Instance.WarpManager.Contains(args[0].ToString())) { return(CommandResult.Lang("WARP_ALREADY_EXISTS")); } var player = src.ToPlayer(); var warp = new Warp(args[0].ToString(), player.Position, player.Rotation); WarpModule.Instance.WarpManager.Add(warp); EssLang.Send(src, "WARP_SET", args[0]); break; case 4: var pos = args.GetVector3(1); if (pos.HasValue) { warp = new Warp(args[0].ToString(), pos.Value, 0.0F); if (WarpModule.Instance.WarpManager.Contains(args[0].ToString())) { return(CommandResult.Lang("WARP_ALREADY_EXISTS")); } WarpModule.Instance.WarpManager.Add(warp); EssLang.Send(src, "WARP_SET", args[0]); } else { return(CommandResult.Lang("INVALID_COORDS", args[1], args[2], args[3])); } break; default: return(CommandResult.ShowUsage()); } return(CommandResult.Success()); }
public override void OnExecute( ICommandSource src, ICommandArgs args ) { switch ( args.Length ) { case 0: if ( src.IsConsole ) { ShowUsage( src ); return; } var eyePos = src.ToPlayer().GetEyePosition( 3000 ); if ( eyePos.HasValue ) { Explode( eyePos.Value ); } break; case 1: var found = UPlayer.TryGet( args[0], player => Explode( player.Position ) ); if ( !found ) { EssLang.PLAYER_NOT_FOUND.SendTo( src, args[0] ); } break; case 3: var pos = args.GetVector3( 0 ); if ( pos.HasValue ) { Explode( pos.Value ); } else { EssLang.INVALID_COORDS.SendTo( src, args[0], args[1], args[2] ); } break; default: ShowUsage( src ); return; } }
public override void OnExecute( ICommandSource source, ICommandArgs parameters ) { var displayName = source.DisplayName; if ( BackDict.ContainsKey( displayName ) ) { source.ToPlayer().Teleport( BackDict[displayName] ); BackDict.Remove( displayName ); EssLang.RETURNED.SendTo( source ); } else { EssLang.NOT_DIED_YET.SendTo( source ); } }
public override void OnExecute( ICommandSource source, ICommandArgs parameters ) { var player = source.ToPlayer(); if ( parameters.IsEmpty ) { ShowUsage( source ); } else if ( parameters[0].Is( "all" ) ) { player.RocketPlayer.Inventory.Items.ToList().ForEach( item => Repair( player, item ) ); EssLang.ALL_REPAIRED.SendTo( source ); } else if ( parameters[0].Is( "hand" ) ) { Repair( player, player.RocketPlayer.Inventory.Items[0] ); EssLang.HAND_REPAIRED.SendTo( source ); } }
public override void OnExecute( ICommandSource source, ICommandArgs parameters ) { if ( parameters.IsEmpty || parameters.Length > 1 ) { if ( source.IsConsole ) source.SendMessage( "Use /ping [player]" ); else EssLang.PING.SendTo( source, source.ToPlayer().Ping ); } else { var target = parameters[0].ToPlayer; if ( target == null ) EssLang.PLAYER_NOT_FOUND.SendTo( source, parameters[0] ); else EssLang.PING_OTHER.SendTo( source, target.DisplayName, target.Ping ); } }
public override void OnExecute( ICommandSource source, ICommandArgs parameters ) { if ( parameters.IsEmpty ) { if ( source.IsConsole ) { ShowUsage( source ); return; } var currentVeh = source.ToPlayer().CurrentVehicle; if ( currentVeh != null ) { VehicleManager.sendVehicleFuel( currentVeh, currentVeh.asset.fuel ); EssLang.VEHICLE_REFUELED.SendTo( source ); } else { EssLang.NOT_IN_VEHICLE.SendTo( source ); } } else if ( parameters[0].Is( "all" ) ) { var allVehicles = UWorld.Vehicles; lock ( allVehicles ) { allVehicles .Where( veh => !veh.isExploded && !veh.isUnderwater) .ToList() .ForEach( vehicle => { VehicleManager.sendVehicleFuel( vehicle, vehicle.asset.fuel ); }); EssLang.VEHICLE_REFUELED_ALL.SendTo( source ); } } }
public override void OnExecute( ICommandSource source, ICommandArgs parameters ) { switch ( parameters.Length ) { case 1: if ( source.IsConsole ) { ShowUsage( source ); break; } var player = source.ToPlayer(); var warp = new Warp( parameters[0].ToString(), player.Position, player.Rotation ); EssProvider.WarpManager.Add( warp ); EssLang.WARP_SET.SendTo( source, parameters[0] ); break; case 4: var pos = parameters.GetVector3( 1 ); if ( pos.HasValue ) { warp = new Warp( parameters[0].ToString(), pos.Value, 0.0F ); EssProvider.WarpManager.Add( warp ); EssLang.WARP_SET.SendTo( source, parameters[0] ); } else { EssLang.INVALID_COORDS.SendTo( source, parameters[1], parameters[2], parameters[3] ); } break; default: ShowUsage( source ); break; } }
public override void OnExecute( ICommandSource source, ICommandArgs parameters ) { var players = UServer.Players.ToList(); if ( players.Count == ( source.IsConsole ? 0 : 1) ) { EssLang.NO_PLAYERS_FOR_TELEPORT.SendTo( source ); } else { switch ( parameters.Length ) { case 0: if ( source.IsConsole ) { source.SendMessage( "Use /tpall [player/position[x, y, z]]" ); } else { TeleportAll( source.ToPlayer().RocketPlayer.Position, players ); EssLang.TELEPORTED_ALL_YOU.SendTo( source ); } break; case 1: var found = UPlayer.TryGet( parameters[0], player => { TeleportAll( player.Position, players ); EssLang.TELEPORTED_ALL_PLAYER.SendTo( source, player.DisplayName ); } ); if ( !found ) { EssLang.PLAYER_NOT_FOUND.SendTo( source, parameters[0].ToString() ); } break; case 3: try { var x = (float) parameters[0].ToDouble; var y = (float) parameters[1].ToDouble; var z = (float) parameters[2].ToDouble; var pos = new Vector3( x, y, z ); TeleportAll( pos, players ); EssLang.TELEPORTED_ALL_COORDS.SendTo( source, x, y, z ); } catch ( FormatException ) { EssLang.INVALID_COORDS.SendTo( source, parameters[0], parameters[1], parameters[2] ); } break; default: source.SendMessage( "Use /tpall [player/position[x, y, z]]" ); break; } } }
public void VehicleFeaturesCommand( ICommandSource src, ICommandArgs args, ICommand cmd ) { if ( args.Length != 2 ) { goto usage; } bool toggleValue; if ( args[1].IsOneOf( new[] { "1", "on", "true" } ) ) { toggleValue = true; } else if ( args[1].IsOneOf( new[] { "0", "off", "false" } ) ) { toggleValue = false; } else { goto usage; } var player = src.ToPlayer(); var component = player.GetComponent<PlayerVehicleFeatures>() ?? player.AddComponent<PlayerVehicleFeatures>(); switch (args[0].ToLowerString) { case "autorefuel": if ( toggleValue ) { component.AutoRefuel = true; EssLang.AUTO_REFUEL_ENABLED.SendTo( src ); } else { component.AutoRefuel = false; EssLang.AUTO_REFUEL_DISABLED.SendTo( src ); } return; case "autorepair": if ( toggleValue ) { component.AutoRepair = true; EssLang.AUTO_REPAIR_ENABLED.SendTo( src ); } else { component.AutoRepair = false; EssLang.AUTO_REPAIR_DISABLED.SendTo( src ); } return; default: goto usage; } usage: ShowUsage( src, cmd ); }
public void ItemInfoCommand( ICommandSource src, ICommandArgs args, ICommand cmd ) { if ( src.IsConsole && args.Length != 1 ) { ShowUsage( src, cmd ); return; } ItemAsset asset; if ( args.Length == 0 ) { var equipament = src.ToPlayer().Equipment; if ( equipament.HoldingItemID == 0 ) { EssLang.EMPTY_HANDS.SendTo( src ); } asset = equipament.asset; } else { if ( !args[0].IsUshort || (asset = Assets.find( EAssetType.ITEM, args[0].ToUshort ) as ItemAsset) == null) { EssLang.INVALID_ITEM_ID.SendTo( src, args[0] ); return; } } var color = Color.yellow; var name = WrapMessage( src, asset.name ); var description = WrapMessage( src, asset.Description ); var type = WrapMessage( src, asset.ItemType.ToString() ); var isPro = WrapMessage( src, asset.isPro.ToString() ); src.SendMessage( $"Name: {name}", color ); src.SendMessage( $"Description: {description}", color ); src.SendMessage( $"Id: {asset.id}", color ); src.SendMessage( $"Type: {type}", color ); src.SendMessage( $"IsPro: {isPro}", color ); }
public override void OnExecute( ICommandSource src, ICommandArgs args ) { if ( src.IsConsole && (args.Length == 1 || args.Length == 3) ) goto usage; switch ( args.Length ) { /* /tp player -> sender to player /tp place -> sender to place */ case 1: var data = FindPlaceOrPlayer( args[0].ToString() ); var dataFound = (bool) data[0]; var dataPosition = (Vector3) data[1]; var dataName = (string) data[2]; if ( !dataFound ) { EssLang.FAILED_FIND_PLACE_OR_PLAYER.SendTo( src, args[0] ); } else { src.ToPlayer().Teleport( dataPosition ); EssLang.TELEPORTED.SendTo( src, dataName ); } return; /* /tp player other -> player to other /tp player place -> player to place */ case 2: var found = UPlayer.TryGet( args[0], p => { data = FindPlaceOrPlayer( args[1].ToString() ); dataFound = (bool) data[0]; dataPosition = (Vector3) data[1]; dataName = (string) data[2]; if ( !dataFound ) { EssLang.FAILED_FIND_PLACE_OR_PLAYER.SendTo( src, args[0] ); } else { p.Teleport( dataPosition ); EssLang.TELEPORTED.SendTo( p, dataName ); EssLang.TELEPORTED_SENDER.SendTo( src, p, dataName ); } } ); if ( !found ) { EssLang.PLAYER_NOT_FOUND.SendTo( src, args[0] ); } return; /* /tp x y z -> sender to x,y,z */ case 3: var location = args.GetVector3( 0 ); if ( location.HasValue ) { src.ToPlayer().Teleport( location.Value ); EssLang.TELEPORTED.SendTo( src, location ); } else { EssLang.INVALID_COORDS.SendTo( src, args[0], args[1], args[2] ); } return; /* /tp player x y z -> player to x, y, z */ case 4: found = UPlayer.TryGet( args[0], p => { location = args.GetVector3( 1 ); if ( location.HasValue ) { p.Teleport( location.Value ); EssLang.TELEPORTED.SendTo( p, location ); EssLang.TELEPORTED_SENDER.SendTo( src, p, location ); } else { EssLang.INVALID_COORDS.SendTo( src, args[1], args[2], args[3] ); } } ); if ( !found ) { EssLang.PLAYER_NOT_FOUND.SendTo( src, args[0] ); } return; default: goto usage; } usage: ShowUsage( src ); }
public void ItemCommand( ICommandSource src, ICommandArgs args, ICommand cmd ) { switch (args.Length) { /* /i [item] */ case 1: if ( src.IsConsole ) { goto usage; } GiveItem( src, src.ToPlayer(), args[0], One ); return; /* /i [item] [amount] /i [player] [item] /i all [item] */ case 2: if ( args[1].IsInt ) { if ( src.IsConsole ) { goto usage; } GiveItem( src, src.ToPlayer(), args[0], args[1] ); } else if ( args[0].Is( "all" ) ) { GiveItem( src, null, args[1], One, true ); } else if ( !args[0].IsValidPlayerName ) { EssLang.PLAYER_NOT_FOUND.SendTo( src, args[0] ); } else { GiveItem( src, UPlayer.From( args[0].ToString() ), args[1], One ); } return; /* /i [player] [item] [amount] /i all [item] [amount] */ case 3: if ( args[0].Is( "all" ) ) { GiveItem( src, null, args[1], args[2], true ); } else if ( !args[0].IsValidPlayerName ) { EssLang.PLAYER_NOT_FOUND.SendTo( src, args[0] ); } else { GiveItem( src, UPlayer.From( args[0].ToString() ), args[1], args[2] ); } return; default: goto usage; } usage: ShowUsage( src, cmd ); }
public override void OnExecute( ICommandSource source, ICommandArgs parameters ) { if ( parameters.Length == 0 || ( parameters.Length == 1 && source.IsConsole ) ) { source.SendMessage( source.IsAdmin ? UsageMessage : "Use /kit [kit_name]" ); } else if ( parameters.Length == 1 ) { var player = source.ToPlayer(); if ( EssProvider.KitManager.Contains( parameters[0].ToString() ) ) { var kitName = parameters[0].ToLowerString; var requestedKit = EssProvider.KitManager.GetByName(kitName); if ( !requestedKit.CanUse( player ) ) { EssLang.KIT_NO_PERMISSION.SendTo( player ); } else { var steamPlayerId = player.CSteamId.m_SteamID; var kitCooldown = requestedKit.Cooldown; if ( !source.HasPermission("essentials.kits.bypasscooldown") ) { if ( !Cooldowns.ContainsKey( steamPlayerId ) ) { Cooldowns.Add( steamPlayerId, new Dictionary<string, DateTime>() ); } if ( Cooldowns[steamPlayerId].ContainsKey( kitName ) ) { var remainingTime = DateTime.Now - Cooldowns[steamPlayerId][kitName]; if ( remainingTime.TotalSeconds > kitCooldown ) { Console.WriteLine( "3" ); Cooldowns[steamPlayerId][kitName] = DateTime.Now; } else { EssLang.KIT_COOLDOWN.SendTo( source, FormatSeconds( (uint) (kitCooldown - remainingTime.TotalSeconds) )); return; } } else { Cooldowns[steamPlayerId].Add( kitName, DateTime.Now ); } } EssProvider.KitManager.GetByName( kitName ).GiveTo( player ); } } else { EssLang.KIT_NOT_EXIST.SendTo( player, parameters[0] ); } } else if ( parameters.Length == 2 ) { var kitName = parameters[0].ToString(); if ( !source.HasPermission( $"essentials.kit.{kitName}.other" ) ) { return; } var target = parameters[1].ToPlayer; if ( target == null ) { EssLang.PLAYER_NOT_FOUND.SendTo( source, parameters[1] ); } else if ( EssProvider.KitManager.Contains( kitName ) ) { EssProvider.KitManager.GetByName(kitName).GiveTo( target ); EssLang.KIT_GIVEN_SENDER.SendTo( source, kitName, target ); } else { EssLang.KIT_NOT_EXIST.SendTo( source, kitName ); } } }
public override void OnExecute( ICommandSource source, ICommandArgs parameters ) { var player = source.ToPlayer(); var p = player.UnturnedPlayer; // Console.WriteLine( p.GetComponent<CharacterController>() == null ); // p.movement.GetComponent<CharacterController>().attachedRigidbody.constraints = RigidbodyConstraints.FreezePositionX; return; RaycastHit hit; Physics.Raycast(p.look.aim.position, p.look.aim.forward, out hit, 114f, RayMasks.PLAYER_INTERACT); var barricade = hit.transform?.GetComponent<InteractableDoor>(); byte b; byte b2; ushort num; ushort num2; BarricadeRegion barricadeRegion; if ( BarricadeManager.tryGetInfo( barricade.transform, out b, out b2, out num, out num2, out barricadeRegion ) ) { Console.WriteLine( b + " " +b2 + " " + num + " " + num2) ; } return; var animalManager = typeof( AnimalManager ).GetField( "manager", BindingFlags.NonPublic | BindingFlags.Static ).GetValue( null ) as AnimalManager; typeof( AnimalManager ).GetMethod( "addAnimal", BindingFlags.NonPublic | BindingFlags.Instance ) .Invoke( animalManager, new object[] { (byte) 3, player.Position + new Vector3( 2, 0, 0 ), 0.0f, false } ); animalManager.askAnimals( player.CSteamId ); return; //var animalManager = typeof( AnimalManager ).GetField( "manager", BindingFlags.NonPublic | BindingFlags.Static ).GetValue( null ) as AnimalManager; //animalManager.askAnimals( player.CSteamId ); //var animals = typeof( AnimalManager ).GetField( "_animals", BindingFlags.NonPublic | BindingFlags.Static ).GetValue( null ) as List<Animal>; //typeof( AnimalManager ).GetMethod( "addAnimal", BindingFlags.NonPublic | BindingFlags.Instance ) //.Invoke( animalManager, new object[] { (byte) 3, player.GetPosition() + new Vector3( 2, 0, 0 ), 0.0f, false } ); //animalManager.channel.openWrite(); //animalManager.channel.write( (ushort) AnimalManager.animals.Count ); //Animal animal = AnimalManager.animals[AnimalManager.animals.Count - 1]; //animalManager.channel.write( new object[] //{ // animal.id, // animal.transform.position, // MeasurementTool.angleToByte(animal.transform.rotation.eulerAngles.y), // animal.isDead //} ); // animalManager.channel.closeWrite( "tellAnimals", player.GetCSteamId, ESteamPacket.UPDATE_RELIABLE_CHUNK_BUFFER ); // animalManager.askAnimals(player.GetCSteamId); // source.SendMessage(); return; // var barel = new Attachment(7, 100); // var grip = new Attachment(8, 100); // var sight = new Attachment(146, 100); // UnturnedItems.AssembleItem(4,20, sight, null, grip, barel, new Attachment(17, 100)); }
public override void OnExecute( ICommandSource src, ICommandArgs args ) { if ( (!src.IsConsole && args.Length < 2) || (src.IsConsole && args.Length < 3) ) goto usage; UPlayer target; if ( args.Length == 3 ) { target = args[2].ToPlayer; } else if ( src.IsConsole ) { goto usage; } else { target = src.ToPlayer(); } if ( target == null ) { EssLang.PLAYER_NOT_FOUND.SendTo( src, args[2] ); } else if ( !args[1].IsInt ) { EssLang.INVALID_NUMBER.SendTo( src, args[1] ); } else if ( args[1].ToInt < 0 ) { EssLang.NEGATIVE_OR_LARGE.SendTo( src ); } else { var amount = (uint) args[1].ToInt; var playerExp = target.UnturnedPlayer.skills.Experience; switch (args[0].ToLowerString) { case "take": playerExp -= playerExp < amount ? playerExp : amount; if ( target != src ) EssLang.EXPERIENCE_TAKE.SendTo( src, amount, target.DisplayName ); EssLang.EXPERIENCE_LOST.SendTo( target, amount ); break; case "give": playerExp += amount; if ( target != src ) EssLang.EXPERIENCE_GIVEN.SendTo( src, amount, target.DisplayName ); EssLang.EXPERIENCE_RECEIVED.SendTo( target, amount ); break; default: ShowUsage( src ); return; } target.UnturnedPlayer.skills.Experience = playerExp; target.UnturnedPlayer.skills.askSkills( target.CSteamId ); } return; usage: ShowUsage( src ); }
// https://github.com/Zamirathe/ZaupClearInventoryLib public override void OnExecute( ICommandSource source, ICommandArgs parameters ) { if ( source.IsConsole && parameters.IsEmpty ) { ShowUsage( source ); return; } var player = parameters.Length > 0 ? parameters[0].ToPlayer : source.ToPlayer(); if ( player == null ) { EssLang.PLAYER_NOT_FOUND.SendTo( source, parameters[0] ); } else { var playerInventory = player.Inventory; // "Remove "models" of items from player "body"" player.Channel.send( "tellSlot", ESteamCall.ALL, ESteamPacket.UPDATE_RELIABLE_BUFFER, (byte) 0, (byte) 0, new byte[0] ); player.Channel.send( "tellSlot", ESteamCall.ALL, ESteamPacket.UPDATE_RELIABLE_BUFFER, (byte) 1, (byte) 0, new byte[0] ); // Remove items for ( byte page = 0; page < PlayerInventory.PAGES; page++ ) { var count = playerInventory.getItemCount( page ); for ( byte index = 0; index < count; index++ ) { playerInventory.removeItem( page, 0 ); } } // Remove clothes // Remove unequipped cloths Action removeUnequipped = () => { for ( byte i = 0; i < playerInventory.getItemCount( 2 ); i++ ) { playerInventory.removeItem( 2, 0 ); } }; // Unequip & remove from inventory player.UnturnedPlayer.clothing.askWearBackpack( 0, 0, new byte[0], true ); removeUnequipped(); player.UnturnedPlayer.clothing.askWearGlasses( 0, 0, new byte[0], true ); removeUnequipped(); player.UnturnedPlayer.clothing.askWearHat( 0, 0, new byte[0], true ); removeUnequipped(); player.UnturnedPlayer.clothing.askWearPants( 0, 0, new byte[0], true ); removeUnequipped(); player.UnturnedPlayer.clothing.askWearMask( 0, 0, new byte[0], true ); removeUnequipped(); player.UnturnedPlayer.clothing.askWearShirt( 0, 0, new byte[0], true ); removeUnequipped(); player.UnturnedPlayer.clothing.askWearVest( 0, 0, new byte[0], true ); removeUnequipped(); EssLang.INVENTORY_CLEAN.SendTo( player ); } }
private static void GiveItem( ICommandSource src, UPlayer target, ICommandArgument itemArg, ICommandArgument amountArg, bool allPlayers = false ) { ItemAsset asset; if ( itemArg.IsUshort ) { var id = itemArg.ToUshort; asset = (ItemAsset) Assets.find( EAssetType.ITEM, id ); } else { asset = UnturnedItems.GetItemAssetByName( itemArg.ToLowerString ); } if ( asset == null ) { src.SendMessage( $"Could not find an item with this name or id: {itemArg}" ); return; } ushort amt = 1; if ( amountArg != null ) { if ( !amountArg.IsShort ) { EssLang.INVALID_NUMBER.SendTo( src, amountArg ); } else if ( amountArg.ToUshort <= 0 ) { EssLang.MUST_POSITIVE.SendTo( src ); } else { amt = amountArg.ToUshort; goto give; } return; } give: var playersToReceive = new List<UPlayer>(); var item = new Item( asset.id, true ); if ( allPlayers ) { UServer.Players.ForEach( playersToReceive.Add ); EssLang.GIVEN_ITEM_ALL.SendTo( src, amt, asset.Name ); } else { playersToReceive.Add( target ); if ( !src.IsConsole && src.ToPlayer() != target ) { EssLang.GIVEN_ITEM.SendTo( src, amt, asset.Name, target.CharacterName ); } } playersToReceive.ForEach( p => { var success = p.GiveItem( item, amt, true ); EssLang.RECEIVED_ITEM.SendTo( p, amt, asset.Name ); if ( !success ) { EssLang.INVENTORY_FULL.SendTo( p ); } } ); }