Инициализировать команду в Spigot - PullRequest
0 голосов
/ 21 сентября 2019

Я изучаю Spigot, и многие учебники говорят об использовании этого синтаксиса для инициализации команды.

    private Main plugin;

public Constructor(Main plugin) {
    this.plugin = plugin;
    plugin.getCommand("command").setExecutor(this);
}

Но мои знания Java говорят мне, что это будет работать также.

    public Command(Main plugin) {
    plugin.getCommand("command").setExecutor(this);
}

Есть ли разница между ними?Почему один лучше использовать, чем другой?Пожалуйста, не отвечайте с предпочтениями, только за и против, или если они делают то же самое.

1 Ответ

0 голосов
/ 26 сентября 2019

Полагаю, эти имена просто заполнители?Чем: да, оба будут работать.Я все еще рекомендую вам верхний.В большинстве случаев у вас будет много классов менеджера данных, например, PlayerManager, хранящий ваши пользовательские данные игрока.Конечно, вы можете сделать все статичным внутри Manager или сделать его одиночным, но лучше инициализировать его в методе on enable, чтобы позволить / reload работать должным образом, и потому, что вы, вероятно, тоже захотите вставить туда main.Вернемся к тому, почему хранить главное.Если вы сохранили свой основной файл в команде, вы можете, например, просто сделать main.getPlayerManager () и вам не нужно использовать какие-либо статические обходные пути.

Существует также другой способ ввода команд.Вы можете добавить команду с помощью отражения в карту команд, что не потребует от вас определения команды в plugin.yml.

...