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

Помогите Как получить переменную из Main класса в OnTabCompliter

Тема в разделе "Разработка плагинов для новичков", создана пользователем Trolerne, 27 янв 2022.

Метки:
  1. Автор темы
    Trolerne

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

    Баллы:
    66
    В классе:
    Код:
    public class OnTabComplete implements TabCompleter {
    мне нужно получить переменную из main класса:
    когда я пытаюсь инициировать ее вот-так:
    Код:
    RDEHMain main = new RDEHMain();
    //RDEHMain - главный класс
    
    Мне пишет initial intilization.
    Что делать?
     
  2. alexandrage

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

    Баллы:
    173
    В конструктор класса передай, new OnTabComplete(this) ну и там локальной переменной присвой.
     
  3. swat1x

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

    Баллы:
    76
    Имя в Minecraft:
    swat1x
  4. Автор темы
    Trolerne

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

    Баллы:
    66
    Я не понимаю как:
    Код:
    private OnTabComplete a = new OnTabComplete(this); 
    и как получить значение переменной из главного класса
     
  5. swat1x

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

    Баллы:
    76
    Имя в Minecraft:
    swat1x
    что такое Java? Объектно Ореинтированный Язык. Чтобы получить конкретный объект, конкретного класса в котором ты находишься если ты не в сингтон пишешь? написать 4 буквы "this". Возвращаясь к первому вопросу, не плохо было бы тебе её выучить, а не задавать примитивные вопросы
     
  6. Автор темы
    Trolerne

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

    Баллы:
    66
    Можно просто строчку кода или ссылочку на гайд?
     
  7. alexandrage

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

    Баллы:
    173
    Ну вот эта "a" и есть твоя переменная на OnTabComplete
     
  8. swat1x

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

    Баллы:
    76
    Имя в Minecraft:
    swat1x
    ну такими "просто строчку" ты далеко не уедешь. Это примитивные принципы языка. Надо создавать что-то своё, а не просить написать других
     
  9. alexandrage

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

    Баллы:
    173
  10. alexandrage

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

    Баллы:
    173
  11. Автор темы
    Trolerne

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

    Баллы:
    66
    Здесь получатся берется конфиг в другом классе, а как именно получить например HashMap из другого класса?
     
  12. FortiStrike

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

    Баллы:
    66
    Создай в своём классе Main пременную любую например hashmap.
    Например:
    Код:
    public class Main extends JavaPlugin {
        public Map<String, String> hashmap = new HashMap<String, String>();
    
        @Override
        public onEnable() {}
    }
    Потом ты со своего класса если создашь правильно конструктор как показано в alexandrage сможешь получить эту переменную через:
    Код:
    plugin.hasmap;
     
  13. Автор темы
    Trolerne

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

    Баллы:
    66
    Код:
        public OnTabComplete(Plugin plugin) {
            this.plugin = plugin;
        }
    - вот конструктоh, но все равно не работает plugin.itemmap;
     
  14. FortiStrike

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

    Баллы:
    66
    Кстати да он пишет по своему но конструктор должен для этого импортировать твой плагин:
    Код:
    private PLUGIN_NAME plugin;
    public OnTabCompleter(PLUGIN_NAME plugin) {
        this.plugin = plugin;
    } 
     
  15. Автор темы
    Trolerne

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

    Баллы:
    66
    Я попробовал сделать вот-так
    Код:
        private RDEHMain main;
            public List<String>hatlist(){
                List<String>a = new ArrayList<String>();
                for(Map.Entry entry:main.itemmap.entrySet()) {
                    a.add(entry.getKey().toString());
                }
                return a;
            }
    Но itemmap получается null
     
  16. FortiStrike

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

    Баллы:
    66
    Скинь весь Java файл
     
  17. FortiStrike

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

    Баллы:
    66
    Оно должно быть таким...
    Код:
            private RDEHMain main;
            public YOUR_CLASS_NAME(RDEHMain main) {
               this.main = main;
           }
            public List<String>hatlist(){
                List<String>a = new ArrayList<String>();
                for(Map.Entry entry:main.itemmap.entrySet()) {
                    a.add(entry.getKey().toString());
                }
                return a;
            }
     
  18. Автор темы
    Trolerne

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

    Баллы:
    66
    Спасибо огромное!
     
  19. alexandrage

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

    Баллы:
    173
    Свой класс импортируй вместо Plugin и будет тебе счастье. Опоздал, выше уже ответили.
     

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