1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Sponge: Будущее Bukkit и Minecraft моддинга в целом

Тема в разделе "Sponge", создана пользователем ql_Nik_lp, 10 сен 2014.

  1. Larin

    Larin Старожил Пользователь

    Баллы:
    103
    Я хотел оптимизировать и почистить диск C:, удалил там Windows и система не загрузилась, какая плохая Windows, лучше голый linux поставлю.
     
  2. sanjee

    sanjee Активный участник Пользователь

    Баллы:
    78
    Точно! Надо ставить линукс вместо windows!!
     
  3. Mr_RoboMan

    Mr_RoboMan Старожил Пользователь

    Баллы:
    123
    Нит :D
    Кстати, прикольная фишечка... Думаю даже очень... Но тут она мне пока не нужна.
    А вот тут у меня вопрос.
    Sponge, какого *уя?!
    Моя логика такова: если метод config.getNode принимает значения Object[], то я могу ему давать значения Object[], а не String[], и он сам чето как-то кастанет к String.
    Однако, видимо все-таки нет, и надо вручную все кастовать к String... WTF?!
    Итак, то как я решил протестить:
    Код:
        @Listener
        public void test(ClientConnectionEvent.Auth event) {
            GameProfile profile = event.getProfile();
            UUID uuid = profile.getUniqueId();
            ConfigurationNode node = config.getNode(uuid, "PASSWORD");
            Object value = node.getValue();
            System.out.println("ТУТ КАРОЧ ЗНАЧЕНИЕ = " + value);
            System.out.println("ТУТ КАРОЧЕ ТЕСТ №1 = " + config.getNode(uuid, "PASSWORD").getValue());
            System.out.println("ТУТ КАРОЧЕ ТЕСТ №2 = " + config.getNode(uuid.toString(), "PASSWORD").getValue());
            auth.put(uuid, value == null ? AuthType.REGISTER : AuthType.LOGIN);
        }
    И в итоге, последний вариант таки выдал мне мой пароль (PASSWORD)...
    [​IMG]
    Это баг, или так и задумано? Почему тогда метод принимает Object[] а не String[]?
     
  4. Larin

    Larin Старожил Пользователь

    Баллы:
    103
    Потому, что это нормальный сериализатор/десериализатор, а не баккитовское дерьмо, которое всё в непонятном виде хранит. Привыкай.
    Тебе надо так устанавливать значение:
    .setValue(TypeToken.of(UUID.class), newUuid);
    и получать его так, как я выше говорил.
    Это программирование НОРМАЛЬНОГО человека.
     
  5. Mr_RoboMan

    Mr_RoboMan Старожил Пользователь

    Баллы:
    123
    Так я же само UUID фактически никогда не выставляю...
    Ну как сказать...
    UUID у меня как-бы только как "ПУТЬ" до нужных мне значений по заданному UUID! Типо пароль, email, раса, etc...
    Но смысл плюс минус понял..
     
  6. Larin

    Larin Старожил Пользователь

    Баллы:
    103
    Тогда и храни UUID.toString()
    Вообще, ему без разницы, что десериализовывать. Если какой-то свой класс - то просто регистрируешь TypeSerializer и всё.
     
  7. Mr_RoboMan

    Mr_RoboMan Старожил Пользователь

    Баллы:
    123
    OKay, спасибо!)
    @Larin пока ты тут, скажи как делать лучше, что возвращать в методе Text getUsage (CommandCallable) если у меня в команде нету аргументов?
    т.е.,
    для команд регистрации и авторизации соответственно я делаю вот так:
    Код:
        @Override
        public Text getUsage(CommandSource source) {
            return Text.of("<race> <password> [email]");
        }
    Код:
        @Override
        public Text getUsage(CommandSource source) {
            return Text.of("<password>");
        }
    А если нету аргументов?
    Text.of(); ?
    Text.of("")?
    Или как?
     
  8. Larin

    Larin Старожил Пользователь

    Баллы:
    103
    https://docs.spongepowered.org/master/en/plugin/commands/creating.html

    Зачем ты CommandCallable используешь?
     
  9. Mr_RoboMan

    Mr_RoboMan Старожил Пользователь

    Баллы:
    123
  10. Larin

    Larin Старожил Пользователь

    Баллы:
    103
    Его нужно использовать только в том случае, когда builder'а не хватает, а так нужно использовать CommandExecutor.
     
  11. minecrafter123

    minecrafter123 Ньюби

    Баллы:
    1
    Имя в Minecraft:
    der_shlanger
    Когда уже релиз sponge vanilla?!
     
  12. InterVi

    InterVi Старожил Пользователь

    Баллы:
    173
    давно был
     
  13. minecrafter123

    minecrafter123 Ньюби

    Баллы:
    1
    Имя в Minecraft:
    der_shlanger
    Там только бета версии...
     
  14. Mr_RoboMan

    Mr_RoboMan Старожил Пользователь

    Баллы:
    123
    Которые более чем играбельные, и под них даже можно писать плагины...
     
  15. _MediaNik_

    _MediaNik_ Активный участник Пользователь

    Баллы:
    76
    Skype:
    Medianik5
    Имя в Minecraft:
    _MediaNik_
    А*******но прям.
     
  16. InterWall

    InterWall Старожил Пользователь

    Баллы:
    173
    А чем не нравится? Губка развивается, с бакитом тоже самое было. Пока дождутся рекоммендет билда уже следующая версия выходит.
     
  17. Mr_RoboMan

    Mr_RoboMan Старожил Пользователь

    Баллы:
    123
    Ребят, а как изменить имя игрока над головой БЕЗ ScoreBoard, Team, и прочего?
    Просто поменять цвет, возможно ли?
     
  18. _MediaNik_

    _MediaNik_ Активный участник Пользователь

    Баллы:
    76
    Skype:
    Medianik5
    Имя в Minecraft:
    _MediaNik_
    Если есть методы CustomName то можно
    Код:
    player.setCustomName("&3"+player.getName())
    plaer.setVisibleCustomName(true); //Или похожий метод
    
    P.S. И пофиг, что вопрос был поставлен 4 дня назад
     
  19. Mr_RoboMan

    Mr_RoboMan Старожил Пользователь

    Баллы:
    123
    А ты мне не втираешь какую-то дичь? Это же ведрянские методы... В губке таких вроде как нету...
     
  20. _MediaNik_

    _MediaNik_ Активный участник Пользователь

    Баллы:
    76
    Skype:
    Medianik5
    Имя в Minecraft:
    _MediaNik_
    Я не проверял, может аналогичные там есть? Или такие же.. Я лишь предположил
     

Поделиться этой страницей