Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

Помогите Как можно обратится к velocity чтобы он перекинул игрока на другой сервер Плагином

MySoR

Активный участник
Пользователь
Баллы
76
Имя в Minecraft
MySoR
Вот про Bungee я знаю как а вот про velocity нет, Пытался лазить в его доках но так и не нашел. Нужно чтобы это можно было сделать плагином который находится в на лобби
 
никогда не имел дело с velocity но а если вариант сделать 2 плагина, для клиента, принимает команды и velocity второй, управляем уже непосредственно им.
 
Если ты про отправку игрока на другой сервер через plugin messages - Velocity должен и так поддерживать это, буквально без изменений.
 
Пытаюсь сделать так:
Код:
public class VelocityHook {

    private Plugin plugin;

    public VelocityHook(Plugin plugin) {
        this.plugin = plugin;
        Bukkit.getServer().getMessenger().registerOutgoingPluginChannel(plugin, "velocity:main");
    }

    public void teleportToServer(Player player, VelocityServer velocityServer){
        ByteArrayDataOutput out = ByteStreams.newDataOutput();
        out.writeUTF("Connect");
        out.writeUTF(velocityServer.serverName);
        player.sendPluginMessage(plugin, "velocity:main", out.toByteArray());
    }


    public void disable(){
        Bukkit.getServer().getMessenger().unregisterOutgoingPluginChannel(plugin);
    }


    public enum VelocityServer{
        LOBBY("lobby"), ANARCHY("anarchy"), SURVIVAL("surv");

        private String serverName;

        VelocityServer(String serverName) {
            this.serverName = serverName;
        }
    }
}
Ошибок нет и вообще в консоли ничего нет
И понятное дело что не работает
 
так велосити же прокси стоит?
 
так велосити же прокси стоит?
Как я уже сказал, ради совместимости Velocity поддерживает plugin messaging по каналу BungeeCord - иначе были бы проблемы с теми же плагинами на межсерверными порталами.
поменял на bungeecord:main не заработало
Здесь тоже выставил?
Bukkit.getServer().getMessenger().registerOutgoingPluginChannel(plugin, "velocity:main");
Если да, то вместо "bungeecord:main" можно ещё попробовать просто "BungeeCord". Также стоит убедиться, что в этот момент соединение с игроком уже установлено, и метод в принципе вызывается.
Если и тогда не работает - убедись, что эта схема работает с самим BungeeCord. Если нет - делаешь что-то не так. Если да - стоит обратиться на форум или в дискорд Paper.

На крайний случай можно, конечно, как написал @_Orphen_ - добавить на сам прокси плагин-помощник.
 
Как я уже сказал, ради совместимости Velocity поддерживает plugin messaging по каналу BungeeCord - иначе были бы проблемы с теми же плагинами на межсерверными порталами.

Здесь тоже выставил?

Если да, то вместо "bungeecord:main" можно ещё попробовать просто "BungeeCord". Также стоит убедиться, что в этот момент соединение с игроком уже установлено, и метод в принципе вызывается.
Если и тогда не работает - убедись, что эта схема работает с самим BungeeCord. Если нет - делаешь что-то не так. Если да - стоит обратиться на форум или в дискорд Paper.

На крайний случай можно, конечно, как написал @_Orphen_ - добавить на сам прокси плагин-помощник.
Да заменил везде. Просто BungeeCord попробую.
 
Как я уже сказал, ради совместимости Velocity поддерживает plugin messaging по каналу BungeeCord - иначе были бы проблемы с теми же плагинами на межсерверными порталами.

Здесь тоже выставил?

Если да, то вместо "bungeecord:main" можно ещё попробовать просто "BungeeCord". Также стоит убедиться, что в этот момент соединение с игроком уже установлено, и метод в принципе вызывается.
Если и тогда не работает - убедись, что эта схема работает с самим BungeeCord. Если нет - делаешь что-то не так. Если да - стоит обратиться на форум или в дискорд Paper.

На крайний случай можно, конечно, как написал @_Orphen_ - добавить на сам прокси плагин-помощник.
Спасибо, это сработало
 
Здравствуйте, мне кажется уже всё перетыкал но никак не могу перекинуть игрока.
для теста кидаю после авторизации
Код:
null
org.bukkit.command.CommandException: Unhandled exception executing command 'l' in plugin Auth v1.0
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) ~[spigot.jar:git-Paper-1427]
        at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:151) ~[spigot.jar:git-Paper-1427]
        at org.bukkit.craftbukkit.v1_12_R1.CraftServer.dispatchCommand(CraftServer.java:685) ~[spigot.jar:git-Paper-1427]
        at net.minecraft.server.v1_12_R1.PlayerConnection.handleCommand(PlayerConnection.java:1472) ~[spigot.jar:git-Paper-1427]
        at net.minecraft.server.v1_12_R1.PlayerConnection.a(PlayerConnection.java:1277) ~[spigot.jar:git-Paper-1427]
        at net.minecraft.server.v1_12_R1.PacketPlayInChat.a(PacketPlayInChat.java:45) ~[spigot.jar:git-Paper-1427]
        at net.minecraft.server.v1_12_R1.PacketPlayInChat.a(PacketPlayInChat.java:5) ~[spigot.jar:git-Paper-1427]
        at net.minecraft.server.v1_12_R1.PlayerConnectionUtils.lambda$ensureMainThread$0(PlayerConnectionUtils.java:14) ~[spigot.jar:git-Paper-1427]
        at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:?]
        at java.util.concurrent.FutureTask.run(Unknown Source) [?:?]
        at net.minecraft.server.v1_12_R1.SystemUtils.a(SourceFile:46) [spigot.jar:git-Paper-1427]
        at net.minecraft.server.v1_12_R1.MinecraftServer.D(MinecraftServer.java:843) [spigot.jar:git-Paper-1427]
        at net.minecraft.server.v1_12_R1.DedicatedServer.D(DedicatedServer.java:427) [spigot.jar:git-Paper-1427]
        at net.minecraft.server.v1_12_R1.MinecraftServer.C(MinecraftServer.java:767) [spigot.jar:git-Paper-1427]
        at net.minecraft.server.v1_12_R1.MinecraftServer.run(MinecraftServer.java:665) [spigot.jar:git-Paper-1427]
        at java.lang.Thread.run(Unknown Source) [?:?]
Caused by: java.lang.IllegalArgumentException: Plugin source cannot be null
        at org.bukkit.plugin.messaging.StandardMessenger.validatePluginMessage(StandardMessenger.java:473) ~[spigot.jar:git-Paper-1427]
        at org.bukkit.craftbukkit.v1_12_R1.entity.CraftPlayer.sendPluginMessage(CraftPlayer.java:1310) ~[spigot.jar:git-Paper-1427]
        at hc.Auth.VelocityHook.teleportToServer(VelocityHook.java:21) ~[?:?]
        at hc.Auth.commands.login.onCommand(login.java:50) ~[?:?]
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) ~[spigot.jar:git-Paper-1427]
        ... 15 more
 
Здравствуйте, мне кажется уже всё перетыкал но никак не могу перекинуть игрока.
для теста кидаю после авторизации
Код:
null
org.bukkit.command.CommandException: Unhandled exception executing command 'l' in plugin Auth v1.0
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) ~[spigot.jar:git-Paper-1427]
        at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:151) ~[spigot.jar:git-Paper-1427]
        at org.bukkit.craftbukkit.v1_12_R1.CraftServer.dispatchCommand(CraftServer.java:685) ~[spigot.jar:git-Paper-1427]
        at net.minecraft.server.v1_12_R1.PlayerConnection.handleCommand(PlayerConnection.java:1472) ~[spigot.jar:git-Paper-1427]
        at net.minecraft.server.v1_12_R1.PlayerConnection.a(PlayerConnection.java:1277) ~[spigot.jar:git-Paper-1427]
        at net.minecraft.server.v1_12_R1.PacketPlayInChat.a(PacketPlayInChat.java:45) ~[spigot.jar:git-Paper-1427]
        at net.minecraft.server.v1_12_R1.PacketPlayInChat.a(PacketPlayInChat.java:5) ~[spigot.jar:git-Paper-1427]
        at net.minecraft.server.v1_12_R1.PlayerConnectionUtils.lambda$ensureMainThread$0(PlayerConnectionUtils.java:14) ~[spigot.jar:git-Paper-1427]
        at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:?]
        at java.util.concurrent.FutureTask.run(Unknown Source) [?:?]
        at net.minecraft.server.v1_12_R1.SystemUtils.a(SourceFile:46) [spigot.jar:git-Paper-1427]
        at net.minecraft.server.v1_12_R1.MinecraftServer.D(MinecraftServer.java:843) [spigot.jar:git-Paper-1427]
        at net.minecraft.server.v1_12_R1.DedicatedServer.D(DedicatedServer.java:427) [spigot.jar:git-Paper-1427]
        at net.minecraft.server.v1_12_R1.MinecraftServer.C(MinecraftServer.java:767) [spigot.jar:git-Paper-1427]
        at net.minecraft.server.v1_12_R1.MinecraftServer.run(MinecraftServer.java:665) [spigot.jar:git-Paper-1427]
        at java.lang.Thread.run(Unknown Source) [?:?]
