mohuang521
请问写一个bc服的插件,该如何与子服通信,比如执行子服一个命令,或者有什么办法调用子服插件的api

美味的曲奇
参考 https://www.spigotmc.org/wiki/bu ... -messaging-channel/

mohuang521
美味的曲奇 发表于 2022-4-18 18:53
参考 https://www.spigotmc.org/wiki/bukkit-bungee-plugin-messaging-channel/

您好,我看过这个,可是我不是很能理解,发了消息之后,子服没有一个对应的插件如何能接收到消息,但是子服如果有插件得话,我刚才看接受bukkit和bc得api不互通,也就是说子服插件貌似没法接收消息

‮tcejorPoiK
mohuang521 发表于 2022-4-18 18:59
您好,我看过这个,可是我不是很能理解,发了消息之后,子服没有一个对应的插件如何能接收到消息,但是子 ...

你需要在BC端用bc的API写一个插件,同时在bukkit端用bukkit的API写一个插件,两个API都有通道消息的方法,只要使用同一通道即可通讯

美味的曲奇
mohuang521 发表于 2022-4-18 18:59
您好,我看过这个,可是我不是很能理解,发了消息之后,子服没有一个对应的插件如何能接收到消息,但是子 ...

*如果没有对应的插件.....那就不好办了
bukkit和bc得api不互通
但提供的通信信道
你需要做的是
*代理端通过[BungeeCord 插件消息通道]发送执行命令的数据
*后端服务器接受数据并解析,执行想要执行的内容

比如从代理发送{"sender":"steve","command":"/say hello"}
后端接受这个命令后以steve的身份执行/say hello
至于数据的规则,执行的方法,就需要自己实现了

mohuang521
‮tcejorPoiK 发表于 2022-4-18 19:12
你需要在BC端用bc的API写一个插件,同时在bukkit端用bukkit的API写一个插件,两个API都有通道消息的方法, ...

我找到了几个例子 但是有个前提 貌似都需要获取player发送消息呢 也就是说子服必须至少有一个用户,就比如我想在bc执行一个命令 查询子服某个插件得信息 如果子服没有玩家 这就不行啊

mohuang521
‮tcejorPoiK 发表于 2022-4-18 19:12
你需要在BC端用bc的API写一个插件,同时在bukkit端用bukkit的API写一个插件,两个API都有通道消息的方法, ...

我好像找到了 我在试一下

mohuang521
‮tcejorPoiK 发表于 2022-4-18 19:12
你需要在BC端用bc的API写一个插件,同时在bukkit端用bukkit的API写一个插件,两个API都有通道消息的方法, ...

还是不太行呢,这是bc服代码 开始发送消息以及servername还是channel都能输出这是子服代码 收到消息不打印呢




‮tcejorPoiK
mohuang521 发表于 2022-4-19 13:50
还是不太行呢,这是bc服代码开始发送消息以及servername还是channel都能输出这是子服代码收到消息不打印 ...

你的 sendCustomData() 中都没有通道发送的代码

BC间通讯只能以玩家名义,也就是必须有一个玩家在线,并用他来发送

mohuang521
‮tcejorPoiK 发表于 2022-4-19 14:42
你的 sendCustomData() 中都没有通道发送的代码

BC间通讯只能以玩家名义,也就是必须有一个玩家在线,并 ...

明白了,刚才调试得时候我登陆了一下游戏,发现就能收到了,必须玩家在线

第一页 上一页 下一页 最后一页