Skungee - The proxy addon for Skript

Addon Skungee - The proxy addon for Skript 2.0.0-BETA-5

  • Welcome to skUnity!

    Welcome to skUnity! This is a forum where members of the Skript community can communicate and interact. Skript Resource Creators can post their Resources for all to see and use.

    If you haven't done so already, feel free to join our official Discord server to expand your level of interaction with the comminuty!

    Now, what are you waiting for? Join the community now!

LimeGlass updated Skungee - #1 Bungeecord addon for Skript with a new update entry:

Bug fixes

2378f323e69ed140d7a665632246193ae26523fd

Version: 1.0.3b

Fixes:
  • Fixed some bugs
  • Optimized coding
  • Fixed a bug that caused some users servers to not connect to Bungeecord sometimes.
  • Added an event option for Bungeecord to disable the experimental events that sometimes caused issues for some.
Information:
  • The config.yml will reset, so...

Read the rest of this update entry...
 
LimeGlass updated Skungee - #1 Bungeecord addon for Skript with a new update entry:

A bunch of stuff, bug fixes and finaly some new content :D

YoGD5vl.png

Version: 1.0.4

Added:

  • Added Current Server of Script expression (Returns String):
    Code:
    [name of] this [script[s]] [bungee[[ ]cord]] server
    [bungee[[ ]cord]] server [name] of this script
  • The server string of all syntax can now support IP's with ports so for example "127.0.0.1:25565,127.0.0.1:25566"
    Code:
    evaluate "broadcast ""&6Example""" on bungeecord servers...

Read the rest of this update entry...
 
LimeGlass updated Skungee - #1 Bungeecord addon for Skript with a new update entry:

Potential server backcheck

YoGD5vl.png

Version: 1.0.4a​

Fixed:

  • Fixed a potential bug that removed servers if the check was returned incorrectly. This bug is mostly present on local host servers that shared same addresses.
Information:
  • The config.yml will reset, so make sure you have saved your valuable configuration options.
  • You need to install this update on both the Spigot servers and...

Read the rest of this update entry...
 
LimeGlass updated Skungee - #1 Bungeecord addon for Skript with a new update entry:

Queue system bug fix.

YoGD5vl.png

Version: 1.0.4b
Fixed:
  • Fixed a bug where the queue system was not sending packets out of it's system.
Information:
  • The config.yml will reset, so make sure you have saved your valuable configuration options.
  • You need to install this update on both the Spigot servers and Bungeecord server.
  • If you find any bugs, please notify a Skungee...

Read the rest of this update entry...
 
LimeGlass updated Skungee - #1 Bungeecord addon for Skript with a new update entry:

Bug fixes

YoGD5vl.png

Version: 1.0.4c
Fixed:
  • Fixed a bug in the queue system.
  • Fixed a bug where some users with different configuration options would not be allowed to use the connect effect.
  • Some internal changes
  • Made some code improvements and performance boosts.
  • Skungee is recommended to be running on the latest 1.12-SNAPSHOT Bungeecord jar. Some features and syntax will not...

Read the rest of this update entry...
 
WARNING: Error dispatching event PlayerDisconnectEvent(player=RazvanAV) to listener me.limeglass.skungee.bungeecord.listeners.EventListener@71075444
java.lang.NullPointerException
at me.limeglass.skungee.bungeecord.listeners.EventListener.onDisconnect(EventListener.java:32)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at net.md_5.bungee.event.EventHandlerMethod.invoke(EventHandlerMethod.java:19)
at net.md_5.bungee.event.EventBus.post(EventBus.java:46)
at net.md_5.bungee.api.plugin.PluginManager.callEvent(PluginManager.java:377)
at net.md_5.bungee.connection.UpstreamBridge.disconnected(UpstreamBridge.java:56)
at net.md_5.bungee.netty.HandlerBoss.channelInactive(HandlerBoss.java:58)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:245)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:231)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelInactive(AbstractChannelHandlerContext.java:224)
at io.netty.channel.ChannelInboundHandlerAdapter.channelInactive(ChannelInboundHandlerAdapter.java:75)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:245)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:231)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelInactive(AbstractChannelHandlerContext.java:224)
at io.netty.channel.ChannelInboundHandlerAdapter.channelInactive(ChannelInboundHandlerAdapter.java:75)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:245)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:231)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelInactive(AbstractChannelHandlerContext.java:224)
at io.netty.handler.codec.ByteToMessageDecoder.channelInputClosed(ByteToMessageDecoder.java:377)
at io.netty.handler.codec.ByteToMessageDecoder.channelInactive(ByteToMessageDecoder.java:342)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:245)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:231)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelInactive(AbstractChannelHandlerContext.java:224)
at io.netty.channel.ChannelInboundHandlerAdapter.channelInactive(ChannelInboundHandlerAdapter.java:75)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:245)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:231)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelInactive(AbstractChannelHandlerContext.java:224)
at io.netty.channel.ChannelInboundHandlerAdapter.channelInactive(ChannelInboundHandlerAdapter.java:75)
at io.netty.handler.timeout.IdleStateHandler.channelInactive(IdleStateHandler.java:277)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:245)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:231)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelInactive(AbstractChannelHandlerContext.java:224)
at io.netty.channel.DefaultChannelPipeline$HeadContext.channelInactive(DefaultChannelPipeline.java:1409)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:245)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:231)
at io.netty.channel.DefaultChannelPipeline.fireChannelInactive(DefaultChannelPipeline.java:927)
at io.netty.channel.AbstractChannel$AbstractUnsafe$8.run(AbstractChannel.java:822)
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:163)
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:404)
at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:309)
at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:886)
at java.lang.Thread.run(Thread.java:748)
 
WARNING: Error dispatching event PlayerDisconnectEvent(player=RazvanAV) to listener me.limeglass.skungee.bungeecord.listeners.EventListener@71075444
java.lang.NullPointerException
at me.limeglass.skungee.bungeecord.listeners.EventListener.onDisconnect(EventListener.java:32)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at net.md_5.bungee.event.EventHandlerMethod.invoke(EventHandlerMethod.java:19)
at net.md_5.bungee.event.EventBus.post(EventBus.java:46)
at net.md_5.bungee.api.plugin.PluginManager.callEvent(PluginManager.java:377)
at net.md_5.bungee.connection.UpstreamBridge.disconnected(UpstreamBridge.java:56)
at net.md_5.bungee.netty.HandlerBoss.channelInactive(HandlerBoss.java:58)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:245)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:231)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelInactive(AbstractChannelHandlerContext.java:224)
at io.netty.channel.ChannelInboundHandlerAdapter.channelInactive(ChannelInboundHandlerAdapter.java:75)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:245)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:231)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelInactive(AbstractChannelHandlerContext.java:224)
at io.netty.channel.ChannelInboundHandlerAdapter.channelInactive(ChannelInboundHandlerAdapter.java:75)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:245)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:231)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelInactive(AbstractChannelHandlerContext.java:224)
at io.netty.handler.codec.ByteToMessageDecoder.channelInputClosed(ByteToMessageDecoder.java:377)
at io.netty.handler.codec.ByteToMessageDecoder.channelInactive(ByteToMessageDecoder.java:342)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:245)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:231)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelInactive(AbstractChannelHandlerContext.java:224)
at io.netty.channel.ChannelInboundHandlerAdapter.channelInactive(ChannelInboundHandlerAdapter.java:75)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:245)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:231)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelInactive(AbstractChannelHandlerContext.java:224)
at io.netty.channel.ChannelInboundHandlerAdapter.channelInactive(ChannelInboundHandlerAdapter.java:75)
at io.netty.handler.timeout.IdleStateHandler.channelInactive(IdleStateHandler.java:277)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:245)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:231)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelInactive(AbstractChannelHandlerContext.java:224)
at io.netty.channel.DefaultChannelPipeline$HeadContext.channelInactive(DefaultChannelPipeline.java:1409)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:245)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:231)
at io.netty.channel.DefaultChannelPipeline.fireChannelInactive(DefaultChannelPipeline.java:927)
at io.netty.channel.AbstractChannel$AbstractUnsafe$8.run(AbstractChannel.java:822)
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:163)
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:404)
at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:309)
at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:886)
at java.lang.Thread.run(Thread.java:748)
Set the events option to false on both Spigot and Bungeecord side Skungee's. The events are in BETA, use with caution, this is one of the reasons.
 
Set the events option to false on both Spigot and Bungeecord side Skungee's. The events are in BETA, use with caution, this is one of the reasons.
the events are disabled by default(i not enabled them), so...
 
LimeGlass updated Skungee - #1 Bungeecord addon for Skript with a new update entry:

Return of RedisBungee syntax

YoGD5vl.png

Version: 1.0.5

Added:

  • Added more structure to the version of Bungeecord version expression:
code_language.skript:
[the] version of [the] bungee[[ ]cord]
[the] bungee[[ ]cord[[']s]] version
  • Added Bungeecord name expression, I don't see the usefulness of this but it's here:
code_language.skript:
#This returns the defined name of the bungeecord.
[the] name...

Read the rest of this update entry...
 
LimeGlass updated Skungee - #1 Bungeecord addon for Skript with a new update entry:

Hot fix

Found a bug from 1.0.5a that caused Spigot blocked servers to not work correctly when breaches are enabled. This caused effects to not send.

Side note:
It's my Birthday today. :emoji_stuck_out_tongue:


Information:
  • The config.yml will reset on updating, so make sure you have saved your valuable configuration options.
  • You need to install this update on both the Spigot servers and Bungeecord servers.
  • If you find any bugs, please notify a Skungee developer with all the information...

Read the rest of this update entry...
 
LimeGlass updated Skungee - #1 Bungeecord addon for Skript with a new update entry:

ServerInstances

This updates contains alot of fixes and changes.

This update also introduces:

ServerInstances
which is a premium Skript addon that extends Skungee's API to create cloud network based servers. It has syntax which get injected into Skungee on startup and those syntax can then be utilized to create and manage a cloud based network, all configurations and data folders are found within the Skungee plugin folder.

I will be posting more information and a new update 1.0.6a when that gets...

Read the rest of this update entry...
 
LimeGlass updated Skungee - #1 Bungeecord addon for Skript with a new update entry:

Events, as last!

YoGD5vl.png

Version: 1.0.6 and 1.0.6a update log

Added:

  • Events now actually work! There was a strange bug within Skript syntax that I still have no clue why it happens. Either way I changed the syntax up and now they work. The event syntax are below in the syntax section.
  • Added ProxyPingEvent (Ping event) this means you can now change the motd, icon,...

Read the rest of this update entry...
 
Hi LimeGlass, your new plugin looks great !
I would like to know:
Is it faster to use local variables "{im.a.variable}" ( not {_im.a.variable} ) rather than bungee variables "bungee variable {im_a_variable}" ?
Then, if this is true, is the best idea to:
  1. load local variables by using bungee variables like so: set {join_times.%player's uuid%} to bungee variable of {join.times.%player's uuid%} (except if the last server where the player was is the server he's connecting to)
  2. save bungee variables when a player quit the server by using local variables like so: set bungee variable of {join.times.%player's uuid%} to {join.times.%player's uuid%}
And for variables that need to be used at any time on any server, simply use only bungee variables.
(and when we need to show on a server the variables of a player that is online but not on this server: ask by a command to save the player's local variables into bungee variables)

Sorry for my english, thanks for responding me :emoji_slight_smile:,
Pheon'.
 
Hi LimeGlass, your new plugin looks great !
I would like to know:
Is it faster to use local variables "{im.a.variable}" ( not {_im.a.variable} ) rather than bungee variables "bungee variable {im_a_variable}" ?
Then, if this is true, is the best idea to:
  1. load local variables by using bungee variables like so: set {join_times.%player's uuid%} to bungee variable of {join.times.%player's uuid%} (except if the last server where the player was is the server he's connecting to)
  2. save bungee variables when a player quit the server by using local variables like so: set bungee variable of {join.times.%player's uuid%} to {join.times.%player's uuid%}
And for variables that need to be used at any time on any server, simply use only bungee variables.
(and when we need to show on a server the variables of a player that is online but not on this server: ask by a command to save the player's local variables into bungee variables)

Sorry for my english, thanks for responding me :emoji_slight_smile:,
Pheon'.
Local variables are always going to be faster than Skungee's NetworkVariables. The system has to send data to the other servers which depending on your servers connection may be fast or slow, but still slower than local variables.

If you didn't know already, Skungee NetworkVariables have an option to enable sharing, this means that rather than typing "network variable {something.example}" it will just be the variable. All Skungee variables will be set to global variables on the Spigot servers.
 
  • Like
Reactions: PheonBest
LimeGlass updated Skungee - #1 Bungeecord addon for Skript with a new update entry:

Skungee Messages, Tab Header and Footer, Plugin management, permissions and more!

%
YoGD5vl.png

Version: 1.0.6b

Added:

  • Tablist Header and Footer Effect
  • Bungeecord permissions Expression
  • Bungeecord permission groups Expression
  • Unregister commands Effect
  • Unregister event listeners Effect
  • Skungee messages, will explain below.
  • Enable plugins Effect
  • Ability to get all ServerInstance servers (Needs ServerInstances...

Read the rest of this update entry...