Caused by: java.lang.IllegalArgumentException: Plugin source cannot be null
        at org.bukkit.plugin.messaging.StandardMessenger.validatePluginMessage(StandardMessenger.java:473) ~[spigot.jar:git-Paper-1427]
        at org.bukkit.craftbukkit.v1_12_R1.entity.CraftPlayer.sendPluginMessage(CraftPlayer.java:1310) ~[spigot.jar:git-Paper-1427]
        at hc.Auth.VelocityHook.teleportToServer(VelocityHook.java:21) ~[?:?]
        at hc.Auth.commands.login.onCommand(login.java:50) ~[?:?]
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) ~[spigot.jar:git-Paper-1427]
        ... 15 more
Ну так ты передай в качестве плагина нормальный объект, а не нулл
 
Независимо от того что я пробую
(BungeeCord bungeecord:main velocity:main)

Код:
Error occurred while enabling Auth v1.0 (Is it up to date?)
org.bukkit.plugin.messaging.ChannelNotRegisteredException: Attempted to send a plugin message through the unregistered channel `velocity:main'.
        at org.bukkit.plugin.messaging.StandardMessenger.validatePluginMessage(StandardMessenger.java:482) ~[spigot.jar:git-Paper-1427]
        at org.bukkit.craftbukkit.v1_12_R1.entity.CraftPlayer.sendPluginMessage(CraftPlayer.java:1310) ~[spigot.jar:git-Paper-1427]
        at hc.Auth.VelocityHook.teleportToServer(VelocityHook.java:20) ~[?:?]
        at hc.Auth.main.onEnable(main.java:71) ~[?:?]
        at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:264) ~[spigot.jar:git-Paper-1427]
        at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:316) [spigot.jar:git-Paper-1427]
        at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:405) [spigot.jar:git-Paper-1427]
        at org.bukkit.craftbukkit.v1_12_R1.CraftServer.enablePlugin(CraftServer.java:395) [spigot.jar:git-Paper-1427]
        at org.bukkit.craftbukkit.v1_12_R1.CraftServer.enablePlugins(CraftServer.java:344) [spigot.jar:git-Paper-1427]
        at org.bukkit.craftbukkit.v1_12_R1.CraftServer.reload(CraftServer.java:808) [spigot.jar:git-Paper-1427]
        at org.bukkit.Bukkit.reload(Bukkit.java:559) [spigot.jar:git-Paper-1427]
        at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:55) [spigot.jar:git-Paper-1427]
        at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:151) [spigot.jar:git-Paper-1427]
        at org.bukkit.craftbukkit.v1_12_R1.CraftServer.dispatchCommand(CraftServer.java:685) [spigot.jar:git-Paper-1427]
        at org.bukkit.craftbukkit.v1_12_R1.CraftServer.dispatchServerCommand(CraftServer.java:648) [spigot.jar:git-Paper-1427]
        at net.minecraft.server.v1_12_R1.DedicatedServer.aP(DedicatedServer.java:465) [spigot.jar:git-Paper-1427]
        at net.minecraft.server.v1_12_R1.DedicatedServer.D(DedicatedServer.java:428) [spigot.jar:git-Paper-1427]
        at net.minecraft.server.v1_12_R1.MinecraftServer.C(MinecraftServer.java:767) [spigot.jar:git-Paper-1427]
        at net.minecraft.server.v1_12_R1.MinecraftServer.run(MinecraftServer.java:665) [spigot.jar:git-Paper-1427]
        at java.lang.Thread.run(Unknown Source) [?:?]
 
Независимо от того что я пробую
(BungeeCord bungeecord:main velocity:main)

Код:
Error occurred while enabling Auth v1.0 (Is it up to date?)
org.bukkit.plugin.messaging.ChannelNotRegisteredException: Attempted to send a plugin message through the unregistered channel `velocity:main'.
        at org.bukkit.plugin.messaging.StandardMessenger.validatePluginMessage(StandardMessenger.java:482) ~[spigot.jar:git-Paper-1427]
        at org.bukkit.craftbukkit.v1_12_R1.entity.CraftPlayer.sendPluginMessage(CraftPlayer.java:1310) ~[spigot.jar:git-Paper-1427]
        at hc.Auth.VelocityHook.teleportToServer(VelocityHook.java:20) ~[?:?]
        at hc.Auth.main.onEnable(main.java:71) ~[?:?]
        at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:264) ~[spigot.jar:git-Paper-1427]
        at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:316) [spigot.jar:git-Paper-1427]
        at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:405) [spigot.jar:git-Paper-1427]
        at org.bukkit.craftbukkit.v1_12_R1.CraftServer.enablePlugin(CraftServer.java:395) [spigot.jar:git-Paper-1427]
        at org.bukkit.craftbukkit.v1_12_R1.CraftServer.enablePlugins(CraftServer.java:344) [spigot.jar:git-Paper-1427]
        at org.bukkit.craftbukkit.v1_12_R1.CraftServer.reload(CraftServer.java:808) [spigot.jar:git-Paper-1427]
        at org.bukkit.Bukkit.reload(Bukkit.java:559) [spigot.jar:git-Paper-1427]
        at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:55) [spigot.jar:git-Paper-1427]
        at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:151) [spigot.jar:git-Paper-1427]
        at org.bukkit.craftbukkit.v1_12_R1.CraftServer.dispatchCommand(CraftServer.java:685) [spigot.jar:git-Paper-1427]
        at org.bukkit.craftbukkit.v1_12_R1.CraftServer.dispatchServerCommand(CraftServer.java:648) [spigot.jar:git-Paper-1427]
        at net.minecraft.server.v1_12_R1.DedicatedServer.aP(DedicatedServer.java:465) [spigot.jar:git-Paper-1427]
        at net.minecraft.server.v1_12_R1.DedicatedServer.D(DedicatedServer.java:428) [spigot.jar:git-Paper-1427]
        at net.minecraft.server.v1_12_R1.MinecraftServer.C(MinecraftServer.java:767) [spigot.jar:git-Paper-1427]
        at net.minecraft.server.v1_12_R1.MinecraftServer.run(MinecraftServer.java:665) [spigot.jar:git-Paper-1427]
        at java.lang.Thread.run(Unknown Source) [?:?]
