Giter Club home page Giter Club logo

cirrus's People

Contributors

dependabot[bot] avatar exceptionflug avatar galexrt avatar jarfiles avatar kotlinfactory avatar xefreh avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

cirrus's Issues

Documented Fix for Velocity Users

For anyone in the future who has issues using the Velocity version- it's because the documentation is outdated. Here's the fix for anyone who's in the same situation as me.

Steps to use:

  1. Add this to your maven
        <repository>
            <id>simplixsoft-public</id>
            <url>https://repo.simplix.dev/repository/simplixsoft-public/</url>
        </repository>
        <dependency>
            <groupId>dev.simplix.cirrus</groupId>
            <artifactId>cirrus-velocity</artifactId>
            <version>3.0.0-SNAPSHOT</version>
        </dependency>
  1. Clone the v3 branch of this repository
  2. Run gradle :cirrus-api:publishToMavenLocal

Hope this helps, respond here if any clarification needed.

Casting Error on 1.13+

Caused by: java.lang.ClassCastException: org.bukkit.craftbukkit.v1_16_R1.inventory.CraftInventoryCustom$MinecraftInventory cannot be cast to net.minecraft.server.v1_16_R1.PlayerInventory
at org.bukkit.craftbukkit.v1_16_R1.inventory.CraftContainer.(CraftContainer.java:51) ~[patched_1.16.1.jar:git-Paper-135]
at org.bukkit.craftbukkit.v1_16_R1.entity.CraftHumanEntity.openInventory(CraftHumanEntity.java:396) ~[patched_1.16.1.jar:git-Paper-135]
at dev.simplix.cirrus.spigot.menubuilder.SpigotMenuBuilder.open(SpigotMenuBuilder.java:158) ~[?:?]
at dev.simplix.cirrus.common.menu.AbstractMenu.open(AbstractMenu.java:96) ~[?:?]
at dev.simplix.cirrus.common.prefabs.menu.MultiPageMenu.open(MultiPageMenu.java:77) ~[?:?]
at dev.simplix.cirrus.spigot.example.commands.TestCommand.execute(TestCommand.java:40) ~[?:?]
at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:159) ~[patched_1.16.1.jar:git-Paper-135]

ProtocolizeItemStackConverter

Line: 60
Error: cannot get new data of modern material

1.13+ does not have data.getData(); remove or use alternatives like createBlockData() or check for Server ProtocolVersion

InventoryDragEvent is not handled/cancelled in InventoryListener

Currently the InventoryDragEvent is not handled in the InventoryListener when using this in a bukkit plugin. Seeing as dragging is triggered just by moving your mouse 1px while clicking down on an item this could lead to entries being apparently unresponsive if not being very careful. (And potential other issues e.g. ability to drag items in/out of inventories)

