Coder Social home page Coder Social logo

zulfbungee's Introduction

zulfbungee

ZulfBungee - a proxy Skript addon!

The project is currently based around Minecraft 1.12.2 and Java 8 to ensure a level of legacy support, but will be dropped soon.

Supports Bungeecord and Velocity!

Small portions of this plugin were referenced from another addon to aid development (Skungee by LimeGlass), and code referenced will be credited accordingly.

Building this addon by yourself might be a bit of a pain right now, sorry! I am currently planning on switching from Maven to Gradle. For the meantime, you can load the repo as an IntelliJ project and you should be able to build it from there.

Please keep in mind that this plugin is currently in Alpha testing, so serious bugs may occur!

Supported Syntax:

SkriptHubViewTheDocs

Commands / Permissions

  • zulfen.bungee.admin.script.load /zulfbungee scripts load

  • zulfen.bungee.admin.script.unload /zulfbungee scripts unload

  • zulfen.bungee.admin.script.reload /zulfbungee scripts reload

  • zulfen.bungee.admin.script.list /zulfbungee scripts list

  • zulfen.bungee.admin.update.check /zulfbungee update check

  • zulfen.bungee.admin.debug /zulfbungee debug

  • zulfen.bungee.admin.servers /zulfbungee servers

zulfbungee's People

Contributors

zulfen avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

sj-hub9796

zulfbungee's Issues

Case sensitive network variables

Describe the bug
Network variables are case sensitive. For example {a} isn't equal to {A}, which means it is hard to make player nicknames in network variables when you can't write the exact nickname of player, so player with nickname "bob" isn't equal to "BoB"

To reproduce
command /skripttest:
trigger:
set {_a} to "1"
set {_A} to "0"
send "%{_a}% %{_A}%"
set network variable {a} to "1"
set network variable {A} to "0"
send "%network variable {a}% %network variable {A}%"

Expected behavior
I expected that network variables {a} and {A} would be 0, but not different. Also I use /find command made in ZulfBungee. I use network variable {name::%arg%} to get special nickname of player, so {name::adminplayer} becomes &##121212ADMIN Player. But with case sensitive it makes some problems because {name::adminplayer} and {name::ADMINplayer} aren't equal to each other.

Screenshots
https://imgur.com/qPCLiVK

Spigot server information (in this order)

  • Plugin version 0.9.8
  • Minecraft Version: 1.18.2
  • Skript Version 2.6.4
  • Java Version 17

Proxy information (in this order)

  • Proxy Type Bungeecord
  • Plugin Version 0.9.8
  • Minecraft Version: 1.18.2
  • Java Version 11

All players BUG

I created a command to send a message with the number of connected on the bungeecord.
when i run it the server crash

Spigot server information (in this order)

  • Proxy Type: BungeeCoord
  • Plugin Version 0.91
  • Minecraft Version: 1.19.2

Proxy information (in this order)

  • Proxy Type: BungeeCoord
  • Plugin Version 0.91
  • Minecraft Version: 1.19.2

Additional context
The code:
command /test:
trigger:
send "%all bungeecord players%"

expression bug:
all bungeecord players

ZulfBungee bug - Velocity Warning

I jat want to give you this warning made by LibertyBans on velocity, which may be important :

We have detected bugs on your server which threaten your server's stability.
LibertyBans will continue to operate unaffected, but we strongly suggest you fix these bugs.
These bugs are (most likely) due to other plugins' mistakes. Each of the following plugins has shaded a library but did not relocate it. You should report each bug to the plugin author.
Plugin Name | Library Name | Class Detected
----------------------------------------------
Plugin 'zulfbungee 0.9.8' | HikariCP | com.zaxxer.hikari.HikariConfig
Note for advanced users: Understanding the consequences, you can minimize this warning by setting the system property libertybans.relocationbug.disablecheck to 'true'
*******************************************

Proxy Error when joining the server

Whats the issue and how to reproduce
When joining the server you get a error message in proxy and the plugin restablishs connection with one of my servers all the time (Error comming at next to screenshot)

Expected behavior
No error in the console

Screenshots
image
[21:33:29 ERROR] [zulfbungee]: Unhandled exception occurred in connection with address /127.0.0.1:2002 [21:33:29 ERROR]: java.lang.NullPointerException: Cannot invoke "tk.zulfengaming.zulfbungee.universal.socket.objects.client.ClientPlayer.getUuid()" because "clientPlayerIn" is null [21:33:29 ERROR]: at tk.zulfengaming.zulfbungee.velocity.ZulfVelocity.getPlayer(ZulfVelocity.java:157) [21:33:29 ERROR]: at tk.zulfengaming.zulfbungee.universal.socket.packets.ProxyPlayerPermission.handlePacket(ProxyPlayerPermission.java:27) [21:33:29 ERROR]: at tk.zulfengaming.zulfbungee.universal.managers.PacketHandlerManager.handlePacket(PacketHandlerManager.java:50) [21:33:29 ERROR]: at tk.zulfengaming.zulfbungee.universal.socket.BaseServerConnection.processPacket(BaseServerConnection.java:116) [21:33:29 ERROR]: at tk.zulfengaming.zulfbungee.universal.socket.BaseServerConnection.run(BaseServerConnection.java:95) [21:33:29 ERROR]: at com.velocitypowered.proxy.scheduler.VelocityScheduler$VelocityTask.lambda$run$0(VelocityScheduler.java:275) [21:33:29 ERROR]: at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) [21:33:29 ERROR]: at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) and here the issue

