Chat Channels - Hempfest/Clans GitHub Wiki

Below is a small example of creating and using a custom chat channel. Only those currently active within the channel can see its messages.

Tab completion


	@EventHandler
	public void onTabInstert(TabInsertEvent e) {
		List<String> tab2 = new ArrayList<>(Arrays.asList("secret"));
		String[] args = e.getCommandArgs();

		if (args[0].equalsIgnoreCase("chat")) {
			for (String t : tab2) {
				if (!e.getArgs(2).contains(t)) {
					e.add(2, t);
				}
			}
		}
	}

Command execution


	@EventHandler
	public void onChannelSwitch(SubCommandEvent e) {
		String[] args = e.getArgs();

		if (args.length == 2) {
			if (args[0].equalsIgnoreCase("chat")) {
				if (args[1].equalsIgnoreCase("secret")) {
					if (HempfestClans.chatMode.get(e.getSender()).equals("SECRET")) {
						HempfestClans.chatMode.put(e.getSender(), "GLOBAL");
						e.stringLibrary().sendMessage(e.getSender(), "Now in &fGLOBAL&7 chat");
					} else {
						HempfestClans.chatMode.put(e.getSender(), "SECRET");
						e.stringLibrary().sendMessage(e.getSender(), "Now in &6SECRET&7 chat");
					}
					e.setReturn(true);
				}
			}
		}
	}

Channel formatting


	@EventHandler
	public void onSecretChannel(CustomChatEvent e) {
		if (e.getChannel().equals("SECRET")) {
			e.setPrefix("&2(&aSecret&2) &7" + e.getChatting().getName() + " &r");
			e.setDivider("&7&o: &r");
			e.setHighlight("&f&o[&b" + HempfestClans.clanManager(e.getChatting()).getClanTag() + "&f&o]");
			e.setHoverMeta("&b&oI have &7&o" + HempfestClans.clanManager(e.getChatting()).getPower() + " &b&oclan power.");
			e.setPingSound(Sound.ENTITY_CHICKEN_EGG);
		}
	}

Output:


⚠️ **GitHub.com Fallback** ⚠️