помощь

  • Майская распродажа!

    Впереди теплые праздники, цены таят на глазах! Поздравляем вас и дарим вам специальный купон.
    Мы предлагаем вам специальное предложение на подписку, действительное только по временному купону.
    Обнови свой сервер с лучшими сборками, плагинами и картами!

    Купон
    MAY20
  • Мы теперь в Discord

    Мы рады объявить, что теперь у нас есть сервер Discord. В честь этого мы проводим розыгрыш!
    Теперь вы можете легко связаться с нами и другими участниками сообщества,
    обмениваться идеями и получать обновления о нашей деятельности.

  • EXCLUSIVE ⚡

    Гость, покупая подписку, ты увеличишь свои доходы в разы!
    Мы делаем самые актуальные сборки, переводим лучшие приватные плагины, а так-же обновляем их и фиксим любые ошибки.
    Дешевле, чем студии и другие разработчики!

  • Приветствуем тебя Гость!⁣

    Недавно на форуме? Не знаешь как можно скачивать ресурсы?
    Для этого нужно лишь зарегистрировать на форуме, и получать доступ к профессиональным плагинам, оптимизированным настройкам.
    Здесь только самое лучшее.

  • Обновленный «Mc-market.ru»

    Теперь у вас есть возможность продавать свои товары на Minecraft маркете.
    Это отличная возможность для вас начать зарабатывать на своих навыках и труде.
    Начни продавать сейчас!

  • Интеграция ChatGPT

    Администраторы Minecraft могут столкнуться с различными проблемами, связанными с работой серверов и кодом.
    Однако, благодаря инновационным технологиям, искусственный интеллект может помочь решить эти проблемы.
    Реши свою любую проблему сейчас!

K0lbasa

Пользователь
19 Фев 2021
255
0
16
Исправь код:


public void setPerms(String clan, String role, String perms) {
List<String> list = cfg.getStringList(clan+".Roles");

for(String s : list) {
if(s.contains(role)) {
if (perms.equals("")) {
list.set(list.indexOf(s), s);
} else {
list.set(list.indexOf(s), s+" "+perms);
}
}
} cfg.set(clan+".Roles", list);
SClans.getInstance().saveConfig();
}

public List<String> getPerms(String clan, String role) {
for(String s : cfg.getStringList(clan+".Roles")) {
if(!s.equals(role) && s.contains(role)) {
String[] p1 = s.split("\\s");
if (!p1[1].contains("-")) {
return new ArrayList<>(Collections.singletonList(p1[1]));
} else {
String[] p = p1[1].split("-");
return new ArrayList<>(Arrays.asList(p));
}
}
} return new ArrayList<>();
}
 

ChatGPT ?

Официальный
30 Мар 2023
630
5
1
Необходимо добавить try-catch блоки и закрытие ресурсов для правильного использования конфигурационного файла. Ниже приведен исправленный код:

public void setPerms(String clan, String role, String perms) {
List<String> list = null;
try {
list = cfg.getStringList(clan + ".Roles");
} catch (Exception e) {
e.printStackTrace();
}

for (String s : list) {
if (s.contains(role)) {
if (perms.equals("")) {
list.set(list.indexOf(s), s);
} else {
list.set(list.indexOf(s), s + " " + perms);
}
}
}

try {
cfg.set(clan + ".Roles", list);
SClans.getInstance().saveConfig();
} catch (Exception e) {
e.printStackTrace();
}
}

public List<String> getPerms(String clan, String role) {
List<String> result = new ArrayList<String>();
try {
for (String s : cfg.getStringList(clan + ".Roles")) {
if (!s.equals(role) && s.contains(role)) {
String[] p1 = s.split("\\s");
if (!p1[1].contains("-")) {
result.add(p1[1]);
} else {
String[] p = p1[1].split("-");
result.addAll(Arrays.asList(p));
}
}
}
} catch (Exception e) {
e.printStackTrace();
}

return result;
}
 

K0lbasa

Пользователь
19 Фев 2021
255
0
16
Необходимо добавить try-catch блоки и закрытие ресурсов для правильного использования конфигурационного файла. Ниже приведен исправленный код:

public void setPerms(String clan, String role, String perms) {
List<String> list = null;
try {
list = cfg.getStringList(clan + ".Roles");
} catch (Exception e) {
e.printStackTrace();
}

for (String s : list) {
if (s.contains(role)) {
if (perms.equals("")) {
list.set(list.indexOf(s), s);
} else {
list.set(list.indexOf(s), s + " " + perms);
}
}
}

try {
cfg.set(clan + ".Roles", list);
SClans.getInstance().saveConfig();
} catch (Exception e) {
e.printStackTrace();
}
}

public List<String> getPerms(String clan, String role) {
List<String> result = new ArrayList<String>();
try {
for (String s : cfg.getStringList(clan + ".Roles")) {
if (!s.equals(role) && s.contains(role)) {
String[] p1 = s.split("\\s");
if (!p1[1].contains("-")) {
result.add(p1[1]);
} else {
String[] p = p1[1].split("-");
result.addAll(Arrays.asList(p));
}
}
}
} catch (Exception e) {
e.printStackTrace();
}

return result;
}
Не в этом дело. Метод setPerms() устанавливает значения для других строк в списке. BukkitAPI.
 

ChatGPT ?

Официальный
30 Мар 2023
630
5
1
Не в этом дело. Метод setPerms() устанавливает значения для других строк в списке. BukkitAPI.
Измените код метода setPerms следующим образом, чтобы он устанавливал права только для заданной роли внутри списка:

public void setPerms(String clan, String role, String perms) {
List<String> list = null;
try {
list = cfg.getStringList(clan + ".Roles");
} catch (Exception e) {
e.printStackTrace();
}

for (int i = 0; i < list.size(); i++) {
if (list.get(i).contains(role)) {
String s = list.get(i);
if (perms.isEmpty()) {
s = s.split(" ")[0];
} else {
String[] parts = s.split(" ");
s = parts[0] + " " + perms;
}
list.set(i, s);
}
}

try {
cfg.set(clan + ".Roles", list);
SClans.getInstance().saveConfig();
} catch (Exception e) {
e.printStackTrace();
}
}

Этот код будет проходить список строк и изменять только ту, которая содержит указанную роль. Если строки не содержат указанной роли, то никакие правки не будут внесены.
 

K0lbasa

Пользователь
19 Фев 2021
255
0
16
Не в этом дело. Метод setPerms() устанавливает значения для других строк в списке. BukkitAPI.

Измените код метода setPerms следующим образом, чтобы он устанавливал права только для заданной роли внутри списка:

public void setPerms(String clan, String role, String perms) {
List<String> list = null;
try {
list = cfg.getStringList(clan + ".Roles");
} catch (Exception e) {
e.printStackTrace();
}

for (int i = 0; i < list.size(); i++) {
if (list.get(i).contains(role)) {
String s = list.get(i);
if (perms.isEmpty()) {
s = s.split(" ")[0];
} else {
String[] parts = s.split(" ");
s = parts[0] + " " + perms;
}
list.set(i, s);
}
}

try {
cfg.set(clan + ".Roles", list);
SClans.getInstance().saveConfig();
} catch (Exception e) {
e.printStackTrace();
}
}

Этот код будет проходить список строк и изменять только ту, которая содержит указанную роль. Если строки не содержат указанной роли, то никакие правки не будут внесены.
Спасибо большое, без тебя я бы искал проблему 1 год :)
 

Помочь проекту! 💕

Собрано
"40,197.60" ₽
Цель
"50,000.00" ₽

Новые сообщения

Последние ресурсы