Untitled

 avatar
unknown
java
4 years ago
31 kB
7
Indexable
package com.rs.game.player.content;

import java.util.concurrent.ConcurrentHashMap;

import com.rs.Settings;
import com.rs.cache.loaders.ItemDefinitions;
import com.rs.cache.loaders.NPCDefinitions;
import com.rs.game.npc.Drop;
import com.rs.game.player.Inventory;
import com.rs.game.player.Player;
import com.rs.game.player.content.achievementsystem.AchievementList;
import com.rs.game.player.content.clans.ClansManager;
import com.rs.game.player.content.interfaces.GeneralTeleports.GeneralTeleportingGroups;
import com.rs.game.player.rebirth.data.RebirthSkillsData.RebirthPerks10;
import com.rs.utils.Colors;
import com.rs.utils.NPCDrops;
import com.rs.utils.Utils;

public class InterfaceManager {

	public static final int FIXED_WINDOW_ID = 548;
	public static final int RESIZABLE_WINDOW_ID = 746;
	public static final int CHAT_BOX_TAB = 13;
	public static final int FIXED_SCREEN_TAB_ID = 47;
	public static final int RESIZABLE_SCREEN_TAB_ID = 70;
	public static final int FIXED_INV_TAB_ID = 175;
	public static final int RESIZABLE_INV_TAB_ID = 151;
	private Player player;
	private int windowsPane;

	private final ConcurrentHashMap<Integer, int[]> openedinterfaces = new ConcurrentHashMap<Integer, int[]>();
	// private final ConcurrentHashMap<Integer, Integer> openedinterfacesb = new
	// ConcurrentHashMap<Integer, Integer>();

	public boolean resizableScreen;

	public static int INTER_275_TITLE = 1;
	public static int INTER_275_START_BODY = 10;
	public static int INTER_275_END_BODY = 309;

	public static final int DUNG_SMITHING_INTERFACE = 934;

	public void clear275Body() {
		for (int i = INTER_275_START_BODY; i <= INTER_275_END_BODY; i++) {
			player.getPackets().sendIComponentText(275, i, "");
		}
	}

	// new combat styles 1503

	public void sendFullScreenInterfaces() {
		player.getPackets().sendWindowsPane(746, 0);
		sendTab(63, 752); // chatbox
		sendRightSideScreenTabs();
		sendTab(57, 745);
		sendTab(67, 754);
		sendTab(238, 748); // hp bar
		sendTab(239, 749); // prayer bar
		sendTab(240, 750); // run bar
		sendTab(241, 747); // hide run?
		player.getPackets().sendInterface(true, 752, 9, 137);
		sendCombatStyles();
		sendTaskSystem();
		sendSkills();
		sendInventory();
		sendEquipment();
		sendPrayerBook();
		sendMagicBook();
		sendTab(163, 550); // friend list
		sendTab(164, 1109); // 551 ignore now friendchat
		sendTab(165, 1110); // 589 old clan chat now new clan chat
		sendSettings();
		sendEmotes();
		sendQuests();
		sendTab(168, 187); // music
		sendTab(resizableScreen ? 169 : 194, 34); // notes
		sendTab(172, 182); // logout
		sendSquealOfFortuneTab();
	}

	public void sendFixedInterfaces() {
		player.getPackets().sendWindowsPane(548, 0);
		sendTab(171, 752);
		sendRightSideScreenTabs();
		sendTab(43, 745);
		sendTab(45, 754);
		sendTab(167, 747);
		sendTab(163, 748);
		sendTab(164, 749);
		sendTab(165, 750);
		player.getPackets().sendInterface(true, 752, 9, 137);
		player.getPackets().sendInterface(true, 548, 9, 167);
		sendMagicBook();
		sendPrayerBook();
		sendEquipment();
		sendInventory();
		sendTab(189, 1109);// 551 ignore now friendchat
		sendTab(190, 1110);// 589 old clan chat now new clan chat
		sendTab(188, 550);// friend list
		sendTab(193, 187);// music
		sendTab(resizableScreen ? 169 : 194, 34); // notes
		sendTab(197, 182);
		sendSkills();
		sendEmotes();
		sendSettings();
		sendTaskSystem();
		sendQuests();
		sendCombatStyles();
		sendSquealOfFortuneTab();
	}

