public void setCustomTablist(Player player, List<String> slots) 
	{
		if (!this.playerCustomTablists.containsKey(player)) 
		{
			List<String> tablist = new ArrayList<String>();
			for (String string : slots) 
			{
				tablist.add(string);
			}
			
			for (int i = 0; i < tablist.size(); i++)
			{
				String slot = tablist.get(i);
				slot = userValues(slot, player);
				slot = textValues(slot);
				slot = editText(slot);

				tablist.set(i, slot);
			}

			List<Object> packets = new ArrayList<>();
			for (Player p : Bukkit.getOnlinePlayers()) 
			{
				if (player.canSee(p))
				{
					packets.add(this.packet.createTablistPacket(p.getPlayerListName(), false));
				}
			}

			for (String s : tablist) 
			{
				packets.add(this.packet.createTablistPacket(s, true));
			}

			for (Player p : Bukkit.getOnlinePlayers()) 
			{
				if (player.canSee(p))
				{
					packets.add(this.packet.createTablistPacket(p.getPlayerListName(), true, getPing(p)));
				}
			}
			this.playerCustomTablists.put(player, tablist);
			this.packet.sendPackets(player, packets);
		}
	}