Помогите Как проверить у list contains, есть ли в нём определённое айпи или слово

  • Автор темы Автор темы ItsWay
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

ItsWay

Активный участник
Пользователь
Баллы
76
Имя в Minecraft
ItsWay
нужно чекнуть в списке через if, есть ли в списке айпи игрока или как пример для меня 136.153.5.8(другое любое число).
Имею вот это -

File ipfile = new File("plugins/mHubAPI/ips.yml");
FileConfiguration players = YamlConfiguration.loadConfiguration(ipfile);
List<String> list = players.getStringList("ip-white");
if(list.isEmpty()) list = new ArrayList<String>();
 
Пробовал вот так
if (list.contains("192.168")) {
}

В итоге код выполняеться и без того что бы в списке было 192.168
 
Если тебе нужно проверять, начинается ли ip с этих цифр, тебе нужно перебором проходится по каждому айпишнику из списка и проверять, содержатся ли в этом айпишнике твои цифры (String#contains)
 
Если тебе нужно проверять, начинается ли ip с этих цифр, тебе нужно перебором проходится по каждому айпишнику из списка и проверять, содержатся ли в этом айпишнике твои цифры (String#contains)
Нет, я как пример взял эти цифры, акак тогда я могу проверить, есть ли это число(не важно какое(потом сделаю по айпи игроков)) находиться в одном из строке, у меня ips.yml устроен таk:
ip-white:
- 192.168.4.2
- 464.368.2.8
и т.д)
 
Нет, я как пример взял эти цифры, акак тогда я могу проверить, есть ли это число(не важно какое(потом сделаю по айпи игроков)) находиться в одном из строке, у меня ips.yml устроен таk:
ip-white:
- 192.168.4.2
- 464.368.2.8
и т.д)
Нужно пройтись по списку и потом на строке использовать метод contains
 
Код:
for (String s : list) {
    if (s.contains("192.168")) {
      
    }
}
Честно, не работает, вот так сделал я:
Код:
    @EventHandler
    public void isOppedPlayer(PlayerCommandPreprocessEvent event) {
        
        Player player = event.getPlayer();
        
        
        File playersfile = new File("plugins/AntiCheatM/ips.yml");
        FileConfiguration players = YamlConfiguration.loadConfiguration(playersfile);
        @SuppressWarnings("unused")
        List<String> list = players.getStringList("ip-white");
        if(player.isOp()) {
            for (String ips : list) {
                 if (ips.contains(String.valueOf(player.getAddress().toString()))) { 
            FileConfiguration config = plugin.getConfig();
            event.getPlayer().sendMessage(config.getString("messages.IsOppedwarn").replace("&", "§"));
            event.getPlayer().sendTitle(config.getString("messages.title").replace("&", "§"), config.getString("messages.IsOppedwarn").replace("&", "§"));
            event.getPlayer().setWalkSpeed(0);
            event.getPlayer().damage(0);
            event.getPlayer().setGlowing(false);
             if(!event.getMessage().startsWith("/CMD")) {
                    event.setCancelled(true);
                    player.sendMessage(config.getString("messages.AccessNone"));
             }
            for(Player p : Bukkit.getOnlinePlayers()) {
                if(p.hasPermission("HubAPI.notify.staff")) {
                    p.sendMessage(config.getString("messages.WarnToNotifyStaff").replace("&", "§"));
                    
                       }
                    }
                 }
            }
        }
    }
 
Честно, не работает, вот так сделал я:
Код:
    @EventHandler
    public void isOppedPlayer(PlayerCommandPreprocessEvent event) {
       
        Player player = event.getPlayer();
       
       
        File playersfile = new File("plugins/AntiCheatM/ips.yml");
        FileConfiguration players = YamlConfiguration.loadConfiguration(playersfile);
        @SuppressWarnings("unused")
        List<String> list = players.getStringList("ip-white");
        if(player.isOp()) {
            for (String ips : list) {
                 if (ips.contains(String.valueOf(player.getAddress().toString()))) {
            FileConfiguration config = plugin.getConfig();
            event.getPlayer().sendMessage(config.getString("messages.IsOppedwarn").replace("&", "§"));
            event.getPlayer().sendTitle(config.getString("messages.title").replace("&", "§"), config.getString("messages.IsOppedwarn").replace("&", "§"));
            event.getPlayer().setWalkSpeed(0);
            event.getPlayer().damage(0);
            event.getPlayer().setGlowing(false);
             if(!event.getMessage().startsWith("/CMD")) {
                    event.setCancelled(true);
                    player.sendMessage(config.getString("messages.AccessNone"));
             }
            for(Player p : Bukkit.getOnlinePlayers()) {
                if(p.hasPermission("HubAPI.notify.staff")) {
                    p.sendMessage(config.getString("messages.WarnToNotifyStaff").replace("&", "§"));
                   
                       }
                    }
                 }
            }
        }
    }