	/**
	 * Overrides the "Report" button.
	 */
	public void sendRightSideScreenTabs() {
		sendTab(resizableScreen ? 64 : 56, 751);
		sendIComponentText(751, 16, "<shad=000000>"
				+ (player.getCombatDefinitions().isSheathe() ? Colors.GREEN : Colors.RED) + "Sheathe</col></shad>");
	}

	public void sendTaskSystem() {
		sendTab(resizableScreen ? 155 : 180, 930);
		TaskTab.sendTab(player);
	}

	public void sendQuests() {
		sendTab(resizableScreen ? 157 : 182, 3060);
	}

	public boolean isResizableScreen() {
		return resizableScreen;
	}

	public InterfaceManager(Player player) {
		this.player = player;
	}

	public void sendTab(int tabId, int interfaceId) {
		player.getPackets().sendInterface(true, resizableScreen ? RESIZABLE_WINDOW_ID : FIXED_WINDOW_ID, tabId,
				interfaceId);
	}

	public void sendChatBoxInterface(int interfaceId) {
		player.getPackets().sendInterface(true, 752, CHAT_BOX_TAB, interfaceId);
	}

	public void sendChatBoxInterfaceClipped(int interfaceId) {
		player.getPackets().sendInterface(false, 752, CHAT_BOX_TAB, interfaceId);
	}

	public void closeChatBoxInterface() {
		player.getPackets().closeInterface(CHAT_BOX_TAB);
	}

	public void sendOverlay(int interfaceId, boolean fullScreen) {
		sendTab(resizableScreen ? fullScreen ? 52 : 52 : 30, interfaceId);
	}

	public void closeSecondaryOverlay() {
		player.getPackets().closeInterface(resizableScreen ? 41 : 31);
	}

	public void sendSecondaryOverlay(int id) {
		sendTab(resizableScreen ? 41 : 31, id);
	}

	public void closeOverlay(boolean fullScreen) {
		player.getPackets().closeInterface(resizableScreen ? fullScreen ? 52 : 52 : 30);
	}

	public void closeOverlay(boolean fullScreen, int id) {
		player.getPackets().closeInterface(isResizableScreen() ? fullScreen ? 1 : 11 : id);
	}

	public void sendInterface(int interfaceId) {
		player.getPackets().sendInterface(false, resizableScreen ? RESIZABLE_WINDOW_ID : FIXED_WINDOW_ID,
				resizableScreen ? RESIZABLE_SCREEN_TAB_ID : FIXED_SCREEN_TAB_ID, interfaceId);
	}

	public static int getComponentUId(int interfaceId, int componentId) {
		return interfaceId << 16 | componentId;
	}

	public final void sendInterfaces() {
		if (player.getDisplayMode() == 2 || player.getDisplayMode() == 3) {
			resizableScreen = true;
			sendFullScreenInterfaces();
		} else {
			resizableScreen = false;
			sendFixedInterfaces();
		}
		player.getSkills().sendInterfaces();
		player.getCombatDefinitions().sendUnlockAttackStylesButtons();
		player.getMusicsManager().unlockMusicPlayer();
		player.getEmotesManager().unlockEmotesBook();
		player.getInventory().unlockInventoryOptions();
		player.getPrayer().unlockPrayerBookButtons();
		ClansManager.unlockBanList(player);
		if (player.getFamiliar() != null && player.isRunning()) {
			player.getFamiliar().unlock();
		}
		player.getControlerManager().sendInterfaces();

	}

	public void replaceRealChatBoxInterface(int interfaceId) {
		player.getPackets().sendInterface(true, 752, 11, interfaceId);
	}

	public void closeReplacedRealChatBoxInterface() {
		player.getPackets().closeInterface(752, 11);
	}

	public void sendWindowPane() {
		player.getPackets().sendWindowsPane(resizableScreen ? 746 : 548, 0);
	}

	public void sendSquealOfFortuneTab() {
		player.getSquealOfFortune().sendSpinCounts();
		// this config used in cs2 to tell current extra tab type (0 - none, 1 -
		// sof, 2 - armies minigame tab)
		player.getPackets().sendGlobalConfig(823, 1);
		sendTab(resizableScreen ? 162 : 187, 1139);
	}

	public void sendXPPopup() {
		sendTab(resizableScreen ? 83 : 51, 1213); // xp
	}

	public void sendXPDisplay() {
		sendXPDisplay(1215);
	}

