Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package me.jarkyc.janesq;
- import org.bukkit.Bukkit;
- import org.bukkit.ChatColor;
- import org.bukkit.entity.Player;
- import org.bukkit.event.EventHandler;
- import org.bukkit.event.Listener;
- import org.bukkit.event.player.AsyncPlayerChatEvent;
- import org.bukkit.event.player.PlayerJoinEvent;
- import org.bukkit.event.player.PlayerQuitEvent;
- import org.bukkit.plugin.RegisteredServiceProvider;
- import org.bukkit.plugin.java.JavaPlugin;
- import net.milkbowl.vault.chat.Chat;
- import java.util.ArrayList;
- import java.util.HashMap;
- public class ChatChannels extends JavaPlugin implements Listener {
- private Chat chat;
- public HashMap<String, ArrayList<String>> channels = new HashMap<String, ArrayList<String>>();
- public ArrayList<String> global = new ArrayList<String>();
- @Override
- public void onEnable(){
- getServer().getPluginManager().registerEvents(this, this);
- System.out.println("Jane Online!");
- setupChat();
- //Add each player online to said list
- for(Player player : Bukkit.getOnlinePlayers()) {
- global.add(player.getDisplayName());
- }
- //Put the list of players into channels under global
- channels.put("Global", global);
- }
- private boolean setupChat() {
- RegisteredServiceProvider<Chat> rsp = getServer().getServicesManager().getRegistration(Chat.class);
- chat = rsp.getProvider();
- return chat != null;
- }
- @EventHandler
- public void onChat(AsyncPlayerChatEvent event){
- event.setCancelled(true);
- System.out.println("a player has sent a message");
- Player player = event.getPlayer();
- //String aprefix = getPrefix(player);
- String aprefix = chat.getPlayerPrefix(player);
- String message = event.getMessage();
- String in = getChannelIn(player);
- String dispname = event.getPlayer().getDisplayName();
- if(in == "Global") {
- Bukkit.broadcastMessage(ChatColor.GRAY + "[" + ChatColor.DARK_GREEN + in + ChatColor.GRAY + "]" + ChatColor.GRAY + "[" + aprefix + "]" + ChatColor.WHITE + dispname + "> " + message);
- } else {
- for(String people : channels.get(in)) {
- Bukkit.getPlayer(people).sendMessage(ChatColor.GRAY + "[" + ChatColor.DARK_GREEN + in + ChatColor.GRAY + "]" + ChatColor.WHITE + dispname + message );
- }
- event.setCancelled(true);
- }
- }
- public String getChannelIn(Player player){
- for(String key : channels.keySet()) {
- if(channels.get(key).contains(player.getDisplayName())){
- return key;
- }
- }
- return "global";
- }
- public void setChannelIn(Player player, String channel){
- if(channels.containsKey(channel)){
- String AlreadyIn = getChannelIn(player);
- channels.get(AlreadyIn).remove(player.getDisplayName());
- channels.get(channel).add(player.getDisplayName());
- player.sendMessage("You have joined " + channel);
- System.out.println(player + "has joined" + channel);
- }
- }
- @EventHandler
- public void onJoin(PlayerJoinEvent join){
- setChannelIn(join.getPlayer(), "global");
- System.out.println("Player joined!");
- }
- @EventHandler
- public void onLeave(PlayerQuitEvent quit){
- channels.get(getChannelIn(quit.getPlayer()));
- }
- //May be issue?
- /* public String getPrefix(Player player) {
- String prefix = chat.getPlayerPrefix(player);
- if (prefix != null) {
- return prefix;
- } else {
- return "";
- }
- } */
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement