Смотрите видео ниже, чтобы узнать, как установить наш сайт в качестве веб-приложения на домашнем экране.
Примечание: This feature may not be available in some browsers.
Вот, нашёл. Этот пакет клиент отправляет серверу, когда изменяет команду/режим командного блокаМожно ли получить команду в блоке именно когда игрок нажимает на кнопку "Ок" (или что там)? Короче, когда применяет команду к блоку. Ивентов я не нашел связанных с командными блоками.
@Override
@SneakyThrows
public void onEnable() {
protocolManager.addPacketListener(new PacketAdapter(this,
ListenerPriority.NORMAL,
PacketType.Play.Client.SET_COMMAND_BLOCK) {
@Override
public void onPacketReceiving(PacketEvent event) {
event.getPlayer().sendMessage("lolKekCheburek");
}
});
}
Короче, когда применяет команду к блоку.
Ты хочешь получить команду которая прикрепляется к командному блоку?Я и не говорил про выполнение, суть в этом
@EventHandler
public void onBlockClicked(PlayerInteractEvent event) {
if (event.getAction() == Action.RIGHT_CLICK_BLOCK) {
Block block = event.getClickedBlock();
if (isCommandBlock(block.getType())) {
CommandBlock cBlock = (CommandBlock) block.getState();
}
}
}
Вот, нашёл. Этот пакет клиент отправляет серверу, когда изменяет команду/режим командного блокаМожно ли получить команду в блоке именно когда игрок нажимает на кнопку "Ок" (или что там)? Короче, когда применяет команду к блоку. Ивентов я не нашел связанных с командными блоками.
@Override
@SneakyThrows
public void onEnable() {
protocolManager.addPacketListener(new PacketAdapter(this,
ListenerPriority.NORMAL,
PacketType.Play.Client.SET_COMMAND_BLOCK) {
@Override
public void onPacketReceiving(PacketEvent event) {
event.getPlayer().sendMessage("lolKekCheburek");
}
});
}
PacketContainer packet = event.getPacket();
Field f = packet.getStrings().getFields().get(0);
f.setAccessible(true);
String command = null;
try {
command = (String) f.get("");
} catch (IllegalAccessException e) {
e.printStackTrace();
}
System.out.println(command);
[16:35:23] [Netty Epoll Server IO #2/ERROR]: [BlockCommandBlocks] Unhandled exception occured in onPacketReceiving(PacketEvent) for BlockCommandBlocks
java.lang.IllegalArgumentException: Can not set java.lang.String field net.minecraft.server.v1_16_R1.PacketPlayInSetCommandBlock.b to java.lang.String
at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:167) ~[?:1.8.0_265]
at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:171) ~[?:1.8.0_265]
at sun.reflect.UnsafeFieldAccessorImpl.ensureObj(UnsafeFieldAccessorImpl.java:58) ~[?:1.8.0_265]
at sun.reflect.UnsafeObjectFieldAccessorImpl.get(UnsafeObjectFieldAccessorImpl.java:36) ~[?:1.8.0_265]
at java.lang.reflect.Field.get(Field.java:393) ~[?:1.8.0_265]
at me.vahelce.commandblocks.Main$1.onPacketReceiving(Main.java:38) ~[?:?]
at com.comphenix.protocol.injector.SortedPacketListenerList.invokeReceivingListener(SortedPacketListenerList.java:114) [ProtocolLib.jar:4.5.1]
at com.comphenix.protocol.injector.SortedPacketListenerList.invokePacketRecieving(SortedPacketListenerList.java:67) [ProtocolLib.jar:4.5.1]
at com.comphenix.protocol.injector.PacketFilterManager.handlePacket(PacketFilterManager.java:590) [ProtocolLib.jar:4.5.1]
at com.comphenix.protocol.injector.PacketFilterManager.invokePacketRecieving(PacketFilterManager.java:557) [ProtocolLib.jar:4.5.1]
at com.comphenix.protocol.injector.netty.ProtocolInjector.packetReceived(ProtocolInjector.java:350) [ProtocolLib.jar:4.5.1]
at com.comphenix.protocol.injector.netty.ProtocolInjector.onPacketReceiving(ProtocolInjector.java:315) [ProtocolLib.jar:4.5.1]
at com.comphenix.protocol.injector.netty.ChannelInjector.decode(ChannelInjector.java:538) [ProtocolLib.jar:4.5.1]
at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:489) [spigot-1.16.1.jar:git-Spigot-0287a20-7560f5f]
at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:428) [spigot-1.16.1.jar:git-Spigot-0287a20-7560f5f]
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:265) [spigot-1.16.1.jar:git-Spigot-0287a20-7560f5f]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) [spigot-1.16.1.jar:git-Spigot-0287a20-7560f5f]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) [spigot-1.16.1.jar:git-Spigot-0287a20-7560f5f]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) [spigot-1.16.1.jar:git-Spigot-0287a20-7560f5f]
at com.comphenix.protocol.injector.netty.ChannelInjector$2.channelRead(ChannelInjector.java:259) [ProtocolLib.jar:4.5.1]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) [spigot-1.16.1.jar:git-Spigot-0287a20-7560f5f]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) [spigot-1.16.1.jar:git-Spigot-0287a20-7560f5f]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) [spigot-1.16.1.jar:git-Spigot-0287a20-7560f5f]
at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:310) [spigot-1.16.1.jar:git-Spigot-0287a20-7560f5f]
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:284) [spigot-1.16.1.jar:git-Spigot-0287a20-7560f5f]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) [spigot-1.16.1.jar:git-Spigot-0287a20-7560f5f]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) [spigot-1.16.1.jar:git-Spigot-0287a20-7560f5f]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) [spigot-1.16.1.jar:git-Spigot-0287a20-7560f5f]
at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:310) [spigot-1.16.1.jar:git-Spigot-0287a20-7560f5f]
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:284) [spigot-1.16.1.jar:git-Spigot-0287a20-7560f5f]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) [spigot-1.16.1.jar:git-Spigot-0287a20-7560f5f]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) [spigot-1.16.1.jar:git-Spigot-0287a20-7560f5f]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) [spigot-1.16.1.jar:git-Spigot-0287a20-7560f5f]
at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:286) [spigot-1.16.1.jar:git-Spigot-0287a20-7560f5f]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) [spigot-1.16.1.jar:git-Spigot-0287a20-7560f5f]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) [spigot-1.16.1.jar:git-Spigot-0287a20-7560f5f]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) [spigot-1.16.1.jar:git-Spigot-0287a20-7560f5f]
at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1434) [spigot-1.16.1.jar:git-Spigot-0287a20-7560f5f]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) [spigot-1.16.1.jar:git-Spigot-0287a20-7560f5f]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) [spigot-1.16.1.jar:git-Spigot-0287a20-7560f5f]
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:965) [spigot-1.16.1.jar:git-Spigot-0287a20-7560f5f]
at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:808) [spigot-1.16.1.jar:git-Spigot-0287a20-7560f5f]
at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:408) [spigot-1.16.1.jar:git-Spigot-0287a20-7560f5f]
at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:308) [spigot-1.16.1.jar:git-Spigot-0287a20-7560f5f]
at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:884) [spigot-1.16.1.jar:git-Spigot-0287a20-7560f5f]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_265]
[16:35:23] [Netty Epoll Server IO #2/ERROR]: Parameters:
net.minecraft.server.v1_16_R1.PacketPlayInSetCommandBlock@9673575[
a=BlockPosition{x=43, y=67, z=-62}
b=band
c=true
d=false
e=false
f=REDSTONE
]
Спасибо, но теперь я не вдупляю, как мне получить саму команду.
@Override
@SneakyThrows
public void onEnable() {
protocolManager.addPacketListener(new PacketAdapter(this,
ListenerPriority.NORMAL,
PacketType.Play.Client.SET_COMMAND_BLOCK) {
@Override
public void onPacketReceiving(PacketEvent event) {
event.getPlayer().sendMessage("Он ввёл какую-то хрень: " + event.getPacket().getStrings().read(0));
}
});
}
Мы используем основные cookies для обеспечения работы этого сайта, а также дополнительные cookies для обеспечения максимального удобства пользователя.
Посмотрите дополнительную информацию и настройте свои предпочтения