PermissionsEx Staff Chat

Discussion in 'Plugin Development' started by GodzillaFlame42, Aug 11, 2016.

Thread Status:
Not open for further replies.
  1. So i am trying to get the players PermissionsEx prefix that they have in the staff chat but for some reason it wont let me talk when i enable staff chat.

    Here is the code:
    Code:
    package me.godzilla;
    
    import java.util.ArrayList;
    import java.util.logging.Logger;
    
    import org.bukkit.Bukkit;
    import org.bukkit.ChatColor;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandSender;
    import org.bukkit.configuration.file.FileConfiguration;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.player.AsyncPlayerChatEvent;
    import org.bukkit.plugin.PluginDescriptionFile;
    import org.bukkit.plugin.java.JavaPlugin;
    
    import ru.tehkode.permissions.bukkit.PermissionsEx;
    
    public class Main extends JavaPlugin implements Listener {
        private FileConfiguration config = getConfig();
        private ArrayList<String> staff = new ArrayList<String>();
        private String prefix = config.getString("Prefix");
        private String[] args;
      
        @EventHandler
        public void onChat (AsyncPlayerChatEvent e) {
            Player player = e.getPlayer();
            if(staff.contains(player.getName())){
                e.setCancelled(true);
                Player tplayer = player.getServer().getPlayer(args[0]);
                for(Player p : Bukkit.getOnlinePlayers()) {
                if(staff.contains(p.getName())){
                    String format = config.getString("Chat Format");
                    format = format.replaceAll("%player%", player.getName());
                    format = format.replaceAll("%displayname%", player.getDisplayName());
                    format = format.replaceAll("%message%", e.getMessage());
                    format = format.replaceAll("%prefix%", prefix);
                    p.sendMessage(ChatColor.AQUA + ChatColor.BOLD.toString() + "Staff Chat" + ChatColor.DARK_GRAY + " >> " + PermissionsEx.getUser(tplayer).getOwnPrefix() + ChatColor.GRAY + player.getName() + ChatColor.DARK_GRAY + ": " + ChatColor.GRAY + e.getMessage());
                }
                }
            }
        }
    
    @Override
    public void onDisable() {
      
    }
    
    @Override
    public void onEnable() {
        Bukkit.getPluginManager().registerEvents(this, this);
        saveDefaultConfig();
      
    }
      
        @Override
        public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
            if(label.equalsIgnoreCase("sc")) {
                if(!(sender instanceof Player)) {
                    sender.sendMessage(ChatColor.RED + "You must be a player in-game to use this command.");
                    return true;
                }
              
                Player player = (Player) sender;
              
                if (args.length == 0) {
                    player.sendMessage(ChatColor.BLUE + "Staff" + ChatColor.DARK_GRAY + " >> " + ChatColor.YELLOW + "/sc toggle " + ChatColor.GRAY + "to turn on Staff Chat.");
                }
                if(args[0].equalsIgnoreCase("toggle"));
                    if(!player.hasPermission("staffchat.toggle")){
                        String noPerm = config.getString("No Permission");
                        player.sendMessage(noPerm);
                        return true;
                    }
                    if(!staff.contains(player.getName())){
                        staff.add(player.getName());
                        player.sendMessage(ChatColor.BLUE + "Staff" + ChatColor.DARK_GRAY + " >> " + ChatColor.GRAY + "Staff Chat has been Enabled.");
                        return true;
                    }
                    staff.remove(player.getName());
                    player.sendMessage(ChatColor.BLUE + "Staff" + ChatColor.DARK_GRAY + " >> " + ChatColor.GRAY + "Staff Chat has been Disabled.");
                    return true;
            }
            return false;
        }
    }
    Here is the console error:
    Code:
    [13:19:53 ERROR]: Could not pass event AsyncPlayerChatEvent to StaffChat v1.0
    
    org.bukkit.event.EventException
    
    at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:302) ~[craftbukkit.jar:git-Bukkit-e1ebe52]
    
    at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[craftbukkit.jar:git-Bukkit-e1ebe52]
    
    at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:501) [craftbukkit.jar:git-Bukkit-e1ebe52]
    
    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:483) [craftbukkit.jar:git-Bukkit-e1ebe52]
    
    at net.minecraft.server.v1_8_R3.PlayerConnection.chat(PlayerConnection.java:1031) [craftbukkit.jar:git-Bukkit-e1ebe52]
    
    at net.minecraft.server.v1_8_R3.PlayerConnection.a(PlayerConnection.java:980) [craftbukkit.jar:git-Bukkit-e1ebe52]
    
    at net.minecraft.server.v1_8_R3.PacketPlayInChat.a(SourceFile:37) [craftbukkit.jar:git-Bukkit-e1ebe52]
    
    at net.minecraft.server.v1_8_R3.PacketPlayInChat.a(SourceFile:9) [craftbukkit.jar:git-Bukkit-e1ebe52]
    
    at net.minecraft.server.v1_8_R3.NetworkManager.a(NetworkManager.java:115) [craftbukkit.jar:git-Bukkit-e1ebe52]
    
    at net.minecraft.server.v1_8_R3.NetworkManager.channelRead0(NetworkManager.java:312) [craftbukkit.jar:git-Bukkit-e1ebe52]
    
    at net.minecraft.server.v1_8_R3.NetworkManager.channelRead0(NetworkManager.java:1) [craftbukkit.jar:git-Bukkit-e1ebe52]
    
    at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105) [craftbukkit.jar:git-Bukkit-e1ebe52]
    
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333) [craftbukkit.jar:git-Bukkit-e1ebe52]
    
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:319) [craftbukkit.jar:git-Bukkit-e1ebe52]
    
    at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:163) [craftbukkit.jar:git-Bukkit-e1ebe52]
    
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333) [craftbukkit.jar:git-Bukkit-e1ebe52]
    
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:319) [craftbukkit.jar:git-Bukkit-e1ebe52]
    
    at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:163) [craftbukkit.jar:git-Bukkit-e1ebe52]
    
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333) [craftbukkit.jar:git-Bukkit-e1ebe52]
    
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:319) [craftbukkit.jar:git-Bukkit-e1ebe52]
    
    at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:163) [craftbukkit.jar:git-Bukkit-e1ebe52]
    
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333) [craftbukkit.jar:git-Bukkit-e1ebe52]
    
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:319) [craftbukkit.jar:git-Bukkit-e1ebe52]
    
    at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103) [craftbukkit.jar:git-Bukkit-e1ebe52]
    
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333) [craftbukkit.jar:git-Bukkit-e1ebe52]
    
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:319) [craftbukkit.jar:git-Bukkit-e1ebe52]
    
    at io.netty.handler.timeout.ReadTimeoutHandler.channelRead(ReadTimeoutHandler.java:150) [craftbukkit.jar:git-Bukkit-e1ebe52]
    
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333) [craftbukkit.jar:git-Bukkit-e1ebe52]
    
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:319) [craftbukkit.jar:git-Bukkit-e1ebe52]
    
    at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:787) [craftbukkit.jar:git-Bukkit-e1ebe52]
    
    at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:130) [craftbukkit.jar:git-Bukkit-e1ebe52]
    
    at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:511) [craftbukkit.jar:git-Bukkit-e1ebe52]
    
    at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:468) [craftbukkit.jar:git-Bukkit-e1ebe52]
    
    at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:382) [craftbukkit.jar:git-Bukkit-e1ebe52]
    
    at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:354) [craftbukkit.jar:git-Bukkit-e1ebe52]
    
    at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:116) [craftbukkit.jar:git-Bukkit-e1ebe52]
    
    at java.lang.Thread.run(Thread.java:745) [?:1.8.0_102]
    
    Caused by: java.lang.NullPointerException
    
    at me.godzilla.Main.onChat(Main.java:31) ~[?:?]
    
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_102]
    
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_102]
    
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_102]
    
    at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_102]
    
    at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:300) ~[craftbukkit.jar:git-Bukkit-e1ebe52]
    
    ... 36 more
     
    Last edited by a moderator: Aug 11, 2016
  2. Offline

    Zombie_Striker

    The reason why you are get6ting this error is because something is null on line 31. Figure out what is null, and make sure it can no longer be null.
     
  3. Could you post your code?
     
  4. Offline

    Lordloss

    you never assign args, so it should be the null thing.
     
Thread Status:
Not open for further replies.

Share This Page