	public void sendXPDisplay(int interfaceId) {
		int rez = 244, fixed = 53;
		if (interfaceId == 1214) {
			rez = RESIZABLE_SCREEN_TAB_ID;
			fixed = FIXED_SCREEN_TAB_ID;
		}
		sendTab(resizableScreen ? rez : fixed, interfaceId);
	}

	public void closeXPPopup() {
		player.getPackets().closeInterface(resizableScreen ? 83 : 51);
	}

	public void closeXPDisplay() {
		player.getPackets().closeInterface(resizableScreen ? 244 : 53);
	}

	public void sendEquipment() {
		sendTab(resizableScreen ? 159 : 184, 387);
	}

	public void closeInterface(int one, int two) {
		player.getPackets().closeInterface(resizableScreen ? two : one);
	}

	public void closeEquipment() {
		player.getPackets().closeInterface(resizableScreen ? 159 : 184);
	}

	public void sendInventory() {
		sendTab(resizableScreen ? 158 : 183, Inventory.INVENTORY_INTERFACE);
	}

	public void closeInventory() {
		player.getPackets().closeInterface(resizableScreen ? 158 : 183);
	}

	public void closeSkills() {
		player.getPackets().closeInterface(resizableScreen ? 156 : 181);
	}

	public void closeCombatStyles() {
		player.getPackets().closeInterface(resizableScreen ? 154 : 179);
	}

	public void sendCombatStyles() {
		sendTab(resizableScreen ? 154 : 179, 884);
	}

	public void sendSkills() {
		sendTab(resizableScreen ? 156 : 181, 320);
	}

	public void refreshSkills() {
		// player.getPackets().sendIComponentText(320, 151, "DIVINATION: " +
		// player.getSkills().getTotalLevel());
	}

	public void sendSettings() {
		sendSettings(261);
	}

	public void closeSettings() {
		player.getPackets().closeInterface(resizableScreen ? 166 : 191);
	}

	public void sendSettings(int interfaceId) {
		sendTab(resizableScreen ? 166 : 191, interfaceId);
	}

	public void sendPrayerBook() {
		sendTab(resizableScreen ? 160 : 185, 271);
	}

	public void closePrayerBook() {
		player.getPackets().closeInterface(resizableScreen ? 160 : 185);
	}

	public void sendMagicBook() {
		sendTab(resizableScreen ? 161 : 186, player.getCombatDefinitions().getSpellBook());
	}

	public void closeMagicBook() {
		player.getPackets().closeInterface(resizableScreen ? 161 : 186);
	}

	public void sendEmotes() {
		sendTab(resizableScreen ? 167 : 192, 590);
	}

	public void closeEmotes() {
		player.getPackets().closeInterface(resizableScreen ? 167 : 192);
	}

	public boolean addInterface(int windowId, int tabId, int childId) {
		if (openedinterfaces.containsKey(tabId)) {
			player.getPackets().closeInterface(tabId);
		}
		openedinterfaces.put(tabId, new int[] { childId, windowId });
		return openedinterfaces.get(tabId)[0] == childId;
	}

	public boolean containsInterface(int tabId, int childId) {
		if (childId == windowsPane) {
			return true;
		}
		if (!openedinterfaces.containsKey(tabId)) {
			return false;
		}
		return openedinterfaces.get(tabId)[0] == childId;
	}

	public int getTabWindow(int tabId) {
		if (!openedinterfaces.containsKey(tabId)) {
			return FIXED_WINDOW_ID;
		}
		return openedinterfaces.get(tabId)[1];
	}

	public boolean containsInterface(int childId) {
		if (childId == windowsPane) {
			return true;
		}
		for (int[] value : openedinterfaces.values()) {
			if (value[0] == childId) {
				return true;
			}
		}
		return false;
	}

	public boolean containsTab(int tabId) {
		return openedinterfaces.containsKey(tabId);
	}

	public void removeAll() {
		openedinterfaces.clear();
	}

	public boolean containsScreenInter() {
		return containsTab(resizableScreen ? RESIZABLE_SCREEN_TAB_ID : FIXED_SCREEN_TAB_ID);
	}

	public void closeScreenInterface() {
		player.getPackets().closeInterface(resizableScreen ? RESIZABLE_SCREEN_TAB_ID : FIXED_SCREEN_TAB_ID);
	}

	public boolean containsInventoryInter() {
		return containsTab(resizableScreen ? RESIZABLE_INV_TAB_ID : FIXED_INV_TAB_ID);
	}

	public void closeInventoryInterface() {
		player.getPackets().closeInterface(resizableScreen ? RESIZABLE_INV_TAB_ID : FIXED_INV_TAB_ID);
	}

	public boolean containsChatBoxInter() {
		return containsTab(CHAT_BOX_TAB);
	}

	public boolean removeTab(int tabId) {
		return openedinterfaces.remove(tabId) != null;
	}

	public void sendFadingInterface(int backgroundInterface) {
		if (hasRezizableScreen()) {
			player.getPackets().sendInterface(true, RESIZABLE_WINDOW_ID, 34, backgroundInterface);
		} else {
			player.getPackets().sendInterface(true, FIXED_WINDOW_ID, 0, backgroundInterface);
		}
	}

	public void closeFadingInterface() {
		if (hasRezizableScreen()) {
			player.getPackets().closeInterface(34);
		} else {
			player.getPackets().closeInterface(0);
		}
	}

	public void sendScreenInterface(int backgroundInterface, int interfaceId) {
		player.getInterfaceManager().closeScreenInterface();
		if (hasRezizableScreen()) {
			player.getPackets().sendInterface(false, RESIZABLE_WINDOW_ID, 40, backgroundInterface);
			player.getPackets().sendInterface(false, RESIZABLE_WINDOW_ID, 41, interfaceId);
		} else {
			player.getPackets().sendInterface(false, FIXED_WINDOW_ID, 200, backgroundInterface);
			player.getPackets().sendInterface(false, FIXED_WINDOW_ID, 201, interfaceId);
		}
		player.setCloseInterfacesEvent(new Runnable() {

			@Override
			public void run() {
				if (hasRezizableScreen()) {
					player.getPackets().closeInterface(40);
					player.getPackets().closeInterface(41);
				} else {
					player.getPackets().closeInterface(200);
					player.getPackets().closeInterface(201);
				}
			}
		});
	}

	public void sendFullscreenInterfaceSingle(int interfaceId) {
		player.getInterfaceManager().closeScreenInterface();
		if (hasRezizableScreen()) {
			player.getPackets().sendInterface(true, RESIZABLE_WINDOW_ID, 49, interfaceId);
		} else {
			player.getPackets().sendInterface(true, FIXED_WINDOW_ID, 295, interfaceId);
		}
		player.setCloseInterfacesEvent(new Runnable() {
			@Override
			public void run() {
				if (hasRezizableScreen()) {
					player.getPackets().closeInterface(49);
				} else {
					player.getPackets().closeInterface(295);
				}
			}
		});
	}

	public boolean hasRezizableScreen() {
		return resizableScreen;
	}

	public void setWindowsPane(int windowsPane) {
		this.windowsPane = windowsPane;
	}

	public int getWindowsPane() {
		return windowsPane;
	}

	public void gazeOrbOfOculus() {
		player.getPackets().sendWindowsPane(475, 0);
		player.getPackets().sendInterface(true, 475, 57, 751);
		player.getPackets().sendInterface(true, 475, 55, 752);
		player.setCloseInterfacesEvent(new Runnable() {

			@Override
			public void run() {
				player.getPackets().sendWindowsPane(player.getInterfaceManager().hasRezizableScreen() ? 746 : 548, 0);
				player.getPackets().sendResetCamera();
			}
		});
	}

	public int openGameTab(int tabId) {
		player.getPackets().sendGlobalConfig(168, tabId);
		int lastTab = 4;
		return lastTab;
	}

	public void sendSquealOfFortune() {
		sendTab(resizableScreen ? 119 : 179, 1139);
		player.getPackets().sendGlobalConfig(823, 1);
	}

	public void setWindowInterface(int componentId, int interfaceId) {
		player.getPackets().sendInterface(true, resizableScreen ? RESIZABLE_WINDOW_ID : FIXED_WINDOW_ID, componentId,
				interfaceId);
	}

	public void sendInventoryInterface(int childId) {
		player.getPackets().sendInterface(false, resizableScreen ? RESIZABLE_WINDOW_ID : FIXED_WINDOW_ID,
				resizableScreen ? RESIZABLE_INV_TAB_ID : FIXED_INV_TAB_ID, childId);
	}

	public void sendSquealOverlay() {
		sendTab(isResizableScreen() ? 0 : 10, 1252);
	}

	public void closeSquealOverlay() {
		player.getPackets().closeInterface(isResizableScreen() ? 0 : 10);
	}