Spigot server information (in this order)

  • ZulfBungee 0.9.7
  • Paper Servers - 1.20.1
  • Skript Version: 2.7.0-beta3 (skriptlang-github)
  • java version "20.0.1" 2023-04-18; Java(TM) SE Runtime Environment (build 20.0.1+9-29); Java HotSpot(TM) 64-Bit Server VM (build 20.0.1+9-29, mixed mode, sharing)

Proxy information (in this order)

  • Veloctiy 3.2.0
  • ZulfBungee 0.9.7
  • Paper Server - 1.20.1
  • java version "20.0.1" 2023-04-18; Java(TM) SE Runtime Environment (build 20.0.1+9-29); Java HotSpot(TM) 64-Bit Server VM (build 20.0.1+9-29, mixed mode, sharing)

Additional context
THE CONFIG OF THE SERVER WHO CAUSES THE ISSUE:

- Key Setup -

The port which you defined in your proxy config.

server-port: 8000

The IP of your proxy.

server-host: "127.0.0.1"

The port which this client (this Spigot server) will bind to, so it can listen for the proxy.

client-port: 2002

If you don't mind what port it chooses to bind to (e.g. your proxy and client are both on the same machine)

you can set this to true.

choose-random-port: false

The IP this client will bind to.

This should usually be left as 0.0.0.0, or 127.0.0.1, but feel free to change this if you need to -

(i.e. you are on shared hosting / Pterodactyl)

client-host: "0.0.0.0"

If your proxy cannot find the name of your server from its config, or if you want to define a custom one -

specify it here. This is usually always done automatically and can be left blank.

Ideally, make sure it matches the name that's defined in your proxy server software's config.

forced-connection-name: ""

This will toggle the display of detailed messages about what is going to the console.

When filing a bug report / checking for issues, this is extremely useful to know what exactly went wrong!

debug: false

VELOCTIY CONFIG

- Key Setup -

This is the port that this server will bind to, which will it listen for incoming connections on.

port: 8000

The IP that this server will bind to. Similar to the "client-host" in the Spigot config.

This should usually be left as 0.0.0.0, or 127.0.0.1, but feel free to change this if you need to -

(i.e. you are on shared hosting / Pterodactyl)

host: "0.0.0.0"

- Options -

This will toggle the display of detailed messages about what is going to the console.

When filing a bug report / checking for issues, this is extremely useful to know what exactly went wrong!

debug: false

Enables or disables global scripts.

global-scripts: true

- Storage -

What kind of database should be used to store network variables.

Currently, supported databases: MySQL, H2

If you have no clue what this does, just leave this as the default.

storage-type: "h2"

Each option should be self-explanatory if you know what you are doing.

If you are using H2, this will not apply - these two settings only apply to remote databases.

storage-host: "localhost"
storage-port: 3306

!! Change these from the default to improve security !!

storage-username: "username"
storage-password: "password"

storage-database: "database"

[MySQL Setup]

If you get errors in console because of SSL, disable it here, but it's better to set up SSL on the MySQL server.

mysql-use-ssl: true
mysql-verify-certificate: true

server connects to proxy but nothing works

Describe the bug
title
no skript reloading errors and nothing works

To reproduce

command /test:
  trigger:
    send all online proxy servers
    send this proxy server
    send this client
    send this server
    proxy kick player due to "test"
    proxy broadcast "test"

Expected behavior
everything to execute
Screenshots
image

Spigot server information (in this order)

  • Plugin version [e.g. Alpha 0.7.0] 0.9.9-pre6
  • Minecraft Version: [e.g. 1.19] 1.20.4
  • Skript Version [e.g. 2.6.1] 2.8.0
  • Java Version [e.g. 8] 18

Proxy information (in this order)

  • Proxy Type [e.g. Bungeecord] velocity
  • Plugin Version [e.g. Alpha 0.7.0] 0.9.9-pre6
  • Minecraft Version: [e.g. 1.19] 1.7.2 - 1.20.4
  • Java Version [e.g. 8] 17

Additional context
Please provide your config files (censored, as in without MySQL login info) so we can check through them to see if configuration of the plugin caused the problem!
proxy https://pastebin.com/kD92C562
spigot https://pastebin.com/6RW9LQh4

[BUG] Number/Size of all proxy players on (server type)

Describe the bug
when I do the syntax number of all proxy players on server "NAME_OF_SERVER", it tells me the same number of players even if I check on another server like the one below.

To reproduce
The server Hub01 is 1 player
The server Hub02 is 0 player but offline

number of all proxy players on server "Hub01" = 1 player
number of all proxy players on server "Hub02" = 1 player

Expected behavior
number of all proxy players on server "Hub01" = 1 player
number of all proxy players on server "Hub02" = 0 player

Spigot server information (in this order)

  • Plugin version: Alpha 0.9.9pre6
  • Minecraft Version: Paper-1.20.1
  • Skript Version: 2.7.3
  • Java Version: 17.0.4

Proxy information (in this order)

  • Proxy Type: Waterfall-Latest
  • Plugin Version: Alpha 0.9.9pre6
  • Minecraft Version: 1.20.1
  • Java Version: 17.0.4

Additional context
The config with "socket" that's all

Better Global Scripts

Better Global Scripts

Global Scripts would work a lot better if they had things like being able to reload only a specific script at a time, The following subcommands to the scripts part of the /zulfbungee command would work nicely if they were added:

  • disable {scriptname[.sk]}
  • enable {scriptname[.sk]}

[FEATURE] Added new database for MongoDB

Good morning,

Would it be possible in the future, in an update, to set up the database for Mongodb, because that would be really cool.

Thank you for your understanding.

ZulfBungee bug : Server crashes

Describe the bug
When a player executes a function where or tries to return the size of all bungee players on a specified server. It sometimes crashes the server. (eg: size of all bungee players on "skyblock") (error below).

