cloudnetservice / cloudnet Goto Github PK
View Code? Open in Web Editor NEWA modern application that can dynamically and easily deliver Minecraft oriented software
Home Page: https://cloudnetservice.eu
License: Apache License 2.0
A modern application that can dynamically and easily deliver Minecraft oriented software
Home Page: https://cloudnetservice.eu
License: Apache License 2.0
When you do e.g. service cb01-1 stop the world doesn't get saved. But when you stop the entire cloud the world gets saved.
Describe the bug
Server starts easily with the Spigot / PaperMC 1.14.2 but crashes after 5 minutes ca.
Error code:
InvalidTargetException
Steps for reproducing
Expected behavior
currently none available
Screenshots
currently none available
Additional context
currently none available
The max allowed right margin with an astonishing amount of 80 characters is way to overkill and should be a lot higher. Increasing the max character amount makes the code easier to read and doesn't force developers to shift each and every single parameter of functions or constructors or else into a new line.
I'd recommend to set the max right margin to about 110 up to 130 characters.
Describe the bug
In 1.13+, there should be a color property set in the scoreboard team of the player, this isn't the case currently, so the prefix isn't displayed properly.
The simpleNameTags plugin updates the name tags async sometimes, which leads to issues with bukkit
The sync proxy modules does only check if the player is on the whitelist on maintenance and ignores that the player might have the permission to join.
Describe the bug
If you use CloudPermissionsPermissionManagement in a NodeCloudNetModule, the instance (getInstance()) is null.
Steps for reproducing
Steps to reproduce the behavior:
1. Create NodeCloudNetModule
2. Get eg. PermissionUser (CloudPermissionsPermissionManagement.getInstance().getUser(this.uuid))
3. See npe error
Additional context
How to bypass it without changing the cloud source code:
if (CloudPermissionsPermissionManagement.getInstance() == null)
new CloudPermissionsPermissionManagement();
Describe the bug
https://pastes.cf/Yr2teTGV24/
Steps for reproducing
Expected behavior
The group should be created (which it it), but without any errors
Please provide us information about your environment and used assets
This shouldn't matter, but:
System specs: CPU = Intel i7 6700k; DDR 4 2400 MHz 16 GB HyperX RAM; 2 TB Seagate HDD
OS: Windows 10
Version: https://github.com/CloudNetService/CloudNet-v3/tree/6530b93faf1eca66d0468ead61036d76b38ffec0
Describe the bug
When a lobby is starting, users may also be connected to that server, even if it's not running. This causes that the user disconnects with "could not connect to a default or fallback server ..." or it just stays in the loading screen, depending on the state of the server.
Expected behavior
The users should be sent to running lobbies and starting lobbies should be ignored.
The way the Object::finalize method is used in this project is not its intended way, according to Javadoc it is:
Called by the garbage collector on an object when garbage collection determines that there are no more references to the object.
I would recommend removing these lines since they are obsolete (there could be even more these are just the ones I found while looking through the source code):
https://github.com/CloudNetService/CloudNet-v3/blob/1a255441f7832a461253634a13a605d370fddf4f/cloudnet-common/src/main/java/de/dytanic/cloudnet/common/io/FileUtils.java#L91
https://github.com/CloudNetService/CloudNet-v3/blob/1a255441f7832a461253634a13a605d370fddf4f/cloudnet-driver/src/main/java/de/dytanic/cloudnet/driver/module/FinalizeURLClassLoader.java#L66
https://github.com/CloudNetService/CloudNet-v3/blob/1a255441f7832a461253634a13a605d370fddf4f/cloudnet-driver/src/main/java/de/dytanic/cloudnet/driver/network/protocol/Packet.java#L53
I also wouldn't recommend using the finalize method to clean up since in later java versions it's deprecated because:
The finalization mechanism is inherently problematic. Finalization can lead to performance issues, deadlocks, and hangs. Errors in finalizers can lead to resource leaks; there is no way to cancel finalization if it is no longer necessary; and no ordering is specified among calls to finalize methods of different objects.
Sun's codestyle has been practiced by plugin developers and Bukkit itself since millennia. People got used to this particular codestyle and it would be a bad idea to change it, just for one simple reason: Enforcing people to use Google's codestyle, even though they're used to Sun's, might decrease the amount of contributions done to CloudNet.
Describe the bug
Steps for reproducing
Expected behavior
So, the Proxy, Lobby and Test Server is meant to start up.
Screenshots
https://pastie.io/xutggy.cs Console if it helps
Please provide us information about your environment and used assets
System specs: Processor - 2.26 GHz Intel Core 2 Duo Memory - 8 GB 1067 MHZ DDr3 Graphics NVIDIA GeForce 9400M 256MBOS: MacOS High Sierra
Version: 3.0.0 Tsunami RELEASE
Additional context
N/A
Please describe the proposed feature
This command should send a command to every open screen that you don't have to write "ser NAME command " to send a command to the screen.
Hello dear competent CloudNet developers,
I would ask you to do a better naming of the branches....
Bad Practice:
http://prntscr.com/qjfsm5
Good Practice:
http://prntscr.com/qjfswi
Here you can learn more about branching workflows for git!
https://medium.com/@patrickporto/4-branching-workflows-for-git-30d0aaee7bf
Everytime I use the command reload all the smart module doesnt work anymore.
Tenchuu@DESKTOP-K2IAUP3 MINGW64 ~/Desktop
$ git clone https://github.com/CloudNetService/CloudNet-v3.git
Cloning into 'CloudNet-v3'...
remote: Enumerating objects: 201, done.
remote: Counting objects: 100% (201/201), done.
remote: Compressing objects: 100% (122/122), done.
remote: Total 9579 (delta 41), reused 98 (delta 18), pack-reused 9378
Receiving objects: 100% (9579/9579), 85.30 MiB | 29.45 MiB/s, done.
Resolving deltas: 100% (4737/4737), done.
Updating files: 100% (923/923), done.
Tenchuu@DESKTOP-K2IAUP3 MINGW64 ~/Desktop
$ cd CloudNet-3.X
bash: cd: CloudNet-3.X: No such file or directory
Tenchuu@DESKTOP-K2IAUP3 MINGW64 ~/Desktop
$ cd CloudNet-v3/
Tenchuu@DESKTOP-K2IAUP3 MINGW64 ~/Desktop/CloudNet-v3 (master)
$ ./gradlew.bat
Downloading https://services.gradle.org/distributions/gradle-5.4.1-bin.zip
...................................................................................
Welcome to Gradle 5.4.1!
Here are the highlights of this release:
- Run builds with JDK12
- New API for Incremental Tasks
- Updates to native projects, including Swift 5 support
For more details see https://docs.gradle.org/5.4.1/release-notes.html
Starting a Gradle Daemon (subsequent builds will be faster)
> Task :cloudnet-common:compileJava
C:\Users\Tenchuu\Desktop\CloudNet-v3\cloudnet-common\src\main\java\de\dytanic\cloudnet\common\unsafe\ReflectUnsafe.java:5: warning: Unsafe is internal proprietary API and may be removed in a future release
import sun.misc.Unsafe;
^
C:\Users\Tenchuu\Desktop\CloudNet-v3\cloudnet-common\src\main\java\de\dytanic\cloudnet\common\unsafe\ReflectUnsafe.java:5: warning: Unsafe is internal proprietary API and may be removed in a future release
import sun.misc.Unsafe;
^
C:\Users\Tenchuu\Desktop\CloudNet-v3\cloudnet-common\src\main\java\de\dytanic\cloudnet\common\unsafe\ReflectUnsafe.java:5: warning: Unsafe is internal proprietary API and may be removed in a future release
import sun.misc.Unsafe;
^
C:\Users\Tenchuu\Desktop\CloudNet-v3\cloudnet-common\src\main\java\de\dytanic\cloudnet\common\unsafe\ReflectUnsafe.java:5: warning: Unsafe is internal proprietary API and may be removed in a future release
import sun.misc.Unsafe;
^
C:\Users\Tenchuu\Desktop\CloudNet-v3\cloudnet-common\src\main\java\de\dytanic\cloudnet\common\unsafe\ReflectUnsafe.java:22: warning: Unsafe is internal proprietary API and may be removed in a future release
@Getter
^
C:\Users\Tenchuu\Desktop\CloudNet-v3\cloudnet-common\src\main\java\de\dytanic\cloudnet\common\unsafe\ReflectUnsafe.java:29: warning: Unsafe is internal proprietary API and may be removed in a future release
Field field = Unsafe.class.getDeclaredField("theUnsafe");
^
C:\Users\Tenchuu\Desktop\CloudNet-v3\cloudnet-common\src\main\java\de\dytanic\cloudnet\common\unsafe\ReflectUnsafe.java:31: warning: Unsafe is internal proprietary API and may be removed in a future release
unsafe = (Unsafe) field.get(null);
^
C:\Users\Tenchuu\Desktop\CloudNet-v3\cloudnet-common\src\main\java\de\dytanic\cloudnet\common\unsafe\ReflectUnsafe.java:22: warning: Unsafe is internal proprietary API and may be removed in a future release
@Getter
^
Note: C:\Users\Tenchuu\Desktop\CloudNet-v3\cloudnet-common\src\main\java\de\dytanic\cloudnet\common\concurrent\DefaultTaskScheduler.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
8 warnings
> Task :cloudnet-driver:compileJava
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
> Task :cloudnet:compileJava
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
> Task :cloudnet-common:compileTestJava
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: C:\Users\Tenchuu\Desktop\CloudNet-v3\cloudnet-common\src\test\java\de\dytanic\cloudnet\common\collection\MapsTest.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
> Task :cloudnet-driver:compileTestJava
Note: C:\Users\Tenchuu\Desktop\CloudNet-v3\cloudnet-driver\src\test\java\de\dytanic\cloudnet\driver\network\netty\NettyWebSocketServerExample.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
> Task :cloudnet-modules:cloudnet-bridge:compileJava FAILED
C:\Users\Tenchuu\Desktop\CloudNet-v3\cloudnet-modules\cloudnet-bridge\src\main\java\de\dytanic\cloudnet\ext\bridge\gomint\event\GoMintBridgeEvent.java:3: error: cannot access Event
import io.gomint.event.Event;
^
bad class file: C:\Users\Tenchuu\Desktop\CloudNet-v3\cloudnet-modules\libs\gomint-1.0-SNAPSHOT.jar(io/gomint/event/Event.class)
class file has wrong version 55.0, should be 52.0
Please remove or make sure it appears in the correct subdirectory of the classpath.
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':cloudnet-modules:cloudnet-bridge:compileJava'.
> Compilation failed; see the compiler error output for details.
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Get more help at https://help.gradle.org
BUILD FAILED in 1m 25s
38 actionable tasks: 20 executed, 18 up-to-date
That should not be normal or?
Avoid downloading the same jar file repeatedly.
Describe the bug
Can't build cloudnet modules because of newer java version clasess in gomint.
Steps for reproducing
./gradlew cloudnet-modules:cloudnet-bridge:build
Message
> Task :cloudnet-modules:cloudnet-bridge:compileJava FAILED
D:\Work\CloudNet\cloudnet-modules\cloudnet-bridge\src\main\java\de\dytanic\cloudnet\ext\bridge\gomint\event\GoMintBridgeEvent.java:3: error: cannot access Event
import io.gomint.event.Event;
^
bad class file: D:\Work\CloudNet\cloudnet-modules\libs\gomint-1.0-SNAPSHOT.jar(io/gomint/event/Event.class)
class file has wrong version 55.0, should be 52.0
Please remove or make sure it appears in the correct subdirectory of the classpath.
FAILURE: Build failed with an exception.
Please provide us information about your environment and used assets
OS: Windows 7
Version: Last master commit
If you try to remove an environment from a group using the "groups group GROUP remove env ENV", the env is not removed, but it is added again.
Every second a server is updated, even if nothing has really changed. This may cause performance problems with many servers. Therefore I would only trigger the events if something really changed on the server (player, game status etc.). The other data about the server like memory usage will probably not be required every second.
So, I "analyzed" CloudNet's code and oh boy, a lot of work needs to be done. By work I mean actual code and performance optimization, debugging etc.
Most things can probably be done using IntelliJ's advanced refactoring tools, like searching for something and replacing it, but there's also stuff on the list which needs to be done by hand.
Pending:
abc += "def"
with StringBuilder appendsjava.io
classes with java.nio
classes where applicable, might require @Deprecated
declarations@Deprecated
declarationsCollection<?>
types instead of List<?>
, Set<?>
or any other extending interface or class of Collection
. Might require @Deprecated
declarationsWork in progress:
this.
accessorsuper.
accessor ONLY IF the function is not overridden by the child classDone:
#equals()
, #hashCode()
and #toString()
. Using @Getter
, @Setter
and any other Lombok annotations is highly discouraged blurs a class' logicMore to come
Please describe the proposed feature
BridgePlayerManager#broadcastMessage(String message, String permission)
BridgePlayerManager#broadcastMessage(String message)
BridgePlayerManager#broadcastMessage(BaseComponent[] message, String permission)
BridgePlayerManager#broadcastMessage(BaseComponent[] message)
to broadcast messages over the whole network
Describe the bug
The cloudsign plugin in the server isn't working
Whenever I trying to create a sign using /cloudsign create bw
It just shows /cloudsign create
I am sure cloud-bridge is installed, it is within cloudnet server group and the servergroup exists.
Please add PocketMine-MP Support to CloudNET :/
Please describe the proposed feature
When you tab complete in MC on "/cloud ", you don't get any response, so we could send the request from the proxy to the cloud to get the tab completions which you also get when you tab complete in the console
Is it possible to add the Proxy Nemisys for Nukkit?
Wiki:
https://nukkitx.com/wiki/nemisys/
Jenkins:
https://ci.nukkitx.com/job/NukkitX/job/Nemisys/job/master/
When having this fallback configuration for example:
"bungeeFallbackConfigurations": [
{
"targetGroup": "Proxy",
"defaultFallbackTask": "Lobby",
"fallbacks": [
{
"priority": 1,
"task": "Lobby",
"permission": null
},
{
"priority": 1,
"task": "TestServer",
"permission": null
}
]
}
]
A player is still only able to connect if a service of the "defaultFallbackTask" is available, so "Lobby". If there is no Lobby online, but an instance of "TestServer", the bungeecord says there is no fallback server available, although the "TestServer" task is defined as a fallback.
Servus,
wollte mal Fragen welche Ports man alle Freigeben muss. Oder müsste man alle Freigeben?
Vielen Dank für die Antwort :)
Please describe the proposed feature
Add Waterdog. It's a Waterfall fork working for Nukkit and all types of bedrock server software. Very fast and good. It supports 100% bungeecord plugins.
Additional context
Describe the bug
Steps for reproducing
Expected behavior
Screenshots
Please provide us information about your environment and used assets
Additional context
Describe the bug
If you delete the bridge config while CloudNet is running and then reload the bridge module, an empty config will be generated
Steps for reproducing
Expected behavior
the default bridge config should be generated
Describe the bug
The nodes seems to shutdown nearly completely but the screens keeps open
Please provide us information about your environment and used assets
Please describe the proposed feature
When using "tasks task TASK add group GROUP", there is no check if the given group even exists, so you can add non-existing groups to a task. We should add a check there if this group exists.
Additional context
The group shouldn't be added to the task, but instead there should be a message that this group doesn't exist
Describe the bug
If you use "System.out.println" more than once in the Wrapper before the application (e. g. spigot) is running, all lines are printed in one line, only if you add the line seperator to the end of the string, all lines are printed seperately.
Steps for reproducing
Expected behavior
The printed lines using "System.out.println" should all be printed seperately without the line seperator at the end of the string
Please provide us information about your environment and used assets
System specs: CPU = Intel i7 6700k, RAM = 16 GB DDR4 2400 MHz
OS: Windows 10
Version: Current dev version
The cloudnet-common
module is completely compiled into the Bungeecord and Bukkit plugins.
Due to mismatching Gson versions, some usage of Gson in conjunction with CloudNet is broken and fails.
Example error message:
java.lang.LinkageError: loader constraint violation: when resolving method "de.dytanic.cloudnet.common.document.gson.JsonDocument.<init>(Lcom/google/gson/JsonObject;)V" the class loader (instance of net/md_5/bungee/api/plugin/PluginClassloader) of the current class, de/web/bungeeplugin/partysystem2/listener/Events, and the class loader (instance of sun/misc/Launcher$AppClassLoader) for the method's defining class, de/dytanic/cloudnet/common/document/gson/JsonDocument, have different Class objects for the type com/google/gson/JsonObject used in the signature
Describe the bug
Some plugins doesnt work due to # character for temp servers (the path is /root/CloudNet/temp/services/Economy-Hub-1#34595385-69f1-4da4-ac4d-3fa90e1d3b78/plugins
)
Steps for reproducing
Cant share jar of plugins but they throw errors like:
http://java.io.FileNotFoundException: /root/CloudNet/temp/services/Economy-Hub-1%23804f3165-9993-4484-a270-c0846d02de69/plugins/VillagerBlock.jar (No such file or directory).
Expected behavior
Not throwing errors. You can solve this by not using # in the folder name but some other character like _
Please provide us information about your environment and used assets
Tried both Linux Debian, Windows 10. Anyway, problem is in plugin not cloudnet, cloudnet just need to change from # in folder name to something else.
Describe the bug
When you stop a proxy with players it sometimes happens that the players are still marked as online by the cloud.
Steps for reproducing
Steps to reproduce the behavior:
1. Start Proxy
2. Join Proxy
3. Stop Proxy via /end
4. check playerstatus via console command or api
Steps to reproduce the exception:
1. -
**Expected behavior**
The player is displayed as Offline
**Screenshots**
-
**Please provide us information about your environment and used assets**
System specs: 8 GB RAM, 2vCores, 80 GB SSD
OS: centOS 7
Version: v3.0.0 Tsunami RELEASE (https://discordapp.com/channels/325362837184577536/536594705643864093/580456188991242241)
**Additional context**
<!-- Add any other context about the problem here. -->
Due to the fact, that the current implementation of the repository (plain files) is not ideal, we should look to switch to the GitHub package registry (https://github.com/features/package-registry)
Our organization is signed up for the registry and can use it to its full potential.
Documentation for Maven: https://help.github.com/en/articles/configuring-apache-maven-for-use-with-github-package-registry
Nachdem der Push abgeschlossen ist kommt der Fehler, eigentlich ist aber noch eine Menge RAM frei (~12GB) ausserdem tritt der Fehler nicht auf wenn nicht alle Nodes online sind.
[18.02 03:43:15.115] ERROR: io.netty.handler.codec.EncoderException: java.lang.OutOfMemoryError: Direct buffer memory [18.02 03:43:15.115] ERROR: at io.netty.handler.codec.MessageToByteEncoder.write(MessageToByteEncoder.java:125) [18.02 03:43:15.115] ERROR: at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:716) [18.02 03:43:15.115] ERROR: at io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:708) [18.02 03:43:15.115] ERROR: at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:791) [18.02 03:43:15.115] ERROR: at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:701) [18.02 03:43:15.115] ERROR: at io.netty.handler.codec.MessageToByteEncoder.write(MessageToByteEncoder.java:113) [18.02 03:43:15.115] ERROR: at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:716) [18.02 03:43:15.115] ERROR: at io.netty.channel.AbstractChannelHandlerContext.invokeWriteAndFlush(AbstractChannelHandlerContext.java:763) [18.02 03:43:15.115] ERROR: at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:789) [18.02 03:43:15.115] ERROR: at io.netty.channel.AbstractChannelHandlerContext.writeAndFlush(AbstractChannelHandlerContext.java:757) [18.02 03:43:15.115] ERROR: at io.netty.channel.DefaultChannelPipeline.writeAndFlush(DefaultChannelPipeline.java:1031) [18.02 03:43:15.115] ERROR: at io.netty.channel.AbstractChannel.writeAndFlush(AbstractChannel.java:310) [18.02 03:43:15.115] ERROR: at de.dytanic.cloudnet.driver.network.netty.NettyNetworkChannel.sendPacket0(NettyNetworkChannel.java:79) [18.02 03:43:15.115] ERROR: at de.dytanic.cloudnet.driver.network.netty.NettyNetworkChannel.lambda$sendPacket$1(NettyNetworkChannel.java:56) [18.02 03:43:15.115] ERROR: at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:163) [18.02 03:43:15.115] ERROR: at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:405) [18.02 03:43:15.115] ERROR: at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:338) [18.02 03:43:15.115] ERROR: at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:906) [18.02 03:43:15.115] ERROR: at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) [18.02 03:43:15.115] ERROR: at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [18.02 03:43:15.115] ERROR: at java.base/java.lang.Thread.run(Thread.java:834) [18.02 03:43:15.115] ERROR: Caused by: java.lang.OutOfMemoryError: Direct buffer memory [18.02 03:43:15.115] ERROR: at java.base/java.nio.Bits.reserveMemory(Bits.java:175) [18.02 03:43:15.115] ERROR: at java.base/java.nio.DirectByteBuffer.<init>(DirectByteBuffer.java:118) [18.02 03:43:15.115] ERROR: at java.base/java.nio.ByteBuffer.allocateDirect(ByteBuffer.java:317) [18.02 03:43:15.115] ERROR: at io.netty.buffer.PoolArena$DirectArena.allocateDirect(PoolArena.java:772) [18.02 03:43:15.115] ERROR: at io.netty.buffer.PoolArena$DirectArena.newUnpooledChunk(PoolArena.java:762) [18.02 03:43:15.115] ERROR: at io.netty.buffer.PoolArena.allocateHuge(PoolArena.java:260) [18.02 03:43:15.115] ERROR: at io.netty.buffer.PoolArena.allocate(PoolArena.java:232) [18.02 03:43:15.115] ERROR: at io.netty.buffer.PoolArena.reallocate(PoolArena.java:400) [18.02 03:43:15.115] ERROR: at io.netty.buffer.PooledByteBuf.capacity(PooledByteBuf.java:120) [18.02 03:43:15.115] ERROR: at io.netty.buffer.AbstractByteBuf.ensureWritable0(AbstractByteBuf.java:295) [18.02 03:43:15.115] ERROR: at io.netty.buffer.AbstractByteBuf.ensureWritable(AbstractByteBuf.java:274) [18.02 03:43:15.115] ERROR: at de.dytanic.cloudnet.driver.network.netty.NettyPacketLengthSerializer.encode(NettyPacketLengthSerializer.java:21) [18.02 03:43:15.115] ERROR: at de.dytanic.cloudnet.driver.network.netty.NettyPacketLengthSerializer.encode(NettyPacketLengthSerializer.java:11) [18.02 03:43:15.115] ERROR: at io.netty.handler.codec.MessageToByteEncoder.write(MessageToByteEncoder.java:107) [18.02 03:43:15.115] ERROR: ... 20 more
Hey Ihr Lieben,
ich weiß nicht ob das ein Bug ist oder ich etwas falsch mache aber wenn ich ServiceInfoSnapshotUtil.getPlayers(serviceInfoSnapshot) bekomme ich immer null zurück.
P.S. Das ist nur bei getPlayers null
Im code habe ich das stehen:
for (ServiceInfoSnapshot serviceInfoSnapshot : CloudNetDriver.getInstance().getCloudService("Lobby")) {
int players = ServiceInfoSnapshotUtil.getPlayers(serviceInfoSnapshot).size();
und players ist immer null.
und dieser Error kommt:
[30.07 21:23:33.763] INFO: [Lobby-1] org.bukkit.event.EventException: null
[30.07 21:23:33.763] INFO: [Lobby-1] at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:306) ~[spigot.jar:git-Spigot-dcd1643-e60fc34]
[30.07 21:23:33.763] INFO: [Lobby-1] at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[spigot.jar:git-Spigot-dcd1643-e60fc34]
[30.07 21:23:33.763] INFO: [Lobby-1] at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:500) [spigot.jar:git-Spigot-dcd1643-e60fc34]
[30.07 21:23:33.763] INFO: [Lobby-1] at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:485) [spigot.jar:git-Spigot-dcd1643-e60fc34]
[30.07 21:23:33.763] INFO: [Lobby-1] at org.bukkit.craftbukkit.v1_12_R1.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:235) [spigot.jar:git-Spigot-dcd1643-e60fc34]
[30.07 21:23:33.763] INFO: [Lobby-1] at org.bukkit.craftbukkit.v1_12_R1.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:202) [spigot.jar:git-Spigot-dcd1643-e60fc34]
[30.07 21:23:33.763] INFO: [Lobby-1] at org.bukkit.craftbukkit.v1_12_R1.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:198) [spigot.jar:git-Spigot-dcd1643-e60fc34]
[30.07 21:23:33.763] INFO: [Lobby-1] at net.minecraft.server.v1_12_R1.PlayerConnection.a(PlayerConnection.java:991) [spigot.jar:git-Spigot-dcd1643-e60fc34]
[30.07 21:23:33.763] INFO: [Lobby-1] at net.minecraft.server.v1_12_R1.PacketPlayInBlockPlace.a(PacketPlayInBlockPlace.java:26) [spigot.jar:git-Spigot-dcd1643-e60fc34]
[30.07 21:23:33.763] INFO: [Lobby-1] at net.minecraft.server.v1_12_R1.PacketPlayInBlockPlace.a(PacketPlayInBlockPlace.java:1) [spigot.jar:git-Spigot-dcd1643-e60fc34]
[30.07 21:23:33.763] INFO: [Lobby-1] at net.minecraft.server.v1_12_R1.PlayerConnectionUtils$1.run(SourceFile:13) [spigot.jar:git-Spigot-dcd1643-e60fc34]
[30.07 21:23:33.763] INFO: [Lobby-1] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_222]
[30.07 21:23:33.763] INFO: [Lobby-1] at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_222]
[30.07 21:23:33.763] INFO: [Lobby-1] at net.minecraft.server.v1_12_R1.SystemUtils.a(SourceFile:46) [spigot.jar:git-Spigot-dcd1643-e60fc34]
[30.07 21:23:33.763] INFO: [Lobby-1] at net.minecraft.server.v1_12_R1.MinecraftServer.D(MinecraftServer.java:748) [spigot.jar:git-Spigot-dcd1643-e60fc34]
[30.07 21:23:33.763] INFO: [Lobby-1] at net.minecraft.server.v1_12_R1.DedicatedServer.D(DedicatedServer.java:406) [spigot.jar:git-Spigot-dcd1643-e60fc34]
[30.07 21:23:33.763] INFO: [Lobby-1] at net.minecraft.server.v1_12_R1.MinecraftServer.C(MinecraftServer.java:679) [spigot.jar:git-Spigot-dcd1643-e60fc34]
[30.07 21:23:33.763] INFO: [Lobby-1] at net.minecraft.server.v1_12_R1.MinecraftServer.run(MinecraftServer.java:577) [spigot.jar:git-Spigot-dcd1643-e60fc34]
[30.07 21:23:33.763] INFO: [Lobby-1] at java.lang.Thread.run(Thread.java:748) [?:1.8.0_222]
[30.07 21:23:33.763] INFO: [Lobby-1] Caused by: java.lang.NullPointerException
[30.07 21:23:33.764] INFO: [Lobby-1] at de.wildcards.lobbysystem.listeners.SwitcherMenu.invMenu(SwitcherMenu.java:53) ~[?:?]
[30.07 21:23:33.764] INFO: [Lobby-1] at de.wildcards.lobbysystem.listeners.SwitcherMenu.onPlayerInteract(SwitcherMenu.java:32) ~[?:?]
[30.07 21:23:33.764] INFO: [Lobby-1] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_222]
[30.07 21:23:33.764] INFO: [Lobby-1] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_222]
[30.07 21:23:33.764] INFO: [Lobby-1] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_222]
[30.07 21:23:33.855] INFO: [Lobby-1] at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_222]
[30.07 21:23:33.855] INFO: [Lobby-1] at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:302) ~[spigot.jar:git-Spigot-dcd1643-e60fc34]
[30.07 21:23:33.856] INFO: [Lobby-1] ... 18 more
Minecraft version: Spigot 1.12.2
OS: Linux Debian
I'd recommend creating issue and pull request templates for this repository. Issue and pull request templates are pretty neat since they give the user/developer clear instructions how to properly write an issue or create a pull request. Such instructions could be:
It would organize issues and pull request and provides a clear workflow, how to properly create issues and pull requests .
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.