	/**
	 * Sends an interface with the possible NPC's that drop a mentioned item.
	 *
	 * @param defs The Item Definitions.
	 */
	public void sendItemDrops(ItemDefinitions defs) {
		int i = 0;
		String dropEntry = "";
		player.getInterfaceManager().sendInterface(275);
		sendIComponentText(275, 1, "Drops: <col=9900FF><shad=000000>" + defs.name + "</col></shad>");
		for (i = 10; i < 310; i++) {
			sendIComponentText(275, i, "");
		}
		i = 0;
		for (int n = 0; n < Utils.getNPCDefinitionsSize(); n++) {
			NPCDefinitions def = NPCDefinitions.getNPCDefinitions(n);
			Drop[] drops = NPCDrops.getDrops(def.getId());
			if (drops != null) {
				for (Drop drop : drops) {
					if (drop.getItemId() == 0) {
						continue;
					}
					ItemDefinitions itemDefs = ItemDefinitions.getItemDefinitions(drop.getItemId());
					if (itemDefs.getId() != defs.getId() || !itemDefs.name.contains(defs.name)
							|| !itemDefs.name.equalsIgnoreCase(defs.name)) {
						continue;
					}
					if (def == null || def.getName().toLowerCase().contains("null")) {
						continue;
					}
					StringBuilder sb = new StringBuilder("").append(def.name).append(": ").append(itemDefs.name)
							.append(drop.getMaxAmount() == 1 ? ("")
									: drop.getMinAmount() == drop.getMaxAmount() ? (" (" + drop.getMaxAmount() + ")")
											: (" (" + drop.getMinAmount() + "-" + drop.getMaxAmount() + ")"))
							.append(" [").append((int) drop.getRate()).append("% Chance]");
					dropEntry = sb.toString();
					if (i < 300) {
						sendIComponentText(275, 10 + i, dropEntry);
					}
					dropEntry = "";
					i++;
				}
			}
		}
	}

	/**
	 * Guid Interface
	 */
	private void sendText(int line, String message) {
		player.getPackets().sendIComponentText(275, line, "<shad=000000>" + message);
	}

	public void displayRanks() {
		for (int i = 0; i < 309; i++) {
			player.getPackets().sendIComponentText(275, i, "");
		}
		sendText(1, Colors.RED + Settings.SERVER_NAME);
		sendText(10, Colors.CYAN + "");
		sendText(11, Colors.RED + "");
		sendText(12, "");
		player.getInterfaceManager().sendInterface(275);
	}

	/**
	 * Sends an interface with the possible item drops from the mentioned NPC
	 *
	 * @param defs The NPC Definitions.
	 */
	public void sendNPCDrops(NPCDefinitions defs) {
		int i = 0;
		String dropEntry = "";
		player.getInterfaceManager().sendInterface(275);
		sendIComponentText(275, 1, "Drops: <col=9900FF><shad=000000>" + defs.name + "</col></shad>");
		for (i = 10; i < 310; i++) {
			sendIComponentText(275, i, "");
		}

		i = 0;
		Drop[] drops = NPCDrops.getDrops(defs.getId());
		if (drops != null) {
			for (Drop drop : drops) {
				if (drop.getItemId() == 0) {
					continue;
				}
				ItemDefinitions itemDefs = ItemDefinitions.getItemDefinitions(drop.getItemId());
				StringBuilder sb = new StringBuilder("").append(itemDefs.name)
						.append(drop.getMaxAmount() == 1 ? ("")
								: drop.getMinAmount() == drop.getMaxAmount() ? (" (" + drop.getMaxAmount() + ")")
										: (" (" + drop.getMinAmount() + "-" + drop.getMaxAmount() + ")"))
						.append(" [").append((int) drop.getRate()).append("% Chance]");
				dropEntry = sb.toString();
				if (i < 300) {
					sendIComponentText(275, 10 + i, dropEntry);
				}
				dropEntry = "";
				i++;
			}
		}
	}

	/**
	 * Just a shortener.
	 *
	 * @param interfaceId The interface ID.
	 * @param componentId The component ID.
	 * @param text        The text to display.
	 */
	private void sendIComponentText(int interfaceId, int componentId, String text) {
		player.getPackets().sendIComponentText(interfaceId, componentId, text);
	}

