public static void JoinGame(CommandArgs args) { TSPlayer tSPlayer = args.Player; if (HubEvent.GetEventPlayerIn(tSPlayer.Name) != null) { tSPlayer.SendErrorMessage("You're already in an event! Please use /leave first!"); return; } if (args.Parameters.Count < 1) { tSPlayer.SendErrorMessage("Invalid syntax! Proper syntax: /join <Event Name>"); return; } string eventName = string.Join("", args.Parameters).ToLower(); HubEvent hubEvent = HubEvent.GetEvent(eventName); if (hubEvent == null) { tSPlayer.SendErrorMessage("Invalid syntax! Proper syntax: /forcejoinall <Event Name>"); return; } HubEvent.AddPlayerToEvent(tSPlayer, hubEvent); hubEvent.TeleportPlayerToSpawn(tSPlayer); tSPlayer.SendSuccessMessage(string.Format("You successfully joined {0}!", hubEvent.eventName)); }
public static void ResetMap(CommandArgs args) { TSPlayer tSPlayer = args.Player; if (args.Parameters.Count < 1) { tSPlayer.SendErrorMessage("Invalid syntax! Proper syntax: /resetmap <Event Name>"); return; } string eventName = string.Join("", args.Parameters).ToLower(); HubEvent hubEvent = HubEvent.GetEvent(eventName); if (hubEvent == null) { tSPlayer.SendErrorMessage("Invalid syntax! Proper syntax: /forcejoinall <Event Name>"); return; } if (hubEvent.ResetMap()) { tSPlayer.SendSuccessMessage("The map was successfully reset."); return; } TShock.Log.ConsoleError("The ResetMap method was used but the WorldEdit plugin was not found!"); tSPlayer.SendErrorMessage("The WorldEdit plugin is required to use this command!"); }
public static void ForceJoin(CommandArgs args) { TSPlayer tSPlayer = args.Player; if (args.Parameters.Count < 2) { tSPlayer.SendErrorMessage("Invalid syntax! Proper syntax: /forcejoin <Player Name> <Event Name>"); return; } List <TSPlayer> tSPlayerTargets = TSPlayer.FindByNameOrID(args.Parameters[0]); if (tSPlayerTargets.Count == 0) { tSPlayer.SendErrorMessage("The player specified was not found!"); return; } if (tSPlayerTargets.Count > 1) { tSPlayer.SendErrorMessage("Multiple players with that name were found!"); return; } TSPlayer tSPlayerTarget = tSPlayerTargets.First(); string eventName = string.Join("", args.Parameters.Skip(1)).ToLower(); HubEvent hubEvent = HubEvent.GetEvent(eventName); if (hubEvent == null) { tSPlayer.SendErrorMessage("The event specified was not found!"); return; } // Check if player has already joined an event, and if so, remove them from it HubEvent playerHubEvent = HubEvent.GetEventPlayerIn(tSPlayerTarget.Name); if (playerHubEvent != null) { HubEvent.RemovePlayerFromEvent(tSPlayerTarget, playerHubEvent); } HubEvent.AddPlayerToEvent(tSPlayerTarget, hubEvent); tSPlayer.SendSuccessMessage(string.Format("{0} was successfully added to {1}!", tSPlayerTarget.Name, hubEvent.eventName)); }
public static void ForceJoinAll(CommandArgs args) { TSPlayer tSPlayer = args.Player; if (args.Parameters.Count < 1) { tSPlayer.SendErrorMessage("Invalid syntax! Proper syntax: /forcejoinall <Event Name>"); return; } string eventName = string.Join("", args.Parameters).ToLower(); HubEvent hubEvent = HubEvent.GetEvent(eventName); if (hubEvent == null) { tSPlayer.SendErrorMessage("The event specified was not found!"); return; } string players = ""; foreach (TSPlayer tSP in TShock.Players) { if (tSP == null) { continue; } // Check if player has already joined an event, and if so, remove them from it HubEvent playerHubEvent = HubEvent.GetEventPlayerIn(tSP.Name); if (playerHubEvent != null) { HubEvent.RemovePlayerFromEvent(tSP, playerHubEvent); } HubEvent.AddPlayerToEvent(tSP, hubEvent); players += tSP.Name + ", "; } players = players.Trim(' ', ','); tSPlayer.SendSuccessMessage(string.Format("{0} was successfully added to {1}!", players, hubEvent.eventName)); }
public static void AddClass(CommandArgs args) { TSPlayer tSPlayer = args.Player; Player player = tSPlayer.TPlayer; if (args.Parameters.Count < 2) { tSPlayer.SendErrorMessage("Invalid syntax! Proper syntax: /addclass <Class Name> <Event Name>"); return; } string eventName = string.Join("", args.Parameters.Skip(1)).ToLower(); HubEvent hubEvent = HubEvent.GetEvent(eventName); if (hubEvent == null) { tSPlayer.SendErrorMessage("That is not a valid event!"); return; } string className = args.Parameters[0]; EventClass eventClass = new EventClass { className = className, eventName = hubEvent.eventName, maxHealth = player.statLifeMax2, maxMana = player.statManaMax2, }; // Main items, coins, and ammo for (int i = 0; i < NetItem.InventorySlots; i++) { Item item = player.inventory[i]; if (item.netID == 0) { continue; } ClassItem classItem = new ClassItem() { name = item.Name, stack = item.stack, prefix = TShock.Utils.GetPrefixById(item.prefix) }; if (i <= (int)ItemSlot.InvRow5Slot10) { eventClass.items[i] = classItem; } else if (i <= (int)ItemSlot.CoinSlot4) { int index = i - (int)ItemSlot.CoinSlot1; eventClass.coins[index] = classItem; } else { int index = i - (int)ItemSlot.AmmoSlot1; eventClass.ammo[index] = classItem; } } // Armor, accessories, and their vanity for (int i = 0; i < NetItem.ArmorSlots; i++) { Item item = player.armor[i]; if (item.netID == 0) { continue; } if (i < (int)InventoryLengths.Armor) { eventClass.armor[i] = item.Name; } else if (i < (int)InventoryLengths.Armor + (int)InventoryLengths.Accessories) { int index = i - (int)InventoryLengths.Armor; eventClass.accessories[index] = item.Name; } else if (i < (int)InventoryLengths.Armor + (int)InventoryLengths.AllAccessories + (int)InventoryLengths.Armor) { int index = i - ((int)InventoryLengths.Armor + (int)InventoryLengths.AllAccessories); eventClass.armorVanity[index] = item.Name; } else { int index = i - ((int)InventoryLengths.Armor + (int)InventoryLengths.AllAccessories + (int)InventoryLengths.Armor); eventClass.accessoryVanity[index] = item.Name; } } // Armor and accessory dyes for (int i = 0; i < NetItem.DyeSlots; i++) { Item item = player.dye[i]; if (item.netID == 0) { continue; } if (i < (int)InventoryLengths.Armor) { eventClass.armorDyes[i] = item.Name; } else { int index = i - (int)InventoryLengths.Armor; eventClass.accessoryDyes[index] = item.Name; } } // MiscEquips for (int i = 0; i < NetItem.MiscEquipSlots; i++) { Item item = player.miscEquips[i]; if (item.netID == 0) { continue; } eventClass.miscEquips[i] = item.Name; } // MiscEquip Dyes for (int i = 0; i < NetItem.MiscEquipSlots; i++) { Item item = player.miscDyes[i]; if (item.netID == 0) { continue; } eventClass.miscEquipDyes[i] = item.Name; } ClassConfig.config.eventClasses.Add(eventClass); tSPlayer.SendSuccessMessage("The " + className + " class was successfully added!"); }