Помогите StringList

EugeneRu

Новичок
Пользователь
Баллы
11
Как отправить игроку несколько строк сообщений которые указаны в конфиге.
Например вот так:
Test:
Test1:
1 - 'a'
2 - 'b'
3 - 'c'
 
yamlbeans
Код:
package Example;

import java.util.Map;

public class Tests {
    public Map<String, String[]> Test;
}
Код:
        YamlReader reader = new YamlReader(new FileReader("путь до конфига /config.yml"));
        player.sendMessage(reader.read(Tests.class).Test.get("Test1"));
 
yamlbeans
Код:
package Example;

import java.util.Map;

public class Tests {
    public Map<String, String[]> Test;
}
Код:
        YamlReader reader = new YamlReader(new FileReader("путь до конфига /config.yml"));
        player.sendMessage(reader.read(Tests.class).Test.get("Test1"));
это чё типо, аналог gson только на yml ?
 
Последнее редактирование:
Как отправить игроку несколько строк сообщений которые указаны в конфиге.
Например вот так:
Test:
Test1:
1 - 'a'
2 - 'b'
3 - 'c'
Не проще переписать их как
Код:
Test:
  test1:
    - "a"
    - "b"
    - "c"
И получать как getConfig().getStringList("Test.test1")?
 
Не проще переписать их как
Код:
Test:
  test1:
    - "a"
    - "b"
    - "c"
И получать как getConfig().getStringList("Test.test1")?
я их так и написал, только они сместились, а getConfig().getStringList("Test.test1") брал почему-то только первое сообщение, и отправлял его. А не все три как надо.
 
я их так и написал, только они сместились, а getConfig().getStringList("Test.test1") брал почему-то только первое сообщение, и отправлял его. А не все три как надо.
Во первых структура конфига должна быть правильной. YML чувствительный к пробелам.
Во вторых показывай полный код.
 
Если отправлять по одной строке, то будет небольшая задержка между сообщениями (на большом количетве будет заметно)
Поэтому, на мой взгляд, проще отправить игроку массив строк:
PHP:
// Эта строка преобразует список «stringList» типа String  в массив строк «stringArray»
String [] stringArray = stringList.toArray(new String[stringList.size()]);
 
Последнее редактирование:
Если отправлять по одной строке, то будет небольшая задержка между сообщениями (на большом количетве будет заметно)
Поэтому, на мой взгляд, проще отправить игроку массив строк:
PHP:
// Эта строка преобразует список «stringList» типа String  в массив строк «stringArray»
String [] stringArray = stringList.toArray(new String[stringList.size()]);
ты думаешь он массив целиком отправляет? Я предложил StringBuilder чтобы собрать все строки в одну и отправить. Т.е. будет отправлен 1 пакет вместо 4.
 
Я предложил StringBuilder чтобы собрать все строки в одну и отправить.
Разница небольшая ¯\_(ツ)_/¯

Т.е. будет отправлен 1 пакет вместо 4.
Но до этого он будет ещё собирать стоку 😁

UPD: в массиве сохранится перенос строки, а одна строка на то и одна, чтобы отправляться целиком 😁 Все прекрасно знаю про \n

ты думаешь он массив целиком отправляет?
Я не смотрел реализацию метода sendMessage)
 
Если отправлять по одной строке, то будет небольшая задержка между сообщениями (на большом количетве будет заметно)
Поэтому, на мой взгляд, проще отправить игроку массив строк:
PHP:
// Эта строка преобразует список «stringList» типа String  в массив строк «stringArray»
String [] stringArray = stringList.toArray(new String[stringList.size()]);
Сделал так, вроде работает https://pastebin.com/KcQELu9v
 
PHP:
#Конечно тут лучше юзать forEach, но так проще.
#(Уменьшил твой код)
for (String list : config.getStringList("test.test1")) {
#Отправляем строку
player.sendMessage(list);
}
 
Капец вы сложные list.toArray(new String[]{}) . А лучше бы заюзали как нормальные люди yamlbeans - gson.
 
Назад
Верх