	public void sendHelpInterface() {
		player.getPackets().sendIComponentText(1245, 330,
				Colors.GREEN + Settings.SERVER_NAME + " </col>- " + Colors.RED + Settings.WEBSITE);
		player.getPackets().sendIComponentText(1245, 13,
				"Welcome to <col=0033CC>" + Settings.SERVER_NAME + "</col>; Owner = <col=990000>Jessica</col>.");
		player.getPackets().sendIComponentText(1245, 14, "How to teleport to bosses/skilling/training areas:");
		player.getPackets().sendIComponentText(1245, 15, "");
		player.getPackets().sendIComponentText(1245, 16,
				"You can teleport all around " + Settings.SERVER_NAME + " by using the Quest Tab button");
		player.getPackets().sendIComponentText(1245, 17, "");
		player.getPackets().sendIComponentText(1245, 18, "Basic Money Making methods:");
		player.getPackets().sendIComponentText(1245, 19,
				"One of the easiest and most reliable money sources is Voting!");
		player.getPackets().sendIComponentText(1245, 20, "");
		player.getPackets().sendIComponentText(1245, 20,
				"By doing ::vote you can receive up to 2m Gold for every vote book.");
		player.getPackets().sendIComponentText(1245, 21,
				"Another quick way of making money would be the Thieving Stalls at ::home");
		player.getPackets().sendIComponentText(1245, 22, "The main money making source is by defeating bosses though!");
		player.getPackets().sendIComponentText(1245, 23, "You can sell ALL of your items on the Grand Exchange.");
		player.getInterfaceManager().sendInterface(1245);
	}

	public void sendTrainingTeleport() {
		player.getInterfaceManager().sendInterface(813);
		player.getPackets().sendItemOnIComponent(813, 33, 30005, 1);
		player.getPackets().sendIComponentText(813, 80, Colors.GREEN + "KingScape"); // Title
		player.getPackets().sendIComponentText(813, 15, "Where would you like to go, " + player.getDisplayName() + "?"); // Desc
		player.getPackets().sendIComponentText(813, 29, Colors.GREEN + "Training I"); // Boss Teleports
		player.getPackets().sendIComponentText(813, 52, Colors.WHITE + "Rock Crabs");
		player.getPackets().sendIComponentText(813, 53, Colors.WHITE + "Glacor Cave");
		player.getPackets().sendIComponentText(813, 54, Colors.WHITE + "");
		player.getPackets().sendIComponentText(813, 55, Colors.WHITE + "");
		player.getPackets().sendIComponentText(813, 56, Colors.WHITE + "");
		player.getPackets().sendIComponentText(813, 60, Colors.WHITE + "");
		player.getPackets().sendIComponentText(813, 57, Colors.WHITE + "");
		player.getPackets().sendIComponentText(813, 58, Colors.WHITE + "");
		player.getPackets().sendIComponentText(813, 107, Colors.RED + "");
	}

	public void sendPvPTeleport() {
		player.getInterfaceManager().sendInterface(813);
		player.getPackets().sendItemOnIComponent(813, 33, 30005, 1);
		player.getPackets().sendIComponentText(813, 80, Colors.GREEN + "KingScape"); // Title
		player.getPackets().sendIComponentText(813, 15, "Where would you like to go, " + player.getDisplayName() + "?"); // Desc
		player.getPackets().sendIComponentText(813, 29, Colors.GREEN + "PvP I"); // Boss Teleports
		player.getPackets().sendIComponentText(813, 52, Colors.WHITE + "Edgeville");
		player.getPackets().sendIComponentText(813, 53, Colors.WHITE + "Gate");
		player.getPackets().sendIComponentText(813, 54, Colors.WHITE + "");
		player.getPackets().sendIComponentText(813, 55, Colors.WHITE + "");
		player.getPackets().sendIComponentText(813, 56, Colors.WHITE + "");
		player.getPackets().sendIComponentText(813, 60, Colors.WHITE + "");
		player.getPackets().sendIComponentText(813, 57, Colors.WHITE + "");
		player.getPackets().sendIComponentText(813, 58, Colors.WHITE + "");
		player.getPackets().sendIComponentText(813, 107, Colors.RED + "");
	}