When we execute that it either returns the correct value or crash.

To reproduce

  1. Install Skript, skript-gui, Zulfbungee and Protocollib.
  2. Place the script below in the scripts folder (plugins/Skript/scripts).
  3. Execute the function mainGUI(player) using skript effect commands or by doing /test.
  4. Try again multiple times (up to 10 times) and the server will crash.

Script:

function mainGUI(p: player):
	create a gui with virtual chest inventory with 3 rows named "Main Menu":
		set {_} to size of all bungee players on "skyblock"
		make gui slot 10 with player head with nbt nbt compound from "{SkullOwner:{Id:[I;162119669,710429448,-1690736789,-84268047],Properties:{textures:[{Value:""eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYzY5MTk2YjMzMGM2Yjg5NjJmMjNhZDU2MjdmYjZlY2NlNDcyZWFmNWM5ZDQ0Zjc5MWY2NzA5YzdkMGY0ZGVjZSJ9fX0=""}]}}}" named "&aSkyBlock &8[&2&lSEASON 5&8]" with lore "&8Persistent Game%nl%&7" and "&7SkyBlock is the most popular%nl%&7game on FruitSky. Play with%nl%&7friends (or solo!), build your%nl%&7private island, collect all the%nl%&7items and meet other players.%nl%&7" and "&7➥ &aClick to Connect%nl%&7%{_} ? 0% currently playing!":
			connect player to "skyblock"

		set {_} to size of all bungee players on "elytrapvp"
		make gui slot 13 with shiny elytra named "&aElytraPvP &8[&c&lMAINTENANCE!&8]" with lore "&8Persistent Game%nl%&7" and "&7Jump down and fly with%nl%&7elytras to instantly flight%nl%&7many other players. The%nl%&7most fast-placed combat%nl%&7on FruitSky. Upgrade your%nl%&7tools and gear and grind%nl%&7for mystic items.%nl%&7" and "&7➥ &cThis game is not available%nl%&7%{_} ? 0% currently playing!":
			connect player to "elytrapvp"

	open last gui to {_p}
	
command /test:
	trigger:
		mainGUI(player)

Expected behavior
No crash, must open the gui and return the correct values of size of online players in the specified server.

Screenshots
No screenshot but error in the message

Paper server information (in this order)

  • Plugin version: Zulfbungee 0.9.8
  • Minecraft Version: git-Paper-388 (MC: 1.18.2)
  • Skript Version: 2.6.3
  • Java Version: Java 17

Proxy information (in this order)

  • Proxy Type: Velocity (3.2.0-SNAPSHOT)
  • Plugin Version Zulfbungee 0.9.8
  • Minecraft Version: Velocity (3.2.0-SNAPSHOT)
  • Java Version: Java 17

Additional context
Configs:

  • Proxy Config
    Default Zulfbungee Config

  • Hub Sub-server Config:

# - Key Setup -

# This chooses what communication method ZulfBungee uses.
# pluginmessage requires no setup, but requires you to enter a connection name (see below).
# socket requires more setup but allows for more flexible setups. (e.g. multiple proxy support in the future!)
# Generally, if you don't know what this means, leave it as pluginmessage.
transport-type: "pluginmessage"

# If your proxy cannot find the name of your server from its config, or if you want to define a custom one -
# specify it here. This process is automatic if you are using sockets.
# Make sure it matches the name that's defined in your proxy server software's config.
forced-connection-name: ""

# This will toggle the display of detailed messages about what is going to the console.
# When filing a bug report / checking for issues, this is extremely useful to know what exactly went wrong!
debug: false

# - Socket Setup -

# The IP of your proxy.
server-host: "hidden"

# The IP this client will bind to.
# This should usually be left as 0.0.0.0, or 127.0.0.1, but feel free to change this if you need to -
# (i.e. you are on shared hosting / Pterodactyl)
client-host: "hidden"

# The port which you defined in your proxy config.
server-port: 8000

# The port which this client (this Spigot server) will bind to, so it can listen for the proxy.
client-port: 25572
# If you don't mind what port it chooses to bind to (e.g. your proxy and client are both on the same machine)
# you can set this to true.
choose-random-port: false

Error

