Solved Essentials tempban conflicting with custom bans? :O

Discussion in 'Plugin Development' started by viper_monster, Jan 16, 2014.

Thread Status:
Not open for further replies.
  1. Offline

    viper_monster

    Hey! I have recently made a custom ban plugin for my server. I have the latest dev version of Essentials installed on the server and its somehow conflicting with it. It says that that player is temp banned for his last tempban time.

    Ban command:
    PHP:
        @Override
        
    public boolean onCommand(CommandSender senderCommand commandString commandLabelString[] args) {
            if (!
    Main.getPl().playerUtils.hasPermission(sender"ban")) {
                
    Main.getPl().messageUtils.noPermission(sender);
                return 
    true;
            }
     
            if (
    args.length == 1) {
                
    Player target Bukkit.getServer().getPlayerExact(args[0]);
     
                if (
    target == null) {
                    
    OfflinePlayer offlineTarget Bukkit.getServer().getOfflinePlayer(args[0]);
     
                    if (
    Main.getPl().banImmunity.getConfig().getStringList("immune").contains(offlineTarget.getName())) {
                        
    Main.getPl().messageUtils.sendMessage(sender"&cYou can't ban &r" offlineTarget.getName() + "&c, he is immune to bans!");
                        return 
    true;
                    }
     
                    
    ConfigUtils userConfig = new ConfigUtils("PlayerData" File.separator offlineTarget.getName());
     
                    
    userConfig.setValue("ban-info.banned"true);
                    
    userConfig.setValue("ban-info.banned-by"sender.getName());
                    
    userConfig.setValue("ban-info.time"System.nanoTime());
                    
    userConfig.setValue("ban-info.reason""&4You have been banned!;- &bYou can appeal at duckzcraft.com");
                    
    userConfig.saveConfig();
     
                    
    Bukkit.getServer().broadcastMessage(Main.getPl().messageUtils.translateColors(String.format("%s &7was banned by %s."offlineTarget.getName(), ((sender instanceof Player) ? ((Playersender).getDisplayName() : sender.getName()))));
                    return 
    true;
                }
     
                if (
    Main.getPl().playerUtils.hasPermission(target"ban.immune")) {
                    
    Main.getPl().messageUtils.sendMessage(sender"&cYou can't ban &r" target.getDisplayName() + "&c, he is immune to bans!");
                    return 
    true;
                }
     
                
    ConfigUtils userConfig = new ConfigUtils("PlayerData" File.separator target.getName());
     
                
    userConfig.setValue("ban-info.banned"true);
                
    userConfig.setValue("ban-info.banned-by"sender.getName());
                
    userConfig.setValue("ban-info.time"System.nanoTime());
                
    userConfig.setValue("ban-info.reason""&4The ban hammer has spoken!");
                
    userConfig.saveConfig();
     
                
    target.kickPlayer(Main.getPl().messageUtils.translateColors(String.format("&4%s;- &bBanned by: &c%s;- &bYou can appeal at duckzcraft.com""The ban hammer has spoken!"sender.getName()).replaceAll(";-""\n" "\n")));
     
                
    Bukkit.getServer().broadcastMessage(Main.getPl().messageUtils.translateColors(String.format("%s &7was banned by %s."target.getName(), ((sender instanceof Player) ? ((Playersender).getDisplayName() : sender.getName()))));
                return 
    true;
            } else if (
    args.length 1) {
                
    Player target Bukkit.getServer().getPlayerExact(args[0]);
                
    String banMessage Main.getPl().messageUtils.getString(args1);
     
                if (
    target == null) {
                    
    OfflinePlayer offlineTarget Bukkit.getServer().getOfflinePlayer(args[0]);
     
                    if (
    Main.getPl().banImmunity.getConfig().getStringList("immune").contains(offlineTarget.getName())) {
                        
    Main.getPl().messageUtils.sendMessage(sender"&cYou can't ban &r" offlineTarget.getName() + "&c, he is immune to bans!");
                        return 
    true;
                    }
     
                    
    ConfigUtils userConfig = new ConfigUtils("PlayerData" File.separator offlineTarget.getName());
     
                    
    userConfig.setValue("ban-info.banned"true);
                    
    userConfig.setValue("ban-info.banned-by"sender.getName());
                    
    userConfig.setValue("ban-info.time"System.nanoTime());
                    
    userConfig.setValue("ban-info.reason"banMessage);
                    
    userConfig.saveConfig();
     
                    
    Bukkit.getServer().broadcastMessage(Main.getPl().messageUtils.translateColors(String.format("%s &7was banned by %s."offlineTarget.getName(), ((sender instanceof Player) ? ((Playersender).getDisplayName() : sender.getName()))));
                    return 
    true;
                }
     
                if (
    Main.getPl().playerUtils.hasPermission(target"ban.immune")) {
                    
    Main.getPl().messageUtils.sendMessage(sender"&cYou can't ban &r" target.getDisplayName() + "&c, he is immune to bans!");
                    return 
    true;
                }
     
                
    ConfigUtils userConfig = new ConfigUtils("PlayerData" File.separator target.getName());
     
                
    userConfig.setValue("ban-info.banned"true);
                
    userConfig.setValue("ban-info.banned-by"sender.getName());
                
    userConfig.setValue("ban-info.time"System.nanoTime());
                
    userConfig.setValue("ban-info.reason"banMessage);
                
    userConfig.saveConfig();
     
                
    target.kickPlayer(Main.getPl().messageUtils.translateColors(String.format("&4%s;- &bBanned by: &c%s;- &bYou can appeal at duckzcraft.com"banMessagesender.getName()).replaceAll(";-""\n" "\n")));
     
                
    Bukkit.getServer().broadcastMessage(Main.getPl().messageUtils.translateColors(String.format("%s &7was banned by %s."target.getName(), ((sender instanceof Player) ? ((Playersender).getDisplayName() : sender.getName()))));
                return 
    true;
            } else {
                
    Main.getPl().messageUtils.sendUsage(sendercommandcommandLabel);
                return 
    true;
            }
        }
    PlayerLoginEvent:
    PHP:
        @EventHandler
        
    public void onPlayerLogin(PlayerLoginEvent event) {
            
    Player player event.getPlayer();
            
    ConfigUtils userConfig = new ConfigUtils("PlayerData" File.separator player.getName());
            
    String banMessage userConfig.getConfig().getString("ban-info.reason");
            
    String bannedBy userConfig.getConfig().getString("ban-info.banned-by");
     
            if (
    userConfig.getConfig().getBoolean("ban-info.banned"false)) {
                
    event.setResult(PlayerLoginEvent.Result.KICK_BANNED);
                
    event.setKickMessage(Main.getPl().messageUtils.translateColors(String.format("&4%s;- &bBanned by: &c%s;- &bYou can appeal at duckzcraft.com"banMessagebannedBy).replaceAll(";-""\n" "\n")));
            }
        }
     
  2. Offline

    SuperOmegaCow

    spoljo666 try using the command processor event
     
  3. Offline

    viper_monster

    SuperOmegaCow how would that help? ...

    EDIT: When they get banned the kick message is correct, but when they try to reconnect, the message is wrong, it shows that he is temp banned(from Essentials).
     
  4. Offline

    SuperOmegaCow

    spoljo666 try the precessor and set the event to cancelled
     
  5. Offline

    viper_monster

    SuperOmegaCow that event can't be cancelled...

    Setting the priority to HIGHEST worked :p

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 6, 2016
Thread Status:
Not open for further replies.

Share This Page