	public void sendMinigamesInterface() {
		player.getInterfaceManager().sendInterface(1412);
		player.getPackets().sendIComponentText(1412, 25, "MINIGAMES"); // Title
		player.getPackets().sendIComponentText(1412, 36, "Barrows");
		player.getPackets().sendIComponentText(1412, 44, "Clan Wars");
		player.getPackets().sendIComponentText(1412, 52, "Pest Control");
		player.getPackets().sendIComponentText(1412, 60, "Dungeoneering Old");
		player.getPackets().sendIComponentText(1412, 68, "Dungeoneering New");
		player.getPackets().sendIComponentText(1412, 76, "Fight Kiln");
		player.getPackets().sendIComponentText(1412, 84, "Fight Caves");
		player.getPackets().sendIComponentText(1412, 92, "Recipe For Disaster");
		player.getPackets().sendIComponentText(1412, 164, "Duel Arena");
		player.getPackets().sendIComponentText(1412, 180, "Warriors Guild");
		player.getPackets().sendIComponentText(1412, 100, "Soul Wars");
		player.getPackets().sendIComponentText(1412, 108, "Dominion Tower");
		player.getPackets().sendIComponentText(1412, 116, "Livid Farm");
		player.getPackets().sendIComponentText(1412, 124, "Nomads Requiem");
		player.getPackets().sendIComponentText(1412, 132, "Artisans Workshop");
		player.getPackets().sendIComponentText(1412, 140, "Runespan");
		player.getPackets().sendIComponentText(1412, 148, "Puro-Puro");
		player.getPackets().sendIComponentText(1412, 156, Colors.RED + "");
		player.getPackets().sendIComponentText(1412, 172, Colors.RED + "");
		player.getPackets().sendIComponentText(1412, 188, Colors.RED + "");
	}

	/* starts: handles new teleports system in quest tab */
	public static int getPlayerInterfaceSelected() {
		return playerSelected813;
	}

	public static int setPlayerInterfaceSelected(int value) {
		return playerSelected813 = value;
	}

	public static int playerSelected813 = 0;
	// ends:

	// *Handle Smithing New Interface*//
	public static int getPlayerInterfaceSelected2() {
		return playerSelected934;
	}

	public static int setPlayerInterfaceSelected2(int value) {
		return playerSelected934 = value;
	}

	public static int playerSelected934 = 0;
	// end:

	public void openDungTab() {
		this.openGameTab(3);
	}

	public void sendDungPartyInterface() {
		sendTab(this.resizableScreen ? 114 : 174, 939);
		player.getPackets().sendGlobalConfig(234, 3);
	}

	public void closeDungPartyInterface() {
		sendTab(resizableScreen ? 114 : 174, 939);
		// sendTab(resizableScreen ? 114 : 174, 506);
		player.getPackets().sendGlobalConfig(234, 0);
		QuestPanel.sendTab(player);
	}

	public void sendDungPartyTab(int interfaceId) {
		sendTab(this.resizableScreen ? 114 : 174, interfaceId);
		player.getPackets().sendGlobalConfig(234, 3);

	}

	public void sendSlayerList() {
		player.closeInterfaces();
		// Placefolder for banned monster names
		String tasks[] = { "", "", "", "", "", "" };
		sendInterface(161);
		// Static information to paste over the interface
		player.getPackets().sendIComponentText(161, 19, "" + player.getSlayer().getSlayerPoints());
		player.getPackets().sendIComponentText(161, 23, "Reset your current slayer task");
		player.getPackets().sendIComponentText(161, 26,
				"(" + (player.Rebirth().isActivatedSecondPerk(RebirthPerks10.SLAYER) ? " FREE! )" : 10 + " points)"));
		player.getPackets().sendIComponentText(161, 27,
				"(" + (player.Rebirth().isActivatedSecondPerk(RebirthPerks10.SLAYER) ? 120 : 160) + " points)");

		// Check if player has any banned tasks

		if (player.getSlayer().getBannedAssignments().size() > 0) {
			for (int i = 0; i < player.getSlayer().getBannedAssignments().size(); i++) {
				if (player.getSlayer().getBannedAssignments().get(i) != null) {
					tasks[i] = player.getSlayer().getBannedAssignments().get(i).getTaskName()
							.charAt(player.getSlayer().getBannedAssignments().get(i).getTaskName().length() - 1) == 's'
									? player.getSlayer().getBannedAssignments().get(i).getTaskName()
									: player.getSlayer().getBannedAssignments().get(i).getTaskName() + "s";
				} else {
					// player.banTask(false, i);
				}
			}
		}

		for (int i = 0; i < tasks.length; i++) {
			player.getPackets().sendIComponentText(161, 31 + i,
					tasks[i] == "" ? "                  No task has been banned!"
							: Colors.GOLDEN + "      *         " + tasks[i]);
		}
	}