Скинь код
 
Независимо от того что я пробую
(BungeeCord bungeecord:main velocity:main)

Код:
Error occurred while enabling Auth v1.0 (Is it up to date?)
org.bukkit.plugin.messaging.ChannelNotRegisteredException: Attempted to send a plugin message through the unregistered channel `velocity:main'.
        at org.bukkit.plugin.messaging.StandardMessenger.validatePluginMessage(StandardMessenger.java:482) ~[spigot.jar:git-Paper-1427]
        at org.bukkit.craftbukkit.v1_12_R1.entity.CraftPlayer.sendPluginMessage(CraftPlayer.java:1310) ~[spigot.jar:git-Paper-1427]
        at hc.Auth.VelocityHook.teleportToServer(VelocityHook.java:20) ~[?:?]
        at hc.Auth.main.onEnable(main.java:71) ~[?:?]
        at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:264) ~[spigot.jar:git-Paper-1427]
        at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:316) [spigot.jar:git-Paper-1427]
        at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:405) [spigot.jar:git-Paper-1427]
        at org.bukkit.craftbukkit.v1_12_R1.CraftServer.enablePlugin(CraftServer.java:395) [spigot.jar:git-Paper-1427]
        at org.bukkit.craftbukkit.v1_12_R1.CraftServer.enablePlugins(CraftServer.java:344) [spigot.jar:git-Paper-1427]
        at org.bukkit.craftbukkit.v1_12_R1.CraftServer.reload(CraftServer.java:808) [spigot.jar:git-Paper-1427]
        at org.bukkit.Bukkit.reload(Bukkit.java:559) [spigot.jar:git-Paper-1427]
        at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:55) [spigot.jar:git-Paper-1427]
        at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:151) [spigot.jar:git-Paper-1427]
        at org.bukkit.craftbukkit.v1_12_R1.CraftServer.dispatchCommand(CraftServer.java:685) [spigot.jar:git-Paper-1427]
        at org.bukkit.craftbukkit.v1_12_R1.CraftServer.dispatchServerCommand(CraftServer.java:648) [spigot.jar:git-Paper-1427]
        at net.minecraft.server.v1_12_R1.DedicatedServer.aP(DedicatedServer.java:465) [spigot.jar:git-Paper-1427]
        at net.minecraft.server.v1_12_R1.DedicatedServer.D(DedicatedServer.java:428) [spigot.jar:git-Paper-1427]
        at net.minecraft.server.v1_12_R1.MinecraftServer.C(MinecraftServer.java:767) [spigot.jar:git-Paper-1427]
        at net.minecraft.server.v1_12_R1.MinecraftServer.run(MinecraftServer.java:665) [spigot.jar:git-Paper-1427]
        at java.lang.Thread.run(Unknown Source) [?:?]
Пытаешься отправить данные по каналу, который не зарегистрирован
 
Код:
public class VelocityHook {


    public VelocityHook() {
        Bukkit.getServer().getMessenger().registerOutgoingPluginChannel(main.pl, "velocity:main");
    }

    public static void teleportToServer(Player player, VelocityServer velocityServer){
        ByteArrayDataOutput out = ByteStreams.newDataOutput();
        out.writeUTF("Connect");
        out.writeUTF(velocityServer.serverName);
        player.sendPluginMessage( main.pl, "velocity:main", out.toByteArray());
    }
    public enum VelocityServer{
        SURVIVAL("survival");

        private String serverName;

        VelocityServer(String serverName) {
            this.serverName = serverName;
        }
    }
}

Код:
public void onEnable() {
        pl = Bukkit.getPluginManager().getPlugin(getDescription().getName());
        Player p = Bukkit.getPlayer("FeatureTeam");
        VelocityHook.teleportToServer(p, VelocityHook.VelocityServer.SURVIVAL);
}
 
Код:
public class VelocityHook {


    public VelocityHook() {
        Bukkit.getServer().getMessenger().registerOutgoingPluginChannel(main.pl, "velocity:main");
    }

    public static void teleportToServer(Player player, VelocityServer velocityServer){
        ByteArrayDataOutput out = ByteStreams.newDataOutput();
        out.writeUTF("Connect");
        out.writeUTF(velocityServer.serverName);
        player.sendPluginMessage( main.pl, "velocity:main", out.toByteArray());
    }
    public enum VelocityServer{
        SURVIVAL("survival");

        private String serverName;

        VelocityServer(String serverName) {
            this.serverName = serverName;
        }
    }
}

Код:
public void onEnable() {
        pl = Bukkit.getPluginManager().getPlugin(getDescription().getName());
        Player p = Bukkit.getPlayer("FeatureTeam");
        VelocityHook.teleportToServer(p, VelocityHook.VelocityServer.SURVIVAL);
}
ты нигде не вызываешь конструктор класса, и у тебя статический метод выполняется, когда канал еще не зарегистрирован
 
ты нигде не вызываешь конструктор класса, и у тебя статический метод выполняется, когда канал еще не зарегистрирован
чёрт, как можно было так затупить.

всем спасибо
 

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

Назад
Верх