[12:27:41 ERROR]: --- DO NOT REPORT THIS TO PAPER - THIS IS NOT A BUG OR A CRASH  - git-Paper-388 (MC: 1.18.2) ---
[12:27:41 ERROR]: The server has not responded for 10 seconds! Creating thread dump
[12:27:41 ERROR]: ------------------------------
[12:27:41 ERROR]: Server thread dump (Look for plugins here before reporting to Paper!):
[12:27:41 ERROR]: Ticking entity: minecraft:player, entity class: net.minecraft.server.level.EntityPlayer
[12:27:41 ERROR]: Entity status: removed: false, valid: true, alive: true, is passenger: false
[12:27:41 ERROR]: Entity UUID: 112fc60e-6659-48a7-838f-91c9d91bce70
[12:27:41 ERROR]: Position: world: 'hub' at location (-46.96045412684652, 73.0, 76.08852684114609)
[12:27:41 ERROR]: Velocity: (0.0, -0.0784000015258789, 0.0) (in blocks per tick)
[12:27:41 ERROR]: Entity AABB: AABB[-47.26045413876745, 73.0, 75.78852682922516] -> [-46.66045411492559, 74.79999995231628, 76.38852685306702]
[12:27:41 ERROR]: Total packets processed on the main thread for all players: 357
[12:27:41 ERROR]: ------------------------------
[12:27:41 ERROR]: Current Thread: Server thread
[12:27:41 ERROR]:       PID: 22 | Suspended: false | Native: false | State: BLOCKED
[12:27:41 ERROR]:       Stack:
[12:27:41 ERROR]:               ZulfBungee.jar//com.zulfen.zulfbungee.spigot.interfaces.transport.ClientChannelCommHandler.writePacket(ClientChannelCommHandler.java:123)
[12:27:41 ERROR]:               ZulfBungee.jar//com.zulfen.zulfbungee.spigot.socket.Connection.sendDirect(Connection.java:92)
[12:27:41 ERROR]:               ZulfBungee.jar//com.zulfen.zulfbungee.spigot.managers.connections.ChannelConnectionManager.sendDirectImpl(ChannelConnectionManager.java:36)
[12:27:41 ERROR]:               ZulfBungee.jar//com.zulfen.zulfbungee.spigot.managers.ConnectionManager.sendDirect(ConnectionManager.java:71)
[12:27:41 ERROR]:               ZulfBungee.jar//com.zulfen.zulfbungee.spigot.managers.connections.ChannelConnectionManager.send(ChannelConnectionManager.java:41)
[12:27:41 ERROR]:               ZulfBungee.jar//com.zulfen.zulfbungee.spigot.managers.connections.ChannelConnectionManager.getPlayers(ChannelConnectionManager.java:51)
[12:27:41 ERROR]:               ZulfBungee.jar//com.zulfen.zulfbungee.spigot.elements.expressions.ExprProxyServerPlayers.get(ExprProxyServerPlayers.java:33)
[12:27:41 ERROR]:               ZulfBungee.jar//com.zulfen.zulfbungee.spigot.elements.expressions.ExprProxyServerPlayers.get(ExprProxyServerPlayers.java:17)
[12:27:41 ERROR]:               Skript.jar//ch.njol.skript.lang.util.SimpleExpression.getArray(SimpleExpression.java:99)
[12:27:41 ERROR]:               Skript.jar//ch.njol.skript.lang.ExpressionList.getArray(ExpressionList.java:94)
[12:27:41 ERROR]:               Skript.jar//ch.njol.skript.expressions.ExprAmount.get(ExprAmount.java:109)
[12:27:41 ERROR]:               Skript.jar//ch.njol.skript.expressions.ExprAmount.get(ExprAmount.java:43)
[12:27:41 ERROR]:               Skript.jar//ch.njol.skript.lang.util.SimpleExpression.getArray(SimpleExpression.java:99)
[12:27:41 ERROR]:               Skript.jar//ch.njol.skript.effects.EffChange.execute(EffChange.java:274)
[12:27:41 ERROR]:               Skript.jar//ch.njol.skript.lang.Effect.run(Effect.java:50)
[12:27:41 ERROR]:               Skript.jar//ch.njol.skript.lang.TriggerItem.walk(TriggerItem.java:61)
[12:27:41 ERROR]:               Skript.jar//ch.njol.skript.lang.TriggerItem.walk(TriggerItem.java:89)
[12:27:41 ERROR]:               Skript.jar//ch.njol.skript.lang.Trigger.execute(Trigger.java:56)
[12:27:41 ERROR]:               Skript.jar//ch.njol.skript.lang.function.ScriptFunction.execute(ScriptFunction.java:85)
[12:27:41 ERROR]:               Skript.jar//ch.njol.skript.lang.function.Function.execute(Function.java:129)
[12:27:41 ERROR]:               Skript.jar//ch.njol.skript.lang.function.FunctionReference.execute(FunctionReference.java:288)
[12:27:41 ERROR]:               Skript.jar//ch.njol.skript.lang.function.EffFunctionCall.execute(EffFunctionCall.java:52)
[12:27:41 ERROR]:               Skript.jar//ch.njol.skript.lang.Effect.run(Effect.java:50)
[12:27:41 ERROR]:               Skript.jar//ch.njol.skript.lang.TriggerItem.walk(TriggerItem.java:61)
[12:27:41 ERROR]:               Skript.jar//ch.njol.skript.lang.TriggerItem.walk(TriggerItem.java:89)
[12:27:41 ERROR]:               Skript.jar//ch.njol.skript.lang.Trigger.execute(Trigger.java:56)
[12:27:41 ERROR]:               Skript.jar//ch.njol.skript.SkriptEventHandler.check(SkriptEventHandler.java:142)
[12:27:41 ERROR]:               Skript.jar//ch.njol.skript.SkriptEventHandler.access$000(SkriptEventHandler.java:53)
[12:27:41 ERROR]:               Skript.jar//ch.njol.skript.SkriptEventHandler$PriorityListener.lambda$new$0(SkriptEventHandler.java:71)
[12:27:41 ERROR]:               Skript.jar//ch.njol.skript.SkriptEventHandler$PriorityListener$$Lambda$5591/0x00007fbf85055bc0.execute(Unknown Source)
[12:27:41 ERROR]:               co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:80)
[12:27:41 ERROR]:               org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70)
[12:27:41 ERROR]:               org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:669)
[12:27:41 ERROR]:               org.bukkit.craftbukkit.v1_18_R2.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:544)
[12:27:41 ERROR]:               org.bukkit.craftbukkit.v1_18_R2.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:507)
[12:27:41 ERROR]:               org.bukkit.craftbukkit.v1_18_R2.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:502)
[12:27:41 ERROR]:               org.bukkit.craftbukkit.v1_18_R2.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:498)
[12:27:41 ERROR]:               net.minecraft.server.network.ServerGamePacketListenerImpl.handleUseItem(ServerGamePacketListenerImpl.java:1910)
[12:27:41 ERROR]:               net.minecraft.network.protocol.game.ServerboundUseItemPacket.handle(ServerboundUseItemPacket.java:28)
[12:27:41 ERROR]:               net.minecraft.network.protocol.game.ServerboundUseItemPacket.a(ServerboundUseItemPacket.java:8)
[12:27:41 ERROR]:               net.minecraft.network.protocol.PacketUtils.lambda$ensureRunningOnSameThread$1(PacketUtils.java:51)
[12:27:41 ERROR]:               net.minecraft.network.protocol.PlayerConnectionUtils$$Lambda$6558/0x00007fbf85496810.run(Unknown Source)
[12:27:41 ERROR]:               net.minecraft.server.TickTask.run(TickTask.java:18)
[12:27:41 ERROR]:               net.minecraft.util.thread.BlockableEventLoop.doRunTask(BlockableEventLoop.java:153)
[12:27:41 ERROR]:               net.minecraft.util.thread.ReentrantBlockableEventLoop.doRunTask(ReentrantBlockableEventLoop.java:24)
[12:27:41 ERROR]:               net.minecraft.server.MinecraftServer.doRunTask(MinecraftServer.java:1400)
[12:27:41 ERROR]:               net.minecraft.server.MinecraftServer.d(MinecraftServer.java:188)
[12:27:41 ERROR]:               net.minecraft.util.thread.BlockableEventLoop.pollTask(BlockableEventLoop.java:126)
[12:27:41 ERROR]:               net.minecraft.server.MinecraftServer.pollTaskInternal(MinecraftServer.java:1377)
[12:27:41 ERROR]:               net.minecraft.server.MinecraftServer.pollTask(MinecraftServer.java:1370)
[12:27:41 ERROR]:               net.minecraft.util.thread.BlockableEventLoop.managedBlock(BlockableEventLoop.java:136)
[12:27:41 ERROR]:               net.minecraft.server.MinecraftServer.waitUntilNextTick(MinecraftServer.java:1348)
[12:27:41 ERROR]:               net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1230)
[12:27:41 ERROR]:               net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:316)
[12:27:41 ERROR]:               net.minecraft.server.MinecraftServer$$Lambda$4085/0x00007fbf84850b00.run(Unknown Source)
[12:27:41 ERROR]:               [email protected]/java.lang.Thread.run(Thread.java:833)
[12:27:41 ERROR]: ------------------------------
[12:27:41 ERROR]: --- DO NOT REPORT THIS TO PAPER - THIS IS NOT A BUG OR A CRASH ---
[12:27:41 ERROR]: ------------------------------

