Самописный /restart

BlackBaroness

Модератор
Разработчик
Сообщения
1,680
Решения
72
Веб-сайт
vk.com
Использую форк спигота (вынужденная мера), в котором нет /restart и он заменяет /stop. Разработчик и комьюнити не посчитали это важной функцией, поэтому её не добавят. Но я часто использую RCON, где нет возможности перезагрузки. То есть при /restart сервер просто выключается и я теряю к нему доступ.
Возможно ли написать свой /restart? [OFFTOPIC]Это звучит как что-то бредовое, но надежда греет мою душу...[/OFFTOPIC]
 
Главный класс:
Java:
import org.bukkit.plugin.java.JavaPlugin;

public final class Restarting extends JavaPlugin {

    @Override
    public void onEnable() {
        this.getCommand("brestart").setExecutor(new BRestart());

    }

    @Override
    public void onDisable() {
    }
}

Обработчик команд:
Java:
import org.bukkit.Bukkit;
import org.bukkit.Server;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;

public class BRestart implements CommandExecutor {
    @Override
    public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
        if (sender instanceof Server) {
            Bukkit.spigot().restart();
        }
        if (sender instanceof Player) {
            if (!sender.hasPermission("brestart")) {
                sender.sendMessage("Иди своей дорогой");
                return true;
            }
            Bukkit.spigot().restart();
        }
        return true;
    }
}

plugin.yml:
YAML:
name: Restarting
version: ${project.version}
main: restarting.restarting.Restarting
prefix: RestartBaroness
permissions:
  brestart:
    default: op

Всё верно?
Авто объединение сообщений:

Не работает:
Код:
[16:34:08] [Server thread/ERROR]: Error occurred while enabling Restarting v1.0-SNAPSHOT (Is it up to date?)
java.lang.NullPointerException: null
        at restarting.restarting.Restarting.onEnable(Restarting.java:9) ~[?:?]
        at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:264) ~[JavaPlugin.class:git-CatServer-1.12.2-3440193]
        at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:328) [JavaPluginLoader.class:git-CatServer-1.12.2-3440193]
        at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:405) [SimplePluginManager.class:git-CatServer-1.12.2-3440193]
        at org.bukkit.craftbukkit.v1_12_R1.CraftServer.enablePlugin(CraftServer.java:436) [CraftServer.class:git-CatServer-1.12.2-3440193]
        at org.bukkit.craftbukkit.v1_12_R1.CraftServer.enablePlugins(CraftServer.java:384) [CraftServer.class:git-CatServer-1.12.2-3440193]
        at net.minecraft.server.MinecraftServer.func_71247_a(MinecraftServer.java:391) [MinecraftServer.class:?]
        at net.minecraft.server.dedicated.DedicatedServer.func_71197_b(DedicatedServer.java:327) [nz.class:?]
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:602) [MinecraftServer.class:?]
        at java.lang.Thread.run(Unknown Source) [?:1.8.0_241]
 
Последнее редактирование модератором:
Как вариант итерировать по плагинам сервера и использовать
Java:
for (Plugin plugin : Bukkit.getPluginManager.getPlugins()) {
    Bukkit.getPluginManager().enable(disable)Plugin(plugin)
}
Конечно же вынести все в отдельный метод, и просто выключать и включать все последовательно.
[OFFTOPIC]
А что за форк? Если это семейство такоспигота и им подобные, то отбрасывай
[/OFFTOPIC]
 
[OFFTOPIC]CatServer. Лучший вариант для связки spigot + forge + 1.12.2, да и разработчик отвечает в тг сразу же, в случае ошибок. Я уже решил проблему с релоад, надо было просто написать линукс скрипт start.sh и закинуть на хостинг)[/OFFTOPIC]
Авто объединение сообщений:

[OFFTOPIC]В канале форка мне все сказали, что /restart не работает и он вообще не нужен. Написал разработчику (который тоже в чате сидит так то) и он удивился и сказал про скрипт. Такие дела)[/OFFTOPIC]
 
Black_Baroness, [OFFTOPIC]Sponge и только Sponge)
Большинство важных плагинов из спигота перенесли под губку, остальное можно всегда переписать или заказать у любого норм кодера, сделает.
[/OFFTOPIC]
 
Привет всем как я решил проблему довольно просто
пример оригинала: (у меня это в формате .bat)
Код:
restart-on-crash: true
  restart-script: ./start.sh
Решение проблемы: (у меня файл это start.bat)
Код:
restart-on-crash: true
  restart-script: start.bat
и все работает
Скрытый контент
Вам необходимо ответить в этой теме или отреагировать на это сообщение, чтобы увидеть этот контент.
Дополнение:
я мемного редактировал start.bat и нашел проблему и решил вот код
Код:
Файл для пк раширение файла .BAT а не другой

java -Xmx2048M -Xms1024M -jar paper-1.14.4-243.jar nogui
exit
 
Последнее редактирование:
Назад
Сверху Снизу