	public void sendBossKillLog() {
		player.closeInterfaces();
		String names[] = {
				/* GWD Bosses */
				"General Graardor", "Kree'arra", "K'ril Tsutsaroth", "Commander Zilyana", "Nex",
				/* Dagannoth Kings */
				"Dagannoth Prime", "Dagannoth Rex", "Dagannoth Supreme",
				/* Kalphites and Black dragons */
				"King Black Dragon", "Queen Black Dragon", "Kalphite Queen", "Kalphite King",
				/* High-level bosses and Chaos */
				"Araxxor", "Vorago", "Corporeal Beast", "Chaos Elemental", "Glacor", "Tormented Demon",
				/* Legios */
				"Legio Primus", "Legio Secundus", "Legio Tertius", "Legio Quartus", "Legio Quintus", "Legio Sextus", };
		sendInterface(227);
		player.getPackets().sendIComponentText(227, 2, Colors.DARK_RED + Colors.SHAD + "Boss kill-log</col>");
		player.getPackets().sendIComponentText(227, 3, Colors.SALMON + Colors.SHAD
				+ Utils.formatPlayerNameForDisplay(player.getUsername()) + "'s killed bosses");
		for (int i = 0; i < names.length; i++) {
			player.getPackets().sendIComponentText(227, 5 + i, Colors.LPURPLE + Colors.SHAD + names[i] + ":</col> "
					+ (player.increaseKillStatistics(names[i].toLowerCase(), false) == 0 ? Colors.DARK_RED + "none"
							: Colors.LIME + "")
					+ " slain " + (player.increaseKillStatistics(names[i].toLowerCase(), false) == 0 ? "yet!"
							: player.increaseKillStatistics(names[i].toLowerCase(), false) + " total!"));
		}
		// fill the rest of the space with blank
		for (int i = 0; i < 54 - (5 + names.length); i++) {
			player.getPackets().sendIComponentText(227, 5 + names.length + i, "");
		}
	}

	public void openGeneralTeleportsInterface() {
		sendInterface(3083);
		GeneralTeleportingGroups.updateInterface(player, 65);
		player.getPackets().sendIComponentText(3083, 16, Settings.SERVER_NAME + " general teleports");
		player.setCloseInterfacesEvent(new Runnable() {
			@Override
			public void run() {
				player.setCloseInterfacesEvent(null);
				player.closeInterfaces();
				player.currentTeleportLocation = 0;
			}
		});
	}

	public void sendTaskComplete(AchievementList achievement) {
		int TasksLeft = AchievementList.getTotalSize() - player.getAchievements().getTotalCompleted();
		player.getInterfaceManager().sendTab(player.getInterfaceManager().isResizableScreen() ? 51 : 5, 1055);
		player.getPackets().sendHideIComponent(1055, 0, false);
		player.getPackets().sendIComponentSprite(1055, 13, 700);
		player.getPackets().sendRunScript(3970);
		player.getPackets().sendRunScript(3969);
		player.getPackets().sendRunScript(3968);
		player.getPackets().sendIComponentText(1055, 15, Colors.GREEN + achievement.getName() + "</col>"
				+ "<br><col=ffc800>" + TasksLeft + "</col> tasks to go!");
	}

	public void sendTabInterfaces(boolean hidden) {
		if (hidden) {
			player.getInterfaceManager().closeCombatStyles();
			player.getInterfaceManager().closeSkills();
			player.getInterfaceManager().closeInventory();
			player.getInterfaceManager().closeEquipment();
			player.getInterfaceManager().closePrayerBook();
			player.getInterfaceManager().closeMagicBook();
			player.getInterfaceManager().closeEmotes();
		} else {
			player.getInterfaceManager().sendTaskSystem();
			player.getInterfaceManager().sendQuests();
			player.getInterfaceManager().sendCombatStyles();
			player.getCombatDefinitions().sendUnlockAttackStylesButtons();
			player.getInterfaceManager().sendQuests();
			player.getInterfaceManager().sendSkills();
			player.getInterfaceManager().sendInventory();
			player.getInventory().unlockInventoryOptions();
			player.getInterfaceManager().sendEquipment();
			player.getInterfaceManager().sendPrayerBook();
			player.getPrayer().unlockPrayerBookButtons();
			player.getInterfaceManager().sendMagicBook();
			player.getInterfaceManager().sendEmotes();
			player.getEmotesManager().unlockEmotesBook();
		}
	}
}
Editor is loading...