Duplicate connection bug

          And one little little more thing, it seems that it sometimes "connect" 2 times the server, so that means it reload 2 times all the scripts : 

image
It could lead to 2x more time to reload all the global scripts (this is a bug i guess).

Originally posted by @MaitreFranck in #9 (comment)

[FEATURE] Added Multi-Database (MYSQL)

Good morning,

Would it be possible to ensure that there are several databases for the network variables, and to ensure that the variables of database number 1 there are specific variables if they are not in the database 2 as base skript?

Server Messaging support

The ability to send more than just a string between two servers (removes having to parse it as text to send it over, if it's not already text)

[BUG] Network variable exception

Describe the bug and To reproduce

  1. Installation of the bungeecord server and the spigot server on a VPS.
  2. Installation of the Skript plugin and your Addon.
  3. Then configure the 2 configs and I turn on the servers then it gives me the error and it spams me.

Expected behavior
Following the configuration, normally it should connect.

Screenshots
Capture

Spigot server information (in this order)

  • Plugin version Alpha 0.7.9
  • Minecraft Version: Paper-1.18.2-388
  • Skript Version 2.6.4
  • Java Version 17

Proxy information (in this order)

  • Proxy Type Waterfall-1.19-510
  • Plugin Version Alpha 0.7.9
  • Minecraft Version: 1.18.2
  • Java Version 17

Additional context
Plugin Bungeecord File config.yml: https://pastebin.com/uxy8Wt3f
Plugin Spigot File config.yml: https://pastebin.com/G1MrmA4F

Network variable error

Describe the bug
List network variable issue

To reproduce

command /testvar3:
	trigger:
		add "A" to network variable {testvar3::*}
		add "B" to network variable {testvar3::*}
		remove "A" from network variable {testvar3::*}
		add "A" to network variable {testvar3::*}
		broadcast network variable {testvar3::*}
		clear network variable {testvar3::*}

result is "A". where is gone "B"?

Expected behavior
It should be displays "B" and "A"

Screenshots
image

Spigot server information (in this order)

  • Plugin version: zulfbungee 0.9.9-pre6(bumped spigot-api version and waterfall, skript.)
  • Minecraft Version: 1.20.1
  • Skript Version: 2.7.1
  • Java Version: 17

Proxy information (in this order)

  • Proxy Type: waterfall
  • Plugin Version: same above
  • Minecraft Version: waterfall-1.20-545
  • Java Version: same above

Additional context
i'm using h2 database and transport-type with socket. thats it.

[HELP] Zulfbungee reporting a SocketException on a Paper server

I'm not sure if this is something on my end, or a bug on the plugin, but here we are.
When I start my paper & velocity servers (i have debug mode on), my velocity server does not report any errors, but the paper servers reports the following:

06.03 03:49:17 [Server] [INFO] [ZulfBungee] Error while creating socket: java.net.SocketException: Invalid argument

Velocity config:

# - Key Setup -



# This is the port that this server will bind to, which will it listen for incoming connections on.

port: 8077



# The IP that this server will bind to. Similar to the "client-host" in the Spigot config.

# This should usually be left as 0.0.0.0, or 127.0.0.1, but feel free to change this if you need to -

# (i.e. you are on shared hosting / Pterodactyl)

host: "127.0.0.1"



# - Options -



# This will toggle the display of detailed messages about what is going to the console.

# When filing a bug report / checking for issues, this is extremely useful to know what exactly went wrong!

debug: true



# Enables or disables global scripts.

global-scripts: true



# - Storage -



# What kind of database should be used to store network variables.

# Currently, supported databases: MySQL, H2



# If you have no clue what this does, just leave this as the default.

storage-type: "h2"



# Each option should be self-explanatory if you know what you are doing.



# If you are using H2, this will not apply - these two settings only apply to remote databases.

storage-host: "localhost"

storage-port: 3306



# !! Change these from the default to improve security !!

storage-username: "username"

storage-password: "password"



storage-database: "database"



# [MySQL Setup]



# If you get errors in console because of SSL, disable it here, but it's better to set up SSL on the MySQL server.

mysql-use-ssl: true

mysql-verify-certificate: true

Paper config (each server has a different port, I made sure to open them):

# - Key Setup -



# The port which you defined in your proxy config.

server-port: 8077



# The IP of your proxy.

server-host: "51.222.208.87"



# The port which this client (this Spigot server) will bind to, so it can listen for the proxy.

client-port: 8160



# The IP this client will bind to.

# This should usually be left as 0.0.0.0, or 127.0.0.1, but feel free to change this if you need to -

# (i.e. you are on shared hosting / Pterodactyl)

client-host: "127.0.0.1"



# If your proxy cannot find the name of your server from



# - Options -



# How many milliseconds it will wait for a connection.

# A timeout will be pronounced if the server does not respond in this time.

connection-timeout: 6000





# This will toggle the display of detailed messages about what is going to the console.

# When filing a bug report / checking for issues, this is extremely useful to know what exactly went wrong!

debug: true

It was on 0.0.0.0, and it gave a different error, if you want it ill send it here.

"if bungee player is online" severe error

Describe the bug
When using "if bungee player arg-1 is online:" creates a severe error in skript. It also extends to the Skript "if arg-1 is online:".

When not using ZulfBungee, everything works as expected.
But when using ZulfBungee, every time "if player is online" is called, either with bungee player or vanilla Skript version, it either shows a severe error, or an incorrect response.
It seems like the response is delayed to the next time the command is typed in, or multiple next times. Like ; I type in my command rtz myname, and it says i'm not connected, I try a few more times, it stays the same. I try the same command with a random name, it says he's not connected, but then, without changing anything, it will say it is connected the number of times I typed the same command with my name just before. Is it clear? Very strange.

To reproduce
Here is the skript used, a simple call for what is described;

command /rtz <text>:
	trigger:
		if arg-1 is online:
			send "Accomplished!"
			stop
		else:
			send "nope!"
			stop

command /rt <text>:
	trigger:
		if bungee player arg-1 is online:
			send "Accomplished!"
			stop
		else:

			send "nope!"
			stop

Expected behavior
Expected behaviour is to return a true or false, without a severe error.

Spigot server information (in this order)

  • Plugin version : 0.9.8, also does with 0.9.9pre6
  • Minecraft Version: 1.19.4
  • Skript Version : 2.7.1
  • Java Version : 21.0.1

Proxy information (in this order)

  • Proxy Type : Waterfall
  • Plugin Version : 0.9.8
  • Minecraft Version: 1.20
  • Java Version 21.0.1

Additional context
Only using Skript, ZulfBungee, and ProtocolLib 5.0.0. Everything is done locally on the same computer.
Using default configs everywhere.
The skript bug.txt
The error bug report.txt

The server hangs, but does not crash

Describe the bug
When you run the command, the server stops, but does not crash.

To reproduce

command /zulfbungeetest:
    trigger:

        broadcast "&aPrinting all players on the bungeecord network..."
        broadcast "&b%all bungeecord players%"

        broadcast "&aPrinting the name of this client:"
        broadcast this server's name

        broadcast "&aSending all players on the network a message through iteration..."

        loop all of the bungeecord players:
            proxy message loop-proxyplayer the message "&b&oWhy hello there! I am a message!"

        broadcast "&aPrinting all the servers connected to the proxy..."
        set {_servers::*} to all of the online servers

        broadcast "&b%{_servers::*}%"

        broadcast "&aSending all servers a message (this is used for inter-server communication)..."

        loop {_servers::*}:
            proxy message loop-value the message "Sample Text" called "Sample Title"

        broadcast "&aSetting a network variable..."
        set network variable {zulfbungee::test::*} to 1, 2, 3, 4 and 5

        broadcast "&a...adding to it..."

        add 6 to network variable {zulfbungee::test::*}

        broadcast "&a...and printing it! Expected values should be 1 through 6."
        broadcast "%network variable {zulfbungee::test::*}%"

        broadcast "&aDeleting that variable... :("

        delete network variable {zulfbungee::test::*}

        broadcast "&c&lCongrats! The test is done! Please send results back!"

Expected behavior
The variable appears as and `Congrats! The test is done! ‘Please send results back!’ appears and the server stops.

Screenshots
No screenshot but error in the message

Spigot server information (in this order)

  • Plugin version : 0.9.9-pre4
  • Minecraft Version :git-Pufferfish-22 (MC: 1.20.1)
  • Skript Version : 2.6.4
  • Java Version : 17

Proxy information (in this order)

  • Proxy Type : Velocity
  • Plugin Version : 0.9.9-pre4
  • Minecraft Version : 1.20.1
  • Java Version : 17

Additional context

# - Key Setup -

# This chooses what communication method ZulfBungee uses.
# pluginmessage requires no setup, but requires you to enter a connection name (see below).
# socket requires more setup but allows for more flexible setups.
# Generally, if you don't know what this means, leave it as pluginmessage.
transport-type: "pluginmessage"

# This will toggle the display of detailed messages about what is going to the console.
# When filing a bug report / checking for issues, this is extremely useful to know what exactly went wrong!
debug: false

# Enables or disables global scripts.
global-scripts: true

# - Socket Setup -

# This is the port that this server will bind to, which will it listen for incoming connections on.
port: 8000

# The IP that this server will bind to. Similar to the "client-host" in the Spigot config.
# This should usually be left as 0.0.0.0, or 127.0.0.1, but feel free to change this if you need to -
# (i.e. you are on shared hosting / Pterodactyl)
host: "0.0.0.0"


# - Storage -

# What kind of database should be used to store network variables.
# Currently, supported databases: MySQL, H2

# If you have no clue what this does, just leave this as the default.
storage-type: "MySQL"

# Skript by default is case-insensitive for variable names.
# If you want this functionality, enable it here.
case-insensitive-variables: false

# Each option should be self-explanatory if you know what you are doing.

# If you are using H2, this will not apply - these two settings only apply to remote databases like MySQL.
storage-host: "localhost"
storage-port: 3306

# !! Change these from the default to improve security !!
storage-username: "***"
storage-password: "***"

storage-database: "***"

# - MySQL Setup -

mysql-use-ssl: false
mysql-verify-certificate: true

Error Log
This log appears when you turn off the server.

[04:31:34] [Server thread/ERROR]: Nag author(s): '[zulfen]' of 'ZulfBungee v0.9.9-pre4' about the following: This plugin is not properly shutting down its async tasks when it is being shut down. This task may throw errors during the final shutdown logs and might not complete before process dies.
[04:31:34] [Server thread/ERROR]: Craft Scheduler Thread - 34 - ZulfBungee Stacktrace
[04:31:34] [Server thread/ERROR]:   [email protected]/jdk.internal.misc.Unsafe.park(Native Method)
[04:31:34] [Server thread/ERROR]:   [email protected]/java.util.concurrent.locks.LockSupport.park(LockSupport.java:341)
[04:31:34] [Server thread/ERROR]:   [email protected]/java.util.concurrent.LinkedTransferQueue$Node.block(LinkedTransferQueue.java:470)
[04:31:34] [Server thread/ERROR]:   [email protected]/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:3463)
[04:31:34] [Server thread/ERROR]:   [email protected]/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3434)
[04:31:34] [Server thread/ERROR]:   [email protected]/java.util.concurrent.LinkedTransferQueue.awaitMatch(LinkedTransferQueue.java:669)
[04:31:34] [Server thread/ERROR]:   [email protected]/java.util.concurrent.LinkedTransferQueue.xfer(LinkedTransferQueue.java:616)
[04:31:34] [Server thread/ERROR]:   [email protected]/java.util.concurrent.LinkedTransferQueue.transfer(LinkedTransferQueue.java:1256)
[04:31:34] [Server thread/ERROR]:   ZulfBungee.jar//com.zulfen.zulfbungee.universal.util.BlockingPacketQueue.offer(BlockingPacketQueue.java:16)
[04:31:34] [Server thread/ERROR]:   ZulfBungee.jar//com.zulfen.zulfbungee.spigot.socket.ClientConnection.sendDirect(ClientConnection.java:113)
[04:31:34] [Server thread/ERROR]:   ZulfBungee.jar//com.zulfen.zulfbungee.spigot.socket.ClientConnection.handshakeTask(ClientConnection.java:63)
[04:31:34] [Server thread/ERROR]:   ZulfBungee.jar//com.zulfen.zulfbungee.spigot.socket.ClientConnection$$Lambda$12211/0x00000008031906a8.run(Unknown Source)
[04:31:34] [Server thread/ERROR]:   org.bukkit.craftbukkit.v1_20_R1.scheduler.CraftTask.run(CraftTask.java:101)
[04:31:34] [Server thread/ERROR]:   org.bukkit.craftbukkit.v1_20_R1.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:57)
[04:31:34] [Server thread/ERROR]:   com.destroystokyo.paper.ServerSchedulerReportingWrapper.run(ServerSchedulerReportingWrapper.java:22)
[04:31:34] [Server thread/ERROR]:   [email protected]/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
[04:31:34] [Server thread/ERROR]:   [email protected]/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
[04:31:34] [Server thread/ERROR]:   [email protected]/java.lang.Thread.run(Thread.java:833)

more
As a result, both h2 and mysql show the same symptoms and work well in Release v0.9.8 version.

Issue for connecting the addon on Pterodactyl panel

Describe the bug
Hello, i tried many configuration with pterodactyl to make this addon work, i've ports opened on both proxy and spigot but it didn't want to connect. I tried all IP, 127.0.0.1, 0.0.0.0, 172.18.0.1 and the IP of my VPS.

Has you advises on how you can connect ?

I'm on bungeecord/waterfall and paper, tried with latest (0.8.0)

I can send you screenshots of differents configurations if you need.

player's current server expression

Describe the bug
Can't get the expression "%player's current server%" etc

To reproduce
command /giveserver:
trigger:
send "%player's current server%"

Expected behavior
To get player's current server. Because I'm doing /find script and I need to check if proxy player not in the limbo server to show him offline instead.

Screenshots
https://imgur.com/a/ggjWRA3

Spigot server information (in this order)

  • Plugin version 0.9.9-pre3
  • Minecraft Version: spigot 1.19.4
  • Skript Version 2.6.4
  • Java Version 17

Proxy information (in this order)

  • Proxy Type BungeeCord
  • Plugin Version 0.9.9-pre3
  • Minecraft Version: 1.19.4
  • Java Version 17

ZulfBungee bug

Describe the bug
Proxy connections are lost when I join the server.

To reproduce

Expected behavior
I expected the connections not to break.

Screenshots
image

Spigot server information (in this order)

  • Plugin version: 0.8.5
  • Minecraft Version: 1.19.3
  • Skript Version: 2.6.4
  • Java Version: 19

Proxy information (in this order)

  • Proxy Type: Waterfall
  • Plugin Version: 0.8.5
  • Minecraft Version: 1.19.3
  • Java Version: 19

Additional context
Default

ZulfBungee error NoClassDefFoundError (ch/njol/skript/lang/Section)

Describe the bug
When launching the plugin, an error appears and deactivate the plugin.

Spigot server information (in this order)

  • Plugin version 0.9.7
  • Minecraft Version: Paper-1.12.2
  • Skript Version 2.5.3
  • Java Version 8

Proxy information (in this order)

  • Proxy Type Bungeecord
  • Minecraft Version: 1.16
  • Java Version 8

Additional context
Error occurred while enabling ZulfBungee v0.9.7 (Is it up to date?)
java.lang.NoClassDefFoundError: ch/njol/skript/lang/Section
at java.lang.ClassLoader.defineClass1(Native Method) ~[?:?]
at java.lang.ClassLoader.defineClass(ClassLoader.java:756) ~[?:?]
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) ~[?:?]
at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:152) ~[Software.jar:git-Paper-18a678b]
at org.bukkit.plugin.java.JavaPluginLoader.getClassByName(JavaPluginLoader.java:189) ~[Software.jar:git-Paper-18a678b]
at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:115) ~[Software.jar:git-Paper-18a678b]
at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:104) ~[Software.jar:git-Paper-18a678b]
at java.lang.ClassLoader.loadClass(ClassLoader.java:418) ~[?:?]
at java.lang.ClassLoader.loadClass(ClassLoader.java:351) ~[?:?]
at java.lang.Class.forName0(Native Method) ~[?:?]
at java.lang.Class.forName(Class.java:348) ~[?:?]
at ch.njol.skript.SkriptAddon.loadClasses(SkriptAddon.java:107) ~[?:?]
at tk.zulfengaming.zulfbungee.spigot.ZulfBungeeSpigot.onEnable(ZulfBungeeSpigot.java:59) ~[?:?]
at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:264) ~[Software.jar:git-Paper-18a678b]
at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:316) ~[Software.jar:git-Paper-18a678b]
at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:405) ~[Software.jar:git-Paper-18a678b]
at org.bukkit.craftbukkit.v1_12_R1.CraftServer.enablePlugin(CraftServer.java:396) ~[Software.jar:git-Paper-18a678b]
at org.bukkit.craftbukkit.v1_12_R1.CraftServer.enablePlugins(CraftServer.java:345) ~[Software.jar:git-Paper-18a678b]
at net.minecraft.server.v1_12_R1.MinecraftServer.t(MinecraftServer.java:447) ~[Software.jar:git-Paper-18a678b]
at net.minecraft.server.v1_12_R1.MinecraftServer.l(MinecraftServer.java:408) ~[Software.jar:git-Paper-18a678b]
at net.minecraft.server.v1_12_R1.MinecraftServer.a(MinecraftServer.java:346) ~[Software.jar:git-Paper-18a678b]
at net.minecraft.server.v1_12_R1.DedicatedServer.init(DedicatedServer.java:293) ~[Software.jar:git-Paper-18a678b]
at net.minecraft.server.v1_12_R1.MinecraftServer.run(MinecraftServer.java:621) ~[Software.jar:git-Paper-18a678b]
at java.lang.Thread.run(Thread.java:750) [?:?]
Caused by: java.lang.ClassNotFoundException: ch.njol.skript.lang.Section
at java.net.URLClassLoader.findClass(URLClassLoader.java:387) ~[?:?]
at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:156) ~[Software.jar:git-Paper-18a678b]
at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:104) ~[Software.jar:git-Paper-18a678b]
at java.lang.ClassLoader.loadClass(ClassLoader.java:418) ~[?:?]
at java.lang.ClassLoader.loadClass(ClassLoader.java:351) ~[?:?]
... 24 more

[IMPROVEMENT] Network variable

Hello, I would like to know if it is possible to make network variables faster (instantly direct), because network variables are a bit slow, it checks 1 variable per variable and so if I check several variables at the same time. time is quite slow.

Server List Ping Event

Would be great to have a server list ping event. Lets you know which players added your server to their server list (by their IP of course)

[BUG] Connection restart spigot isn't correct

Describe the bug
When I turn on my bungeecord server then after the spigot server, when I turn off the spigot server and turn it on again it does not connect me directly to the bungeecord (I have to restart the bungeecord for it to reconnect), which is disturbing.

There is no error with the debug-mode of the 2 servers (bungeecord and spigot).

I just noticed that if we leave the 2 servers after the bug, the server reconnects but long after (about 5 to 10 minutes).

The problem is only related to localhost because on a vps and a panel it works very well.

Spigot server information (in this order)

  • Plugin version: 0.9.0-ALPHA
  • Minecraft Version: 1.18.2 (Paper-388)
  • Skript Version: 2.6.4
  • Java Version: 17.0.4

Proxy information (in this order)

  • Proxy Type: Waterfall Latest
  • Plugin Version: 0.9.0-ALPHA
  • Minecraft Version: 1.19
  • Java Version: 17.0.4

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.