EDIT: Just took a look at the Bungee/Velocity implementation as well. They too seem to only react on the click, not drag (although I'm not sure if Protocolize's Inventory#onClick method maybe gets called for the dragging packet too?)

Simplixsoft Public Maven Repository returns 404

I'm unable to resolve Cirrus Spigot in IntelliJ because the Simplixsoft Public repo returns a 404 error when accessed. My temporary workaround is installing the version of Cirrus in this Git repo to my local Maven repo.

Clicking any item inside gui with off-hand causes duplication!

(Tested with this environment)
Paper-341 (1.18.2)
Java 17.0.3.1

  • cirrus-spigot-example-2.0.0
  • EssentialxxX-2.19.4
  • FAWE-Bukkit-2.3.1
  • Skript 2.6.3
  • Vault

Actions to replicate:

  1. Use the /test command from example usage plugin,
  2. Click the 'F' key (switch to off-hand) while cursor is on any item,
    2.1. This produces an error (error.txt)
  3. Close the menu,
  4. (Note: while player is in survival mode, this only produces a ghost item, though creative mode creates it.)
    Open your inventory (probably works with opening other inventories aswell)
  5. Get duplicated item in your off-hand slot.

Hopefully someone smart enough finds a good fix for this, I've fixed this bug in my framework by adding NBT tag to all gui-items and removing them wherever player causes InventoryClickEvent, though i don't find it really optimal solution.

I really love this framework and would love to see it being expanded upon, and documentation being published.

Method not found: setTag

java.lang.NoSuchMethodException: net.minecraft.world.item.ItemStack.setTag(net.minecraft.nbt.NBTTagCompound) - ProtocolizeItemStackConverter.java:109

         Method setTag = itemStackNMSClass.getMethod("setTag", nbtTagCompoundClass);

Tested with Paper - 1.18.1 - Reobf
Branch: restructure

customActionHandler not triggered on 2.0.0 and current master branch

When using current master branch / snapshot, a customActionHandler() is not triggered for empty slots due to the item being null:

My current "fix" for being able to utilize a customActionHandler() for my menus is the following "patch":

diff --git a/cirrus-bungeecord/src/main/java/dev/simplix/cirrus/bungeecord/protocolize/ProtocolizeMenuBuilder.java b/cirrus-bungeecord/src/main/java/dev/simplix/cirrus/bungeecord/protocolize/ProtocolizeMenuBuilder.java
index fbc5d2a..7fd2426 100644
--- a/cirrus-bungeecord/src/main/java/dev/simplix/cirrus/bungeecord/protocolize/ProtocolizeMenuBuilder.java
+++ b/cirrus-bungeecord/src/main/java/dev/simplix/cirrus/bungeecord/protocolize/ProtocolizeMenuBuilder.java
@@ -142,9 +142,11 @@ public class ProtocolizeMenuBuilder implements MenuBuilder {
             if (inventoryClick.player() == null) {
                 return;
             }
+            /*
             if (inventoryClick.clickedItem() == null) {
                 return;
             }
+            */
             Inventory i = inventoryClick.inventory();
             if (i == null) {
                 return;
diff --git a/cirrus-common/src/main/java/dev/simplix/cirrus/common/model/Click.java b/cirrus-common/src/main/java/dev/simplix/cirrus/common/model/Click.java
index 9ea166f..a85fb46 100644
--- a/cirrus-common/src/main/java/dev/simplix/cirrus/common/model/Click.java
+++ b/cirrus-common/src/main/java/dev/simplix/cirrus/common/model/Click.java
@@ -6,6 +6,9 @@ import dev.simplix.cirrus.common.business.PlayerWrapper;
 import dev.simplix.cirrus.common.menu.Menu;
 import dev.simplix.protocolize.api.ClickType;
 import java.util.List;
+
+import org.jetbrains.annotations.Nullable;
+
 import lombok.NonNull;

 /**
@@ -21,7 +24,7 @@ public class Click {
     public Click(
             @NonNull ClickType clickType,
             @NonNull Menu clickedMenu,
-            @NonNull InventoryMenuItemWrapper clickedItem,
+            @Nullable InventoryMenuItemWrapper clickedItem,
             int slot) {
         this.clickType = clickType;
         this.clickedMenu = clickedMenu;

item disappears when bottomContainer is built

Hello,

everytime when a player opens a cirrus menu e.g on SkyBlock they loose their items in PlayerInventory from slot 18 to 35.
After researching the problem a few days i found out when i remove
buildContainer(view.getBottomInventory(), menu.bottomContainer(), true);
in SpigotMenuBuilder.class that there is no problem.

How to reproduce the bug?
Fill your PlayerInventory with items from slot 9 to 35 and open an Cirrus Menu.
You will see that items from slot 18 to 35 will disappear.

example plugin menu error.

[INFO]: ? executed command: /test
[ERROR]: [/?|?] -> UpstreamBridge - encountered exception
java.lang.NoSuchMethodError: 'dev.simplix.protocolize.api.item.ItemStack dev.simplix.protocolize.api.inventory.Inventory.item(int)'
        at dev.simplix.cirrus.bungeecord.protocolize.ProtocolizeMenuBuilder.buildContainer(ProtocolizeMenuBuilder.java:85) ~[?:?]
        at dev.simplix.cirrus.bungeecord.protocolize.ProtocolizeMenuBuilder.build(ProtocolizeMenuBuilder.java:69) ~[?:?]
        at dev.simplix.cirrus.common.menu.AbstractMenu.build(AbstractMenu.java:120) ~[?:?]
        at dev.simplix.cirrus.common.menu.AbstractMenu.open(AbstractMenu.java:125) ~[?:?]
        at dev.simplix.cirrus.bungeecord.example.commands.TestCommand.execute(TestCommand.java:22) ~[?:?]
        at net.md_5.bungee.api.plugin.PluginManager.dispatchCommand(PluginManager.java:213) ~[waterfall-1.19-515.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:8a03f3d:515]
        at net.md_5.bungee.api.plugin.PluginManager.dispatchCommand(PluginManager.java:164) ~[waterfall-1.19-515.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:8a03f3d:515]
        at net.md_5.bungee.connection.UpstreamBridge.handleChat(UpstreamBridge.java:209) ~[waterfall-1.19-515.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:8a03f3d:515]
        at net.md_5.bungee.connection.UpstreamBridge.handle(UpstreamBridge.java:186) ~[waterfall-1.19-515.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:8a03f3d:515]
        at net.md_5.bungee.protocol.packet.ClientCommand.handle(ClientCommand.java:109) ~[waterfall-1.19-515.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:8a03f3d:515]
        at net.md_5.bungee.netty.HandlerBoss.channelRead(HandlerBoss.java:114) ~[waterfall-1.19-515.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:8a03f3d:515]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) ~[waterfall-1.19-515.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:8a03f3d:515]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[waterfall-1.19-515.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:8a03f3d:515]
        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) ~[waterfall-1.19-515.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:8a03f3d:515]
        at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103) ~[waterfall-1.19-515.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:8a03f3d:515]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) ~[waterfall-1.19-515.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:8a03f3d:515]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[waterfall-1.19-515.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:8a03f3d:515]
        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) ~[waterfall-1.19-515.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:8a03f3d:515]
        at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:286) ~[waterfall-1.19-515.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:8a03f3d:515]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) ~[waterfall-1.19-515.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:8a03f3d:515]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[waterfall-1.19-515.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:8a03f3d:515]
        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) ~[waterfall-1.19-515.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:8a03f3d:515]
        at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103) ~[waterfall-1.19-515.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:8a03f3d:515]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) ~[waterfall-1.19-515.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:8a03f3d:515]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[waterfall-1.19-515.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:8a03f3d:515]
        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) ~[waterfall-1.19-515.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:8a03f3d:515]
        at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103) ~[waterfall-1.19-515.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:8a03f3d:515]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) ~[waterfall-1.19-515.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:8a03f3d:515]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[waterfall-1.19-515.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:8a03f3d:515]
        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) ~[waterfall-1.19-515.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:8a03f3d:515]
        at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103) ~[waterfall-1.19-515.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:8a03f3d:515]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) ~[waterfall-1.19-515.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:8a03f3d:515]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[waterfall-1.19-515.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:8a03f3d:515]
        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) ~[waterfall-1.19-515.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:8a03f3d:515]
        at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) ~[waterfall-1.19-515.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:8a03f3d:515]
        at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) ~[waterfall-1.19-515.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:8a03f3d:515]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) ~[waterfall-1.19-515.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:8a03f3d:515]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[waterfall-1.19-515.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:8a03f3d:515]
        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) ~[waterfall-1.19-515.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:8a03f3d:515]
        at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103) ~[waterfall-1.19-515.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:8a03f3d:515]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) ~[waterfall-1.19-515.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:8a03f3d:515]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[waterfall-1.19-515.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:8a03f3d:515]
        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) ~[waterfall-1.19-515.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:8a03f3d:515]
        at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) ~[waterfall-1.19-515.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:8a03f3d:515]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) ~[waterfall-1.19-515.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:8a03f3d:515]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) ~[waterfall-1.19-515.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:8a03f3d:515]
        at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) ~[waterfall-1.19-515.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:8a03f3d:515]
        at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) ~[waterfall-1.19-515.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:8a03f3d:515]
        at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) ~[waterfall-1.19-515.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:8a03f3d:515]
        at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) ~[waterfall-1.19-515.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:8a03f3d:515]
        at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) ~[waterfall-1.19-515.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:8a03f3d:515]
        at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) ~[waterfall-1.19-515.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:8a03f3d:515]
        at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) ~[waterfall-1.19-515.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:8a03f3d:515]
        at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[waterfall-1.19-515.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:8a03f3d:515]
        at java.lang.Thread.run(Thread.java:833) ~[?:?]
[INFO]: [?] disconnected with: NoSuchMethodError : 'dev.simplix.protocolize.api.item.ItemStack dev.simplix.protocolize.api.inventory.Inventory.item(int)' @ dev.simplix.cirrus.bungeecord.protocolize.ProtocolizeMenuBuilder:85
[INFO]: [/?|?] -> UpstreamBridge has disconnected

i think its short, and theres no need to put it on pastebin.
info related to my username and ip address has been replaced. ? /?

MultiPage Menu Example causes NullPointerException

I have just tried to use the example code together with the MultiPageMenu example from the wiki causes an NPE.

Adding a simple display name and lore to the addItems() loop (that adds all the items) fixes the issue and causes the menu to work without an NPE.

I have used Cirrus 2.0-SNAPSHOT that was pulled yesterday / today.
Please let me know if you need more information.

[02:35:57 WARN]: Error in dispatching command
java.lang.NullPointerException: Cannot read the array length because "<local1>" is null
	at dev.simplix.cirrus.common.Utils.removeItalic(Utils.java:9) ~[?:?]
	at dev.simplix.cirrus.bungeecord.protocolize.ProtocolizeMenuBuilder.open(ProtocolizeMenuBuilder.java:260) ~[?:?]
	at dev.simplix.cirrus.bungeecord.protocolize.ProtocolizeMenuBuilder.build(ProtocolizeMenuBuilder.java:78) ~[?:?]
	at dev.simplix.cirrus.common.menus.MultiPageMenu$PageMenu.build(MultiPageMenu.java:236) ~[?:?]
	at dev.simplix.cirrus.common.menu.AbstractMenu.open(AbstractMenu.java:123) ~[?:?]
	at dev.simplix.cirrus.common.menus.MultiPageMenu.open(MultiPageMenu.java:93) ~[?:?]
	at net.platzhaltergaming.serverselector.bungee.commands.ServersCommand.execute(ServersCommand.java:40) ~[?:?]
	at net.md_5.bungee.api.plugin.PluginManager.dispatchCommand(PluginManager.java:212) ~[waterfall.jar:git:Waterfall-Bootstrap:1.18-R0.1-SNAPSHOT:21e4c1d:475]
	at net.md_5.bungee.api.plugin.PluginManager.dispatchCommand(PluginManager.java:163) ~[waterfall.jar:git:Waterfall-Bootstrap:1.18-R0.1-SNAPSHOT:21e4c1d:475]
	at net.md_5.bungee.connection.UpstreamBridge.handle(UpstreamBridge.java:168) ~[waterfall.jar:git:Waterfall-Bootstrap:1.18-R0.1-SNAPSHOT:21e4c1d:475]
	at net.md_5.bungee.protocol.packet.Chat.handle(Chat.java:76) ~[waterfall.jar:git:Waterfall-Bootstrap:1.18-R0.1-SNAPSHOT:21e4c1d:475]
	at net.md_5.bungee.netty.HandlerBoss.channelRead(HandlerBoss.java:114) ~[waterfall.jar:git:Waterfall-Bootstrap:1.18-R0.1-SNAPSHOT:21e4c1d:475]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[waterfall.jar:git:Waterfall-Bootstrap:1.18-R0.1-SNAPSHOT:21e4c1d:475]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[waterfall.jar:git:Waterfall-Bootstrap:1.18-R0.1-SNAPSHOT:21e4c1d:475]
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[waterfall.jar:git:Waterfall-Bootstrap:1.18-R0.1-SNAPSHOT:21e4c1d:475]
	at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103) ~[waterfall.jar:git:Waterfall-Bootstrap:1.18-R0.1-SNAPSHOT:21e4c1d:475]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[waterfall.jar:git:Waterfall-Bootstrap:1.18-R0.1-SNAPSHOT:21e4c1d:475]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[waterfall.jar:git:Waterfall-Bootstrap:1.18-R0.1-SNAPSHOT:21e4c1d:475]
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[waterfall.jar:git:Waterfall-Bootstrap:1.18-R0.1-SNAPSHOT:21e4c1d:475]
	at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:286) ~[waterfall.jar:git:Waterfall-Bootstrap:1.18-R0.1-SNAPSHOT:21e4c1d:475]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[waterfall.jar:git:Waterfall-Bootstrap:1.18-R0.1-SNAPSHOT:21e4c1d:475]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[waterfall.jar:git:Waterfall-Bootstrap:1.18-R0.1-SNAPSHOT:21e4c1d:475]
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[waterfall.jar:git:Waterfall-Bootstrap:1.18-R0.1-SNAPSHOT:21e4c1d:475]
	at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103) ~[waterfall.jar:git:Waterfall-Bootstrap:1.18-R0.1-SNAPSHOT:21e4c1d:475]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[waterfall.jar:git:Waterfall-Bootstrap:1.18-R0.1-SNAPSHOT:21e4c1d:475]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[waterfall.jar:git:Waterfall-Bootstrap:1.18-R0.1-SNAPSHOT:21e4c1d:475]
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[waterfall.jar:git:Waterfall-Bootstrap:1.18-R0.1-SNAPSHOT:21e4c1d:475]
	at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103) ~[waterfall.jar:git:Waterfall-Bootstrap:1.18-R0.1-SNAPSHOT:21e4c1d:475]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[waterfall.jar:git:Waterfall-Bootstrap:1.18-R0.1-SNAPSHOT:21e4c1d:475]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[waterfall.jar:git:Waterfall-Bootstrap:1.18-R0.1-SNAPSHOT:21e4c1d:475]
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[waterfall.jar:git:Waterfall-Bootstrap:1.18-R0.1-SNAPSHOT:21e4c1d:475]
	at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103) ~[waterfall.jar:git:Waterfall-Bootstrap:1.18-R0.1-SNAPSHOT:21e4c1d:475]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[waterfall.jar:git:Waterfall-Bootstrap:1.18-R0.1-SNAPSHOT:21e4c1d:475]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[waterfall.jar:git:Waterfall-Bootstrap:1.18-R0.1-SNAPSHOT:21e4c1d:475]
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[waterfall.jar:git:Waterfall-Bootstrap:1.18-R0.1-SNAPSHOT:21e4c1d:475]
	at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:324) ~[waterfall.jar:git:Waterfall-Bootstrap:1.18-R0.1-SNAPSHOT:21e4c1d:475]
	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:296) ~[waterfall.jar:git:Waterfall-Bootstrap:1.18-R0.1-SNAPSHOT:21e4c1d:475]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[waterfall.jar:git:Waterfall-Bootstrap:1.18-R0.1-SNAPSHOT:21e4c1d:475]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[waterfall.jar:git:Waterfall-Bootstrap:1.18-R0.1-SNAPSHOT:21e4c1d:475]
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[waterfall.jar:git:Waterfall-Bootstrap:1.18-R0.1-SNAPSHOT:21e4c1d:475]
	at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103) ~[waterfall.jar:git:Waterfall-Bootstrap:1.18-R0.1-SNAPSHOT:21e4c1d:475]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[waterfall.jar:git:Waterfall-Bootstrap:1.18-R0.1-SNAPSHOT:21e4c1d:475]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[waterfall.jar:git:Waterfall-Bootstrap:1.18-R0.1-SNAPSHOT:21e4c1d:475]
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[waterfall.jar:git:Waterfall-Bootstrap:1.18-R0.1-SNAPSHOT:21e4c1d:475]
	at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) ~[waterfall.jar:git:Waterfall-Bootstrap:1.18-R0.1-SNAPSHOT:21e4c1d:475]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[waterfall.jar:git:Waterfall-Bootstrap:1.18-R0.1-SNAPSHOT:21e4c1d:475]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[waterfall.jar:git:Waterfall-Bootstrap:1.18-R0.1-SNAPSHOT:21e4c1d:475]
	at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) ~[waterfall.jar:git:Waterfall-Bootstrap:1.18-R0.1-SNAPSHOT:21e4c1d:475]
	at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:795) ~[waterfall.jar:git:Waterfall-Bootstrap:1.18-R0.1-SNAPSHOT:21e4c1d:475]
	at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:480) ~[waterfall.jar:git:Waterfall-Bootstrap:1.18-R0.1-SNAPSHOT:21e4c1d:475]
	at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:378) ~[waterfall.jar:git:Waterfall-Bootstrap:1.18-R0.1-SNAPSHOT:21e4c1d:475]
	at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:986) ~[waterfall.jar:git:Waterfall-Bootstrap:1.18-R0.1-SNAPSHOT:21e4c1d:475]
	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[waterfall.jar:git:Waterfall-Bootstrap:1.18-R0.1-SNAPSHOT:21e4c1d:475]
	at java.lang.Thread.run(Thread.java:833) [?:?]

Usage note.

If used in a common module: protocolize-api has to be added as a provided dependency as well.

Note this in the wiki.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.