๐ฑ Currently working with Cloaks+ and PvPHub (and loving Kotlin)
matt-mx / servergui Goto Github PK
View Code? Open in Web Editor NEWA customizable server gui for Velocity servers!
A customizable server gui for Velocity servers!
๐ฑ Currently working with Cloaks+ and PvPHub (and loving Kotlin)
GUI items are removed when moved
https://youtu.be/x2b0LWsg8TQ
*I clarify that this is just a visual bug, but still.
I'm currently using the latest ServerGUI and Protocolize. I've had an old config file that always had worked before so I regenerated a new file and tested the new config file replacing only the server they point to but it still has the same problem. It doesn't really have any errors in both the proxy and backend servers but for the client it says Connection Lost: Timed Out
. When I type /server, it opens up the GUI but when I click on any server, I just get laggy, then get kicked out. Another player who tested also had the same problem.
Additional Info: I tested the new ServerGUI version with the stable protocolize version now I'm using the latest dev build. I also updated velocity but to no avail.
Here is my old config file:
config.txt
Here is my new config file:
New Config.txt
I hope I provided enough info and I'd be happy to do some more digging to help.
ServerGUI will be redesigned in a new scalable way.
somegui:
title: "Main GUI"
rows: 6
items:
0:
material: COMPASS
# Leads to another gui named 'lobbies'
opens: lobbies
[...]
lobbies:
title: "Lobbies"
rows: 6
items:
0:
material: COMPASS
server: lobby1
Allowing for sub-categories of servers to connect to, which should help to make the plugin more viable for other servers.
The new plugin will come with a neat API to help with more any developers' more specific needs.
Will be working on this soon!
Is it possible to open the /servergui for other people? Doesn't seem to work with CitizensCMD and just says unknown command
ServerGUI: 2.0
Protocolize: 2.2.2:374
Velocity: 3.5.1
Using the versions labled above I've noticed bug report #2 has reared its head once again.
Items when clicked in the GUI can be picked up moved around and placed in to the players own inventory.
I beleive this is because the origional inventory "onClick" event is not being canceled.
Multiple connections at once cause issues:
Make server switching asynchronous
I see you have a few placeholders being used in the config.yml but very little explanation of what they do (you kinda have to figure them out not that it's to hard to do that) but it would be nice to have a referance list some where of all the placeholder text that's avaliable to be used.
e.g right now im looking for some thing to show the Max Player count a server can have (%server-online% I know shows the current players) do we have one for max player count per server?
After updating protocolize to support 1.19.1, /lobby and /server does not work anymore.
After doing /server command and picking a server, it sends errors in the console
[21:04:14 ERROR] [Protocolize]: === EXCEPTION CAUGHT IN DECODER ===
[21:04:14 ERROR] [Protocolize]: Protocolize 2.2.2:374
[21:04:14 ERROR] [Protocolize]: Stream Direction: UPSTREAM
[21:04:14 ERROR] [Protocolize]: InboundConnection: [connected player] belphygore (/49.145.38.251:43889), ServerConnection: null
[21:04:14 ERROR] [Protocolize]: Protocol version: 1.18.2
[21:04:14 ERROR]: java.lang.NoSuchMethodError: 'dev.simplix.protocolize.api.item.ItemStack dev.simplix.protocolize.api.inventory.InventoryClick.clickedItem()'
[21:04:14 ERROR]: at com.mattmx.servergui.gui.ServerSelector.onClick(ServerSelector.java:41)
[21:04:14 ERROR]: at com.mattmx.servergui.util.InventoryBuilder.onClickCancel(InventoryBuilder.java:111)
[21:04:14 ERROR]: at dev.simplix.protocolize.data.listeners.ClickWindowListener.lambda$packetReceive$0(ClickWindowListener.java:48)
[21:04:14 ERROR]: at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
[21:04:14 ERROR]: at dev.simplix.protocolize.data.listeners.ClickWindowListener.packetReceive(ClickWindowListener.java:48)
[21:04:14 ERROR]: at dev.simplix.protocolize.velocity.providers.VelocityPacketListenerProvider.lambda$handleInboundPacket$2(VelocityPacketListenerProvider.java:160)
[21:04:14 ERROR]: at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)
[21:04:14 ERROR]: at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179)
[21:04:14 ERROR]: at java.base/java.util.stream.SortedOps$SizedRefSortingSink.end(SortedOps.java:357)
[21:04:14 ERROR]: at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:510)
[21:04:14 ERROR]: at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
[21:04:14 ERROR]: at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)
[21:04:14 ERROR]: at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)
[21:04:14 ERROR]: at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
[21:04:14 ERROR]: at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596)
[21:04:14 ERROR]: at dev.simplix.protocolize.velocity.providers.VelocityPacketListenerProvider.handleInboundPacket(VelocityPacketListenerProvider.java:158)
[21:04:14 ERROR]: at dev.simplix.protocolize.velocity.netty.ProtocolizeDecoderChannelHandler.decode(ProtocolizeDecoderChannelHandler.java:83)
[21:04:14 ERROR]: at dev.simplix.protocolize.velocity.netty.ProtocolizeDecoderChannelHandler.decode(ProtocolizeDecoderChannelHandler.java:32)
[21:04:14 ERROR]: at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:88)
[21:04:14 ERROR]: at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
[21:04:14 ERROR]: at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
[21:04:14 ERROR]: at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
[21:04:14 ERROR]: at com.velocitypowered.proxy.protocol.netty.MinecraftDecoder.tryDecode(MinecraftDecoder.java:89)
[21:04:14 ERROR]: at com.velocitypowered.proxy.protocol.netty.MinecraftDecoder.channelRead(MinecraftDecoder.java:58)
[21:04:14 ERROR]: at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
[21:04:14 ERROR]: at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
[21:04:14 ERROR]: at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
[21:04:14 ERROR]: at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103)
[21:04:14 ERROR]: at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
[21:04:14 ERROR]: at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
[21:04:14 ERROR]: at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
[21:04:14 ERROR]: at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:286)
[21:04:14 ERROR]: at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
[21:04:14 ERROR]: at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
[21:04:14 ERROR]: at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
[21:04:14 ERROR]: at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:327)
[21:04:14 ERROR]: at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:299)
[21:04:14 ERROR]: at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
[21:04:14 ERROR]: at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
[21:04:14 ERROR]: at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
[21:04:14 ERROR]: at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
[21:04:14 ERROR]: at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
[21:04:14 ERROR]: at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
[21:04:14 ERROR]: at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
[21:04:14 ERROR]: at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:800)
[21:04:14 ERROR]: at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:487)
[21:04:14 ERROR]: at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:385)
[21:04:14 ERROR]: at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:995)
[21:04:14 ERROR]: at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
[21:04:14 ERROR]: at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
[21:04:14 ERROR]: at java.base/java.lang.Thread.run(Thread.java:833)
Only build 1 GUI instance that is used for each player.
This way we won't have to build it in real-time every time we want to display it.
It would be amazing to have support for other commands to be ran from other plugins on Velocity. For example, we use a AJQueues for our server and don't want players to direct connect which the GUI allows. It would be awesome if we could connect it to our queue plugin.
Hi. I wonder if you could update this? It's a great plugin :)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.