Пробовал ещё вот так:
@EventHandler
public void isOppedPlayer(PlayerCommandPreprocessEvent event) {

Player player = event.getPlayer();


File playersfile = new File("plugins/AntiCheatM/ips.yml");
FileConfiguration players = YamlConfiguration.loadConfiguration(playersfile);
List<String> list = players.getStringList("ip-white");
if(player.isOp()) {
for (String ips : list) {
if (ips.contains(player.getAddress().toString())) {
FileConfiguration config = plugin.getConfig();
event.getPlayer().sendMessage(config.getString("messages.IsOppedwarn").replace("&", "§"));
event.getPlayer().sendTitle(config.getString("messages.title").replace("&", "§"), config.getString("messages.IsOppedwarn").replace("&", "§"));
event.getPlayer().setWalkSpeed(0);
event.getPlayer().damage(0);
event.getPlayer().setGlowing(false);
if(!event.getMessage().startsWith("/CMD")) {
event.setCancelled(true);
player.sendMessage(config.getString("messages.AccessNone"));
}
for(Player p : Bukkit.getOnlinePlayers()) {
if(p.hasPermission("HubAPI.notify.staff")) {
p.sendMessage(config.getString("messages.WarnToNotifyStaff").replace("&", "§"));

}
}
}
}
}
 
Пробовал ещё вот так:
@EventHandler
public void isOppedPlayer(PlayerCommandPreprocessEvent event) {

Player player = event.getPlayer();


File playersfile = new File("plugins/AntiCheatM/ips.yml");
FileConfiguration players = YamlConfiguration.loadConfiguration(playersfile);
List<String> list = players.getStringList("ip-white");
if(player.isOp()) {
for (String ips : list) {
if (ips.contains(player.getAddress().toString())) {
FileConfiguration config = plugin.getConfig();
event.getPlayer().sendMessage(config.getString("messages.IsOppedwarn").replace("&", "§"));
event.getPlayer().sendTitle(config.getString("messages.title").replace("&", "§"), config.getString("messages.IsOppedwarn").replace("&", "§"));
event.getPlayer().setWalkSpeed(0);
event.getPlayer().damage(0);
event.getPlayer().setGlowing(false);
if(!event.getMessage().startsWith("/CMD")) {
event.setCancelled(true);
player.sendMessage(config.getString("messages.AccessNone"));
}
for(Player p : Bukkit.getOnlinePlayers()) {
if(p.hasPermission("HubAPI.notify.staff")) {
p.sendMessage(config.getString("messages.WarnToNotifyStaff").replace("&", "§"));

}
}
}
}
}
Код:
player.getAddress().getAddress().getHostAddress()
 
Код:
player.getAddress().getAddress().getHostAddress()
Всё равно, айпи получает, но то что ты давал
for (String ips : list) {
if (ips.contains("число(прост так написал там айпи)")
не работает, надо другое, он не то чекает..
 
Да навтыкай уже везде System.out.ptintln() и посмотри, что там у тебя происходит.
Что возвращает адрес от игрока? Что находится в ips?
 
Да навтыкай уже везде System.out.ptintln() и посмотри, что там у тебя происходит.
Что возвращает адрес от игрока? Что находится в ips?
ВОТ:

ip-white:
- 192.168.1.109
- 192.168.1.109

Это айпишник.
 
Не надо мне конфиг. Ты посмотри, что в ips и что возвращает адрес от игрока.
 
Не надо мне конфиг. Ты посмотри, что в ips и что возвращает адрес от игрока.

File ipfile = new File("plugins/AntiCheatM/ips.yml");
FileConfiguration ips = YamlConfiguration.loadConfiguration(ipfile);
List<String> list = ips.getStringList("ip-white");
Это вызов списка айпишников
 
Я сделал так:

if(player.isOp()) {
for (String ips : list) {
if (ips.contains(player.getAddress().getAddress().getHostAddress())) {

System.out.print("vse ok!!");
}
}

}
Не работает, нечего не пишет в консоль
 
Да что ж такое-то? Вроде по-русски пишу.

Кароч.
После начала цикла вставь (перед сравнением):

System.out.ptintln("=1=" + ips);
System.out.ptintln("=2=" + player.getAddress().getAddress().getHostAddress());

Запусти.
Посмотри в консоль.
 
Да что ж такое-то? Вроде по-русски пишу.

Кароч.
После начала цикла вставь (перед сравнением):

System.out.ptintln("=1=" + ips);
System.out.ptintln("=2=" + player.getAddress().getAddress().getHostAddress());

Запусти.
Посмотри в консоль.
Ну только одно не понятно, какого цикла, активации эвента? проверки есть ли операторка? проверка есть ли в списке?
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх