Commit graph

544 commits

Author SHA1 Message Date
Camotoy
e73a4efe60
Fix build; bump to 2.0.1-SNAPSHOT 2022-02-07 12:38:28 -05:00
RednedEpic
34d1dfde5e Add extensions permission to Spigot plugin.yml 2022-01-16 16:43:57 -06:00
RednedEpic
30303d5f16 Implement support for adding Geyser subcommands 2022-01-16 15:09:53 -06:00
Camotoy
6d577a3f4e
Add the Spigot change for the prior commit 2022-01-15 20:32:45 -05:00
Tim203
3251d9010c
We're in 2022 now 2022-01-01 20:03:05 +01:00
RednedEpic
8e774ea314 Bump log4j2 to 2.17.1
Not really a concern as attackers need file access to actually exploit this, but always worth staying up to date regardless :)
2021-12-28 23:31:38 -06:00
Camotoy
b246d5b4d1
Spigot: Temporarily work around issue where channel handlers don't see the connection
This 'fixes' issues where Floodgate may not work when the first player joins.
2021-12-28 15:36:45 -05:00
Camotoy
51c77fe808 Remove invalid params 2021-12-28 11:33:24 -05:00
Camotoy
91095beb52 Attempt to re-enable publishing 2021-12-28 11:14:30 -05:00
Camotoy
6318655e28
Print a logger warning if Geyser players will be unable to join this server
We check if ViaVersion supports our version and doesn't have us blocked, and if the server supports our version natively.
2021-12-27 13:58:09 -05:00
Konicai
6cd8b3387c
Cleanup some ping passthrough stuff (#2726) 2021-12-22 23:05:56 -05:00
dependabot[bot]
3bf68af82d
Bump log4j-api from 2.16.0 to 2.17.0 in /bootstrap/standalone (#2712)
Bumps log4j-api from 2.16.0 to 2.17.0.

---
updated-dependencies:
- dependency-name: org.apache.logging.log4j:log4j-api
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-12-18 18:21:52 +00:00
dependabot[bot]
90442a8922
Bump log4j-api from 2.15.0 to 2.16.0 in /bootstrap/standalone (#2700)
Bumps log4j-api from 2.15.0 to 2.16.0.

---
updated-dependencies:
- dependency-name: org.apache.logging.log4j:log4j-api
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-12-14 15:54:57 -05:00
Camotoy
7d5803bc37
Update Spigot adapters for 1.18 2021-12-13 13:35:11 -05:00
Camotoy
752d984dd7
Standalone: bump Log4J to release 2.15.0 2021-12-09 22:07:17 -05:00
Camotoy
d5e69e5f2a
Bump Log4J version 2021-12-09 14:18:16 -05:00
Camotoy
f0213d4b8e
Minor fixes; add CPU count to dump 2021-12-03 20:26:20 -05:00
Camotoy
dd632ef4b1 Update for Geyser usage
This fixes https://github.com/GeyserMC/Floodgate-Fabric/issues/7 on the Geyser-Fabric end. Floodgate-Fabric still needs to be fixed.
2021-12-03 11:08:05 -05:00
Camotoy
763743a845
Allow for implementations to provide a custom resource loader
This will allow Geyser-Fabric to work without resource loading issues. This commit also ensures try-with-resources is used anywhere a resource is accessed.
2021-12-03 11:01:06 -05:00
Camotoy
257e04fa6f Comment out deploying; we shouldn't need it here 2021-12-02 11:32:57 -05:00
Camotoy
fafdf31fa5 Update Jenkinsfile 2021-12-02 11:14:12 -05:00
Camotoy
5089067e4d Bump version to 2.0.0-SNAPSHOT; update Gradle wrapper 2021-12-02 11:10:22 -05:00
Akashii Kun
4f44fa8358 Java-1.18 (WIP) (#43) 2021-12-02 11:08:25 -05:00
Camotoy
404613520f Merge branch 'master' of https://github.com/GeyserMC/Geyser into feature/1.18 2021-11-26 11:13:33 -05:00
YHDiamond
720045a03f
Add Advanced Tooltips command (#2632)
Co-authored-by: YHDiamond <47502993+yehudahrrs@users.noreply.github.com>
2021-11-26 10:49:28 -05:00
Camotoy
b2d1212359 Bump Geyser to version 2.0.0-SNAPSHOT 2021-11-24 10:14:27 -05:00
Camotoy
966c2155ad
API: change player class to Connection 2021-11-22 14:52:26 -05:00
RednedEpic
83ddbd7d1a Initial api draft 2021-11-21 12:36:42 -06:00
RednedEpic
2c663e0ee5 The Great Refactor Part 3 - Entire project restructure 2021-11-20 17:29:46 -06:00
RednedEpic
3f5cb29ee0 The Great Refactor Part 2 - org.geysermc.connector -> org.geysermc.geyser 2021-11-20 15:34:30 -06:00
RednedEpic
0b5009b415 The Great Refactor Part 1 - connector -> core 2021-11-20 13:56:40 -06:00
Camotoy
6249292903
Merge branch 'master' of https://github.com/GeyserMC/Geyser into feature/1.18 2021-11-14 13:38:22 -05:00
RednedEpic
4bbea1de68 Merge across 1.18 protocol changes 2021-11-13 23:36:43 -06:00
RednedEpic
e5869c00d6 Update to new renames in MCProtocolLib 2021-11-13 23:07:24 -06:00
Camotoy
363171b80c
Add BungeeCommandExecutor random changes and remove completed TODO 2021-11-13 23:52:11 -05:00
Camotoy
768b09e7fd
Update to latest MCProtocolLib with Mojang mappings 2021-11-12 22:44:15 -05:00
David Choo
adbadbbba4
Prevent blocks destroyed by pistons from moving on Geyser-Spigot (#2627) 2021-11-12 20:36:01 -05:00
Camotoy
5d58394bc0
Move all PacketLib local channel classes to Geyser 2021-11-12 11:25:15 -05:00
Camotoy
09e3793fb2
Refactor GeyserSession tracking for better concurrency 2021-11-12 09:02:14 -05:00
Camotoy
62cded2daf
Allow Geyser-BungeeCord to continue working after /greload
We won't support reloading (neither does BungeeCord nor Waterfall), but at least Geyser will continue working after such a command is performed.
2021-11-09 11:44:28 -05:00
Konicai
3f88f20272 Refactor perms and upstream (#35)
* refactor permissions

* upstream

* remove shutdown from the command list

* make FabricWorldManager#getPlayer() private
2021-10-31 19:46:51 -04:00
Konicai
1929a5be83
Fix help command (#2604)
* Always pass session to execute() if the sender is a geyser player

* cleanup
2021-10-31 00:22:41 -05:00
Konicai
f883dfdf2c
Remove commands from autocomplete/help list that cannot be run (#2602)
* only tabcomplete for commands the sender has permission for

* set permission defaults for spigot

* Make velocity autocomplete on arg length 0 and 1

* fix advancements perm in spigot plugin.yml and add settings perm

(whoops)

* don't show bedrock commands to java players

* modify spigot perm defaults

* censor help menu, abstract tab complete code

* Bedrock players don't get cmd argument suggestions

* update spigot plugin.yml
2021-10-30 20:57:54 -05:00
Camotoy
29fa4a9443 Relocate Jackson dependency 2021-10-27 18:59:42 -04:00
Jens Collaert
7454033277
Register /geyser stop only on standalone (#2569)
We don't want to condone stopping Geyser in the middle of a plugin session, especially when there's no way to start it back up again.
2021-10-13 13:09:19 -04:00
byquanton
6cc092cc8e Fixed loadFloodgate method (#31)
Upstream Commit 7cd3eb99ef broke it
2021-10-09 14:47:10 -04:00
Camotoy
11bc083885
Update MCProtocolLib; add clearer errors for various connection issues
Errors that are a result of online mode and offline mode clashes are now clarified.
Users will now get a clearer message stating that the server is offline.

Resolves #2501
2021-10-07 11:00:43 -04:00
Camotoy
7cd3eb99ef
Always check for a key in Floodgate's folder first on plugin versions
This should avoid people trying to incorrectly copy the key.
2021-10-02 14:00:10 -04:00
Camotoy
f1098a9207
Add Geyser listener into listeners set in BungeeCord
Will fix ViaVersion compatibility when https://github.com/ViaVersion/ViaVersion/pull/2698 gets merged.
2021-10-02 08:53:36 -04:00
Camotoy
43bef851c7
Don't shade any Google dependency
All server platforms have modern enough Google dependencies that nothing should break. Tested with Velocity, BungeeCord, Spigot 1.12.2/1.16.5/1.17.1.
2021-09-26 20:54:44 -04:00
Camotoy
cef3f5f1bd Update to 1.4.3-SNAPSHOT 2021-09-22 13:51:06 -04:00
Camotoy
4b05b74a9a
Velocity: only initialize injector on Minecraft listener bound 2021-09-17 22:04:29 -04:00
Camotoy
4ecdcbb7c3
Preface Spigot injector messages with a warning 2021-09-10 21:18:24 -04:00
Camotoy
bc0cfde8f9
Set the minimum Java version to 16; drop Bedrock 1.17.0 (#2477) 2021-09-10 14:10:56 -04:00
David Choo
8461cf76b7
Smooth Pistons (#1542)
With proper piston collision for players as well.
2021-09-09 21:20:25 -04:00
Camotoy
0069566803
Dependency update; re-use Thread.MAX_PRIORITY for Spigot; other network optimizations 2021-08-31 19:57:56 -04:00
Camotoy
fda17077a0 Bump Geyser version to 1.4.2-SNAPSHOT 2021-08-30 14:27:13 -04:00
Camotoy
b9541505af
Bump version to try and fix deploying; other nitpicks 2021-08-30 13:55:01 -04:00
rtm516
65e85eb853
Fix bungeecord dump logs after 9fb5090 2021-08-25 11:31:12 +01:00
Jens Collaert
d26aed0a87
Allow uploading logs with mclo.gs link into dump (#2453) 2021-08-24 15:11:38 -04:00
David Choo
57c0185b45
Prevent projectiles from blocking the player's vision (#2472)
Prevent Snowballs, Eggs, and other throwable projectiles from blocking the player's screen
2021-08-17 22:44:33 -04:00
Camotoy
76399881a3
Use legacy DefaultEventLoopGroup constructor; label Geyser <-> Spigot connection thread 2021-08-16 22:33:14 -04:00
Camotoy
e20247b6d6
Allow enum fields to be set through standalone command line 2021-08-12 14:16:19 -04:00
Camotoy
a197f60446
Move use-direct-adapters to system property 2021-07-31 13:54:51 -04:00
Camotoy
002be32bb3
Connect Geyser players directly to the server for plugin versions (#2413)
- Faster loading times and improved latency; Geyser no longer creates a physical TCP connection to join the server
- Less configuration: remote address and port are now irrelevant
- Accurate IP addresses without needing Floodgate.

Co-authored-by: Redned <redned235@gmail.com>
2021-07-31 12:52:49 -04:00
Konicai
7f21a68d8d Auth type refactor in internal config (#26) 2021-07-28 19:53:08 -04:00
Konicai
b86648332a
Auth type refactor in internal config (#2410) 2021-07-28 19:44:09 -04:00
Redned
e73b7f5941 Use Minecraft color codes in console/logs, clean up log output and fix #1606
TerminalConsoleAppender lets us use the legacy colors on their own, so don't do our own ANSI handling.
2021-07-24 12:52:28 -05:00
Camotoy
38539c2148 Exclude Google libraries from the built jar 2021-07-21 09:37:51 -04:00
Redned
1a0ac26398 Move leak detector to standalone bootstrap class 2021-07-18 17:44:08 -05:00
RednedEpic
ff280ef192 Replace Reflections usage with an annotation processor
Reduces jar size by about 1.5-2mb
2021-07-17 13:36:04 -05:00
Camotoy
fcbd90c4d6 Require 1.17.1 or greater 2021-07-16 10:53:48 -04:00
Camotoy
7660ebb48b Update to the latest Geyser version 2021-07-12 21:55:42 -04:00
Redned
f7ef90278b
Implement a new registry system (#2306)
Co-authored-by: Camotoy <20743703+Camotoy@users.noreply.github.com>
2021-07-12 21:19:40 -04:00
Camotoy
9eec08b9dc
Depend on Velocity release 3.0.0 2021-07-06 15:37:58 -04:00
Camotoy
c220e5428c Relocate Google libraries 2021-07-05 22:28:41 -04:00
Camotoy
fe1ba5ba5c
Support Velocity 3.0.0 by default 2021-07-05 21:07:13 -04:00
rtm516
2c1fbc544a Fix download link 2021-07-02 14:52:45 +01:00
rtm516
fa8ddde9b4 Update build badge 2021-07-02 14:50:37 +01:00
Camotoy
62174c0e3b
Spigot plugin fixes
- If non-NMS world adapter: don't try to load a chunk if it doesn't exist
- Don't error out with older Spigot versions if a gamerule doesn't exist
2021-06-28 20:48:44 -04:00
Camotoy
5b1d815926
Bump NMS adapter version 2021-06-26 14:08:59 -04:00
Camotoy
3220190904
Relocate ASM (fixes #2315) 2021-06-23 13:57:03 -04:00
Camotoy
3a2cff7864
Clean up a bunch
Mostly checked with IntelliJ, but manually performed. The only issue I possibly anticipate is item name/lore issues, but the new method should be technically better.
2021-06-20 21:42:22 -04:00
Camotoy
b08ad206ca Bump version to 1.4.0-SNAPSHOT 2021-06-10 10:02:59 -04:00
Camotoy
a24d2a957c
Don't assume that Velocity plugin names and versions are not present 2021-06-09 18:46:34 -04:00
Camotoy
2092a75e42 Bump to use Geyser 1.4.0-SNAPSHOT 2021-06-08 14:02:19 -04:00
Camotoy
511cfd1ae8
Update Geyser version to 1.4.0-SNAPSHOT 2021-06-08 08:55:56 -04:00
Camotoy
f0ba0dbf4c ... 2021-06-07 17:36:25 -04:00
Camotoy
b41552faf3
Use ViaVersion master branch 2021-06-07 14:56:29 -04:00
Camotoy
d64038d311 Well that didn't commit ok 2021-06-07 12:42:42 -04:00
Camotoy
d08cd542d0 Use local Gradle/Gradle 7 2021-06-07 12:35:43 -04:00
Camotoy
28fb957fd9 Update for 1.17-rc1 and use Java 16 2021-06-07 12:33:54 -04:00
Camotoy
91f2c3796f Merge branch 'java-1.16' into java-1.16-floodgate-2.0 2021-06-07 10:01:55 -04:00
Camotoy
d07a69be89 Return on config fail 2021-06-07 09:58:17 -04:00
Camotoy
3cdc4c767d
Don't start if Floodgate is outdated 2021-06-06 19:01:16 -04:00
Camotoy
19f8e2dfac
Merge branch 'master' of https://github.com/GeyserMC/Geyser into feature/1.17 2021-06-06 11:42:59 -04:00
Tim203
1ded2086e3
Merge remote-tracking branch 'origin/floodgate-2.0' into feature/1.17
# Conflicts:
#	connector/src/main/java/org/geysermc/connector/network/UpstreamPacketHandler.java
2021-06-06 01:16:57 +02:00
Camotoy
4f23066b88
Merge branch 'viaversion4.0.0' into feature/1.17 2021-06-02 11:55:48 -04:00
Camotoy
ebf726ce9e
Yeet cache chunks
So many features require this config option, and we don't intend on supporting it being both disabled and enabled.
2021-06-01 15:36:33 -04:00
Konicai
4c542ba2c4
Register permissions in Spigot plugin.yml (#2246) 2021-05-31 22:35:25 -04:00
Tim203
776fc4e933
Merge remote-tracking branch 'origin/master' into floodgate-2.0
# Conflicts:
#	connector/src/main/java/org/geysermc/connector/GeyserConnector.java
#	connector/src/main/java/org/geysermc/connector/utils/SettingsUtils.java
2021-05-26 02:17:33 +02:00
Camotoy
505de0e0d5
Remove Geyser-Bukkit migration 2021-05-24 19:25:35 -04:00
Camotoy
986701f06f
Merge branch 'master' of https://github.com/GeyserMC/Geyser into feature/1.17 2021-05-23 21:31:40 -04:00
Camotoy
4734ce2059
Update MCProtocolLib + PacketLib (#2211)
By updating these dependencies, we bring in a couple fixes that should improve network performance:

    Use TCP_NODELAY for the Java connection
    Use Epoll/KQueue if possible for the Java connection
    Only use one event loop for the Java connection
    Fix Netty dependencies so Spigot and BungeeCord can use native network types

Currently, Geyser-Spigot pre-1.12 breaks with these changes. It is unlikely that this will be fixed.
2021-05-23 15:55:01 -04:00
Hellohi3654
f831557919
Update pom.xml (#2220) 2021-05-22 09:26:47 -04:00
Camotoy
b5307ab3ed
21w20a support 2021-05-19 22:24:11 -04:00
Camotoy
50bea0e180
Update to the latest ViaVersion changes 2021-05-01 00:30:01 -04:00
Camotoy
e45215d1ea
Update to support ViaVersion 4.0.0 for Spigot integration
This breaks compatibility with ViaVersion 3.2.1.
2021-04-24 15:18:41 -04:00
Camotoy
88cb680c3f Update for 1.16.220 2021-04-06 00:29:00 -04:00
Camotoy
86b2901f02
1.16.220 support (#2105)
This update does not break compatibility with any other currently supported version of Bedrock.

Co-authored-by: Redned <redned235@gmail.com>
2021-04-06 00:14:06 -04:00
Camotoy
5418b9e263 Update for Floodgate 2.0 2021-04-01 20:07:32 -04:00
Tim203
644ece124f
Bumped Geyser version to 1.3.0-SNAPSHOT 2021-03-23 01:49:08 +01:00
Tim203
107cd5bd5a
Merge remote-tracking branch 'origin/master' into floodgate-2.0
# Conflicts:
#	connector/src/main/java/org/geysermc/connector/network/session/GeyserSession.java
2021-03-23 01:35:02 +01:00
Camotoy
17e3895b82 Implement lectern direct access (better lecterns like Geyser-Spigot) 2021-03-14 13:33:53 -04:00
Camotoy
1d8961c498
Allow GeyserWorldManager to be overwritten while still holding a cache (#2036) 2021-03-14 12:26:47 -04:00
Camotoy
48aa586b21
More formatting fixes 2021-03-13 18:07:43 -05:00
Tim203
4229db0a2f
Merge remote-tracking branch 'origin/server-inventory' into floodgate-2.0
# Conflicts:
#	connector/src/main/java/org/geysermc/connector/network/session/GeyserSession.java
2021-03-10 20:46:50 +01:00
Tim203
643098e09e
Merge remote-tracking branch 'origin/master' into floodgate-2.0
# Conflicts:
#	connector/src/main/java/org/geysermc/connector/network/UpstreamPacketHandler.java
#	connector/src/main/java/org/geysermc/connector/network/session/GeyserSession.java
#	connector/src/main/java/org/geysermc/connector/network/translators/bedrock/BedrockServerSettingsRequestTranslator.java
2021-03-10 20:42:37 +01:00
Camotoy
ded00dfd97
Merge branch 'master' of https://github.com/GeyserMC/Geyser into server-inventory 2021-03-09 14:45:04 -05:00
Camotoy
9ae7c1de25
1.16.210 support (#2019)
This commit implements 1.16.210 support while still keeping 1.16.100 and 1.16.210 compatibility.

Co-authored-by: AJ Ferguson <AJ-Ferguson@users.noreply.github.com>
Co-authored-by: rtm516 <rtm516@users.noreply.github.com>
2021-03-09 12:51:48 -05:00
Camotoy
ad4196f5a0
Add spacing in lectern Spigot get code 2021-03-08 16:59:59 -05:00
Camotoy
da11cd298c
Address requests 2021-03-08 16:57:31 -05:00
Camotoy
814fa95496
Merge branch 'master' of https://github.com/GeyserMC/Geyser into server-inventory 2021-03-06 13:21:28 -05:00
Camotoy
457d7a9fb5
Remove MD-5 repository (#2007) 2021-03-06 13:18:54 -05:00
Camotoy
6775d88704
Handle no-NBT lecterns 2021-02-26 21:53:24 -05:00
Camotoy
13c924f841
Make lecterns more reliable on chunk load in Spigot 2021-02-26 00:54:05 -05:00
Tim203
0832e7d65c
Fixes issue when both Geyser and Floodgate are on the same server 2021-02-25 20:55:00 +01:00
Tim203
c16c66b860
Merge remote-tracking branch 'origin/master' into floodgate-2.0
# Conflicts:
#	connector/pom.xml
#	connector/src/main/java/org/geysermc/connector/GeyserConnector.java
#	connector/src/main/java/org/geysermc/connector/network/session/GeyserSession.java
#	connector/src/main/java/org/geysermc/connector/network/translators/bedrock/BedrockNetworkStackLatencyTranslator.java
#	connector/src/main/java/org/geysermc/connector/skin/SkinProvider.java
#	connector/src/main/java/org/geysermc/connector/utils/SettingsUtils.java
2021-02-25 02:28:48 +01:00
Camotoy
85b8fe2734
Merge branch 'master' of https://github.com/GeyserMC/Geyser into server-inventory 2021-02-17 19:33:51 -05:00
YHDiamond
62cbdb8f5c
[ci skip] Fixed if spacing (#1941)
Co-authored-by: yehudahrrs <47502993+yehudahrrs@users.noreply.github.com>
2021-02-16 20:09:18 -05:00
Camotoy
72186d91f1
Merge branch 'master' of https://github.com/GeyserMC/Geyser into server-inventory 2021-02-16 16:47:58 -05:00
Camotoy
e0bd5a62a7
Fix up some SpotBugs suggestions (#1911)
This is a manual go-through of some bugs SpotBugs pointed out.
2021-02-16 16:25:46 -05:00
Camotoy
aaeca23f54
Merge branch 'master' of https://github.com/GeyserMC/Geyser into server-inventory 2021-02-10 23:53:45 -05:00
Camotoy
1ec589fa35
Enable debug property in Log4J config if applicable (#1906)
With this commit, debug messages in Netty and Protocol will now show if debug mode is enabled in the Geyser standalone config.

There is also some small tuning to the PacketTranslatorRegistry for cleanliness and maybe some minor performance.
2021-02-08 13:30:37 -05:00
Camotoy
e8b2bff951 Add platform and environment type to dump 2021-02-05 12:54:35 -05:00
Camotoy
31a7b798f1 Remove Lombok 2021-02-05 12:29:15 -05:00
Camotoy
47879c913b
Merge branch 'master' of https://github.com/GeyserMC/Geyser into server-inventory 2021-02-04 21:25:29 -05:00
Camotoy
2020881799 Add support for new metric 2021-02-04 10:17:06 -05:00
Camotoy
c26a2baed6
Add more metrics (#1896)
- Add the Java version being used
- Add the Minecraft server version being used, alongside the platform type that is using that version. Not used for proxies as those have to be on latest to support the latest Minecraft version
2021-02-03 19:54:35 -05:00
Camotoy
254990148c
Fix several world-related errors on Spigot 1.12 (#1886)
- Fix v1.12R1 not being recognized as a world adapter
- Return air if a chunk is not loaded
2021-02-03 19:54:12 -05:00
Camotoy
27fecd7ff7
Update Sponge repository (#1890)
See https://discord.com/channels/142425412096491520/303772747907989504/805571283546144808 (Sponge Discord)
2021-02-04 00:51:11 +00:00
Tim203
5ad2510b87
Merge remote-tracking branch 'origin/master' into floodgate-2.0
# Conflicts:
#	connector/src/main/java/org/geysermc/connector/command/defaults/SettingsCommand.java
#	connector/src/main/java/org/geysermc/connector/network/UpstreamPacketHandler.java
#	connector/src/main/java/org/geysermc/connector/network/session/GeyserSession.java
#	connector/src/main/java/org/geysermc/connector/network/session/cache/WindowCache.java
#	connector/src/main/java/org/geysermc/connector/utils/LoginEncryptionUtils.java
#	connector/src/main/java/org/geysermc/connector/utils/StatisticsUtils.java
2021-02-01 12:02:49 +01:00
Camotoy
3dc5890649
Merge branch 'master' of https://github.com/GeyserMC/Geyser into server-inventory 2021-01-22 13:36:06 -05:00
ScxLore1216
0b9b3eb127
Update bungeecord-api to 1.16-R0.4-SNAPSHOT (#1857) 2021-01-21 18:00:18 -05:00
Camotoy
c3569093b6 Update command handling 2021-01-21 14:57:06 -05:00
Camotoy
f7822e07eb
Merge branch 'master' of https://github.com/GeyserMC/Geyser into server-inventory 2021-01-17 11:12:38 -05:00
Camotoy
2d9baf1bfc
Send message to Java if command is Bedrock-only (#1834)
* Send message to Java if command is Bedrock-only

If a Java player attempts to use a Bedrock-only command, such as `geyser statistics`, they will get an error message stating that this command is only for Bedrock players.

This commit also cleans up Velocity Adventure dependency usage. Issues were caused because of the way relocation works and because Velocity also uses Adventure.

* Only look for a session if we have to

* Update languages submodule
2021-01-16 22:18:13 -05:00
Camotoy
24da65dcb5 Apparently exclusion isn't working. Temporary fix 2021-01-15 19:42:47 -05:00
Camotoy
49f02081e0 Resolve https://github.com/CardboardPowered/cardboard/issues/139 2021-01-15 14:27:55 -05:00
AJ Ferguson
196c9f5c17 Remove debug lines 2021-01-13 19:19:01 -09:00
rtm516
5fcf48e1c6 Add skippable discord notifications to the build 2021-01-14 00:07:23 +00:00
Camotoy
4db9ec92bf
Merge branch 'master' of https://github.com/GeyserMC/Geyser into server-inventory 2021-01-11 19:46:39 -05:00
Camotoy
2cc8726c12
Shade in the entire net.kyori package (#1826) 2021-01-11 14:11:21 -05:00
Camotoy
54fb56ea85
Add legacy crafting support for Spigot and finish up standalone 2021-01-09 16:45:32 -05:00
Camotoy
a5e0cab48a Clean up :) 2021-01-09 11:53:09 -05:00
Camotoy
fd151d4e3a Attempt 2 of trying to get a build out of this 2021-01-09 11:41:37 -05:00
Camotoy
fad2fc149c Publish artifacts? Attempt 1 2021-01-08 14:26:53 -05:00
Camotoy
6bf0c5d94c Attempt 9 2021-01-08 14:04:38 -05:00
Camotoy
373ae84d2d Attempt 8 2021-01-08 13:59:45 -05:00
Camotoy
6c3c07b6a4 Attempt 7 2021-01-08 13:51:39 -05:00
Camotoy
0dec24d0c9 Attempt 6 2021-01-08 13:44:30 -05:00
Camotoy
ce78e43a5c Attempt 5 2021-01-08 13:39:56 -05:00
Camotoy
cd9dde9796 Attempt 4 - we don't have a master branch 2021-01-08 13:32:10 -05:00
Camotoy
029522c2fc Attempt 3 and then I start actually looking at docs 2021-01-08 13:18:41 -05:00
Camotoy
4255240b6e Attempt 2 2021-01-08 13:14:41 -05:00
Camotoy
b51173ea97 Attempt to use Artifactory 2021-01-08 13:13:13 -05:00
rtm516
be8329722e Fix builds for new CI 2021-01-07 09:56:06 +00:00
Tim203
5ad495ce97
Merge remote-tracking branch 'origin/master' into floodgate-2.0
# Conflicts:
#	common/src/main/java/org/geysermc/common/window/CustomFormBuilder.java
#	common/src/main/java/org/geysermc/common/window/CustomFormWindow.java
#	common/src/main/java/org/geysermc/common/window/FormWindow.java
#	common/src/main/java/org/geysermc/common/window/ModalFormWindow.java
#	common/src/main/java/org/geysermc/common/window/SimpleFormWindow.java
#	common/src/main/java/org/geysermc/common/window/button/FormButton.java
#	common/src/main/java/org/geysermc/common/window/button/FormImage.java
#	common/src/main/java/org/geysermc/common/window/component/DropdownComponent.java
#	common/src/main/java/org/geysermc/common/window/component/InputComponent.java
#	common/src/main/java/org/geysermc/common/window/component/SliderComponent.java
#	common/src/main/java/org/geysermc/common/window/component/StepSliderComponent.java
#	common/src/main/java/org/geysermc/common/window/component/ToggleComponent.java
#	common/src/main/java/org/geysermc/common/window/response/CustomFormResponse.java
#	common/src/main/java/org/geysermc/common/window/response/ModalFormResponse.java
#	common/src/main/java/org/geysermc/common/window/response/SimpleFormResponse.java
#	common/src/main/java/org/geysermc/floodgate/util/EncryptionUtil.java
#	connector/src/main/java/org/geysermc/connector/network/session/cache/WindowCache.java
2021-01-04 13:37:58 +01:00
Camotoy
8317961340
Merge branch 'master' of https://github.com/GeyserMC/Geyser into server-inventory 2021-01-01 14:20:52 -05:00
Camotoy
186d94917a
Update copyright to 2021 (#1772)
* Update copyright to 2021

Free commit!

* These don't need a copyright

* Don't downgrade the mappings
2021-01-01 10:10:36 -05:00
Camotoy
a17f2203a8
Fix oddities in chunk sections with older Spigot versions (#1758) 2020-12-29 21:49:36 -05:00
Camotoy
2265de3ae9
lecterns 2020-12-28 00:29:27 -05:00
Tim203
cd13e03730
Merge remote-tracking branch 'origin/master' into floodgate-2.0
# Conflicts:
#	connector/src/main/java/org/geysermc/connector/network/session/GeyserSession.java
#	connector/src/main/java/org/geysermc/connector/network/translators/bedrock/BedrockNetworkStackLatencyTranslator.java
#	connector/src/main/java/org/geysermc/connector/network/translators/java/JavaJoinGameTranslator.java
#	connector/src/main/java/org/geysermc/connector/utils/SettingsUtils.java
2020-12-15 22:06:59 +01:00
Camotoy
799f6341c8
Fix Netty dependency usage on Velocity (#1672) 2020-12-13 23:03:11 -05:00
qlow
a173005767
Added IGeyserPingPassthrough#getPingInformation(InetSocketAddress) to make logging of the pinging IPs possible (#1633)
Co-authored-by: qlow <info@qlow.eu>
2020-12-07 14:04:50 -05:00
Camotoy
0215c383b0
GUI: Don't exit if there is a config error (#1600)
Leave the window open so the user understands there is an error.

This also changes the exit code to 1 when exiting without a GUI since we have an error.
2020-11-27 18:55:33 -05:00
a70d3e2150
Fix inconsistencies with movement and position (#699)
Movement is now significant better, especially on slabs, stairs, and other half-blocks.

Co-authored-by: RednedEpic <redned235@gmail.com>
Co-authored-by: DoctorMacc <toy.fighter1@gmail.com>
Co-authored-by: Tim203 <mctim203@gmail.com>
Co-authored-by: Camotoy <20743703+DoctorMacc@users.noreply.github.com>
2020-11-20 14:56:39 -05:00
rtm516
4297215420
More chat fixes (#1557)
* Fix positional translation arguments not being handled

* Fix locale fallback

* Fix command completion

* Remove the expensive call to `containsKey`

* Unify adventure versions

* Fix some more formatting issues due to parity

* Fix and update tests

* Update adventure

* Add Javadoc for getCommandNames

* Formatting

Co-authored-by: Camotoy <20743703+DoctorMacc@users.noreply.github.com>
2020-11-18 23:18:36 +00:00
Tim203
b8f398aa3c
Merge remote-tracking branch 'origin/master' into floodgate-2.0
# Conflicts:
#	connector/src/main/java/org/geysermc/connector/GeyserConnector.java
#	connector/src/main/java/org/geysermc/connector/network/translators/java/JavaJoinGameTranslator.java
2020-11-18 19:45:25 +01:00
DoctorMacc
80c9f47645 Merge branch 'java-1.16' of https://github.com/GeyserMC/Geyser-Fabric into java-1.16 2020-11-17 13:32:24 -05:00
DoctorMacc
b4d3fd088a Update to 1.16.100 2020-11-17 13:32:13 -05:00
Camotoy
123b074cc7
Update to Bedrock 1.16.100 (#1552)
* Initial work on 1.16.100 - currently crashes the client

* Update runtime item states

* Use new Bedrock runtime IDs

Bedrock now hardcodes block runtime IDs in alphabetical order of the identifiers. This commit updates Geyser to accomodate.

- Remove runtime_block_states.dat and replace it with blockpalette.nbt
- Calculate the block runtime ID based on the order of the block palette
- Separate BlockTranslator.AIR into Bedrock and Java values
- Update the second layer of chunks to use air when not waterlogged
- Don't send item palette for now, as that's what crashes the game (will look into for v415)
- Other misc. changes

* Improve second layer chunk translation

* v415 support

- Add a message warning people they are on a beta version of Geyser

* Update to protocol v417

There are still some mappings changes that need to be gone through.

* Update runtime item states and clean up item frames

* Future-proof enchanment table

* Update for v418

* Update to v419

* Apply proper air ID to waterlogged chunk layer

* Fix missing import

* Remove beta warning

* Update mappings

* Manually patch runtime_item_states and send the ITEMS registry

* Update README

* Disable grindstone and smithing inventories (since they're broken)

* Use artifactory jenkins plugin (#1548)

* Use artifactory jenkins plugin

* Bump version to 1.2.0-SNAPSHOT

Co-authored-by: SupremeMortal <6178101+SupremeMortal@users.noreply.github.com>
2020-11-17 11:03:12 -06:00
Redned
a3de72fed3 Use PlatformType in common module 2020-11-14 17:53:59 -06:00
RednedEpic
981ac3bf11 Move PlatformType to common module 2020-11-14 17:49:56 -06:00
DoctorMacc
566113fa1e Fix LAN support compiled? 2020-11-11 23:35:44 -05:00
Camotoy
e748240a02
Add more interactive tags (mobile buttons) (#1443)
* Add more interactive tags (mobile buttons)

This expands our support for showing the interactive tags on touchscreen and console setups. This is not complete - specifically, the food compatibility of creatures needs to be expanded upon (I will work on this later and does not stop this PR from being mergable). This also includes:

- Creepers who are ignited with flint and steel now show up properly
- Zombie villagers now shake properly when converting and show their region outfits

* Add more food choices and add more panda entity metadata

* Re-add eating flag

* Remove debug line

* Refactor dimension usage, finish interactive tag usage, bees

* Print statements... ._.

* Don't make eating item packet data a non-constant

* Move BAMBOO to ItemRegistry

* Add missing break

* Make changes

* Minor final changes
2020-11-11 19:28:45 -05:00
DoctorMacc
b11d2bcd3f Support Minecraft 1.16.3 and 1.16.4 2020-11-07 23:23:23 -05:00
rtm516
2d95302b10
Add support for passing config options as arguments (#1506) 2020-11-07 13:17:17 -06:00
Tim203
c64d57439f
Block entity performance improvements (#1481)
* BlockEntity performance improvements

* Use chunk cache if possible for block caching

* Get new block state from ViaVersion if block entity

* Add Javadoc for FlowerPotBlockEntityTranslator.isFlowerBlock

* Remove debug line

* Don't add all RequiresBlockState instances if cache chunks is enabled

* Double chest map get optimization

* Last changes

Co-authored-by: DoctorMacc <toy.fighter1@gmail.com>
2020-11-05 22:36:22 +01:00
Camotoy
3e0d898b6a
Update to 1.16.4 (#1487)
* 1.16.4-pre1 support

* Update to support ViaVersion 3.2.0 (#1358)

* Update to support ViaVersion 3.2.0

This commit updates ViaVersion integration to support their recent mappings changes. 

Co-authored-by: Nassim <jahnke.nassim@gmail.com>

* Send adventure settings on gamemode change after gamemode swap

* Update Velocity to 1.1.0 proper

* Update to 1.16.4

Co-authored-by: Nassim <jahnke.nassim@gmail.com>
2020-11-02 13:28:31 -06:00
Tim203
36419e5931
Merge remote-tracking branch 'origin/master' into floodgate-2.0
# Conflicts:
#	common/src/main/java/org/geysermc/common/window/CustomFormWindow.java
#	common/src/main/java/org/geysermc/common/window/SimpleFormWindow.java
#	connector/src/main/java/org/geysermc/connector/network/UpstreamPacketHandler.java
#	connector/src/main/java/org/geysermc/connector/network/session/GeyserSession.java
#	connector/src/main/java/org/geysermc/connector/utils/LoginEncryptionUtils.java
#	connector/src/main/java/org/geysermc/connector/utils/SettingsUtils.java
2020-10-30 01:25:52 +01:00
Camotoy
045c0e0637
Introduce CommandSender.getLocale() (#1431)
* Introduce CommandSender.getLocale()

This allows Geyser-specific commands (e.g. `/geyser help`) to be displayed in the (Java or Bedrock) player's default language, which stops those commands from simply being displayed in the default locale.

* Tweak Javadoc

* Set CommandManager's GeyserConnector to final

* Clean up
2020-10-29 18:30:52 -04:00
Camotoy
a2a7e99402
GUI Improvements (#1462)
- Added `GeyserCommand.isExecutableOnConsole()`. If this is set to false, the command will not appear as an option in the GUI.
- Added `GeyserCommand.getSubCommands()`. If not empty, the subcommand options will now appear in the GUI.
2020-10-27 18:40:00 -04:00
DoctorMacc
150f5f52e3 Merge branch 'java-1.16' of https://github.com/GeyserMC/Geyser-Fabric into java-1.16 2020-10-27 13:52:05 -04:00
DoctorMacc
3d994db0f2 Move to OpenCollab domain 2020-10-27 13:51:54 -04:00
Camotoy
6f698993ab Add reference to the Geyser wiki 2020-10-25 23:31:52 -04:00
Camotoy
7455b78cbf Make downloading more clear 2020-10-25 23:19:56 -04:00
DoctorMacc
4883a20797 Add load complete message and don't null the server if reloading 2020-10-25 16:22:50 -04:00
LambdAurora
a9b414c675 Add LAN games support. 2020-10-25 17:29:19 +01:00
DaPorkchop_
7d2745dee6
Faster chunk conversion (#1400)
* BlockStorage is never used concurrently, no need to synchronize

* initial, semi-functional, faster chunk conversion

* faster chunk conversion works well for every situation except spigot

* delete unused ChunkPosition class

* preallocate and pool chunk encoding buffers

* make it work correctly on spigot

* make field naming more consistent

* attempt to upgrade to latest MCProtocolLib

* remove debug code

* compile against my MCProtocolLib fork while i wait for my upstream PR to be accepted

* return to Steveice10 MCProtocolLib
2020-10-15 01:30:25 -05:00
DoctorMacc
c426c335d7 Fix reloading Geyser 2020-10-11 23:15:22 -04:00
DoctorMacc
856ce6b588 Exclude all irrelevant builds 2020-10-08 12:54:53 -04:00
Camotoy
4d925da68a Add specific Jenkins link 2020-10-07 23:05:52 -04:00
Camotoy
f82329b34f Add Jenkins builds to the README 2020-10-07 23:05:23 -04:00
DoctorMacc
ae3896d1d0 Add command permissions system 2020-10-07 22:42:17 -04:00
DoctorMacc
56b70927f2 Fix archiving 2020-10-07 21:05:42 -04:00
DoctorMacc
ca65f9f45a Fix ./gradlew usage 2020-10-07 20:59:09 -04:00
DoctorMacc
0e77f20f86 Specify Fabric repository 2020-10-07 20:37:23 -04:00
DoctorMacc
7b0c1e9a05 Generify Gradle 2020-10-07 20:29:39 -04:00
DoctorMacc
293f691d39 Manually define Gradle 2020-10-07 20:28:43 -04:00
DoctorMacc
f99cbfa231 Maybe this works? 2020-10-07 20:21:46 -04:00
DoctorMacc
ad42c800cd Remove erroneous line 2020-10-07 20:04:08 -04:00
DoctorMacc
9e62c6369c Jenkinsfile attempt 2020-10-07 20:01:01 -04:00
DoctorMacc
105f4f0a32 Fix console chat output 2020-10-07 19:44:13 -04:00
DoctorMacc
977ce4bbec Guess we don't need any relocations 2020-10-07 19:02:41 -04:00
DoctorMacc
b293c3478a It compiles! :D 2020-10-07 18:35:35 -04:00
DoctorMacc
7a91e0a80d Start on compiling 2020-10-06 22:45:15 -04:00
Camotoy
64d5cf51d1 Create README.md 2020-10-06 18:53:11 -04:00
DoctorMacc
c34b63c8c6 Add proper commands support 2020-10-06 18:43:02 -04:00
DoctorMacc
4b6f1a06b7 Remove unused imports 2020-10-06 14:23:55 -04:00
DoctorMacc
6ccde86057 Getting server IP now works 2020-10-06 14:11:27 -04:00
DoctorMacc
be07a47f9f Implement proper logger, shutdown, and IP checking 2020-10-06 13:41:50 -04:00
DoctorMacc
e7c00d897f Add .gitignore 2020-10-06 12:34:25 -04:00
DoctorMacc
754c2f3d78 First commit. 2020-10-06 12:15:07 -04:00
bundabrg
650c02ef66
Remove 'geyser' from parameters when executing a command under Spigot, Bungeecord, Sponge, Velocity (#1266)
* Remove 'geyser' from parameters when executing a command under Spigot, Bungeecode, Sponge, Velocity

Fixes https://github.com/bundabrg/GeyserReversion/issues/8

* Fix case when there are no sub commands

Co-authored-by: bundabrg <bundabrg@grieve.com.au>
2020-09-28 23:49:46 -04:00
DoctorMacc
d75169392b
Small consistency fixes 2020-09-27 21:08:31 -04:00
Tim203
5b317ec595
Merge remote-tracking branch 'origin/master' into floodgate-2.0
# Conflicts:
#	bootstrap/bungeecord/src/main/java/org/geysermc/platform/bungeecord/GeyserBungeeConfiguration.java
#	bootstrap/spigot/src/main/java/org/geysermc/platform/spigot/GeyserSpigotConfiguration.java
#	connector/src/main/java/org/geysermc/connector/GeyserConnector.java
#	connector/src/main/java/org/geysermc/connector/network/session/GeyserSession.java
2020-09-19 14:40:12 +02:00
Tim203
7fbc401dfa
Added RawSkins, Toppings and renamed the Floodgate plugin name 2020-09-19 14:21:54 +02:00
Camotoy
8c8630814d
Update to 1.16.3 (#1272)
* Update for 1.16.3-rc1

* Update to 1.16.3

* Update README

* Update MCProtocolLib
2020-09-10 10:30:56 -05:00
Camotoy
5b76a85895
Non-full-chunk support (#574)
This commit adds non-full chunk support if chunk caching is enabled.
2020-09-03 19:00:36 -04:00
Camotoy
4c58568eb4
Relocate Google Common (#1242)
Fixes NoSuchMethodErrors from occuring on certain Spigot servers.
2020-09-02 23:42:53 -04:00
Camotoy
81a48bf96d
Relocate the rest of our dependencies (#1227)
- Relocate all of our dependencies. This does not include MCProtocolLib and Nukkit dependencies at this time as there are no other known plugins that use these dependencies.
- Switch to a static commit for Adventure dependencies.

Tested working on all versions.
2020-09-01 23:38:10 -05:00
Tim203
1c84993853
Scoreboard improvements (#1166)
* Added a way to check if debug logging is enabled

* Improved scoreboard performance

* Include Teams in pps and return pending pps instead when higher then pps

Some servers have a huge amount of score packets when the player logs in, but before this commit, only after the first high pps (packets per second) the ScoreboardUpdater will be used (after pending packets per second have been moved to packets per second). But this commit fixes that the ScoreboardUpdater can be used on the second that the pps is getting high.

* Fixed team pre + suffix "null" issue and added threshold config option

Fixed team pre + suffix "null" issue.
When the prefix and/or suffix of a Team is null, "null" will be returned instead of null (Due to the way that MCProtocolLib is made and designed). This is fixed by simply checking if the prefix and/or suffix equal "null" and if that is the case, replace it with "".

Added threshold option.
Gave the person who is running Geyser an option to specify the first Scoreboard packets per second threshold to further improve performance by lowering the setting or decrease performance by relaxing the setting a bit. The value can't be higher then 250 (the second threshold), because it'll always choose the lowest threshold.

* Forgot to bump config version

* Small changes

* Reverted version bump, changed Sponge config, changed FloodgateKeyLoader

Reverted version bump
Camotoy said that you only need to bump the config version if the change is breaking, the config version bump has been reverted.

Changed Sponge config
The Sponge config has been modified to look like the other platform configurations.

Changed FloodgateKeyLoader

* Changed default-locale and (remote) address as requested by Camotoy

* Reduce bandwidth and a few final tweaks

* Made the scoreboard-packet-threshold a bit higher due to improvements
2020-08-28 10:47:52 -05:00
rtm516
7cbfdcf521
Fix reflections relocation (#1199) 2020-08-28 10:29:48 -05:00
abeshi-softwire
5458a85ed7
Adding option to use different config file for standalone (#1102)
* Added config option to standalone Geyser

* Cleanup

* Added --gui, --nogui options

* Made new options read default config.yml from correct place internally

* Changed to locale strings rather than hardcoded English

* Using separate options texts

* Changed '-c' to be string parameter so it isn't translated
2020-08-25 17:39:51 -04:00
James Cahill
81f58ee9bf
Add Server Name config option (#1170)
* Add bedrock.server-name config option

* Fix spelling mistake oops!

* Remove trailing whitespace
2020-08-25 09:29:55 -04:00
Camotoy
713085adf2
Fix NPE if block data string isn't in mappings (#1172)
This happens when the server version is below the current version and the block state changed. A better solution would be to use ViaVersion to translate the block state strings but this would require getting the server version and figuring out mappings from there.
2020-08-21 12:02:09 -05:00
DoctorMacc
ec87344a77
Initial skin support 2020-08-19 23:13:05 -04:00
Camotoy
d6290ccb66
Auto-configure more if setting is enabled (#1168)
* Auto-configure more if setting is enabled

- Geyser dumps now show if the config was automatic
- Floodgate is now automatically detected if the address is also automatically found
- If the plugin versions' servers have the listening address set to something different, set our remote address to that

* Fix Sponge config

* Remove redundant Getter
2020-08-19 13:14:17 -04:00
James Cahill
e7363b4e9f
Add 'passthrough-protocol-name' config option (#1124)
* Initial version (tested)

* Don't bump config version

* Misc changes

* Add punctuation to config
2020-08-17 22:36:15 -05:00
Camotoy
8c514d9feb
Fix Xbox authentication and add support for proxies (#1162)
Waterdog and ProxyPass will work when `enable-proxy-connections` is set to true at the expense of security.
2020-08-17 12:04:09 -04:00
R-Josef
0e91475c62
Follows specified address/port in remote config for plugin versions: fix #1110 (#1145)
* fix #1110

* updating comments in config.yml

* Fix indentation

* Centralize localhost retrieval; remove unnecessary Docker check

* Add config.yml

Co-authored-by: DoctorMacc <toy.fighter1@gmail.com>
2020-08-16 12:45:52 -05:00
rtm516
4af17df46f
Add support for sensitive data in dumps (#1149)
* Add sensitive dumps

* Add better arg handling and offline dumps

* Add sensitive parameters for plugin IPs

* Add sensitive property to the Bedrock remote address

Co-authored-by: Camotoy <20743703+DoctorMacc@users.noreply.github.com>
2020-08-15 16:06:50 -04:00
rtm516
41d299fae5
Change version number to 1.1.0 2020-08-11 19:10:48 +01:00
DoctorMacc
31fec1d4bf
Update to 1.16.2 2020-08-11 12:35:45 -04:00
DoctorMacc
2dc71382e7
Merge branch 'master' of https://github.com/GeyserMC/Geyser into feature/1.16.2 2020-08-11 09:07:23 -04:00
rtm516
0a5048232f
Add support for client side settings (#1035)
* Port code from #486

Co-authored-by: Luke <32024335+lukeeey@users.noreply.github.com>

* Fix and clean code and add default gamemode changing

* Clean copyright

* Remove direct modification of server, clean up code and add player list xuid fetching.

* Move to custom settings menu

* Move sendAdventureSettings to GeyserSession

* Add javadoc comments

* Add translation support

* Remove updated copyright

* Clean up

* Clarify some javadoc comments

* Remove obsolete code

* Update languages submodule

* Fix javadoc comments

* Fix compile

Co-authored-by: Luke <32024335+lukeeey@users.noreply.github.com>
Co-authored-by: Redned <redned235@gmail.com>
2020-08-08 17:41:12 -05:00
bundabrg
0ca1096f45
Fix Skin Caching and Fix Skin Restorer (#680)
* Fix Skin Caching

Changes:
* Instead of caching a skin based upon the player we cached it based upon the textureURL. This means multiple players with the same skin will benefit from the cache and more importantly will mean a player changing their skin will not get a false cache hit.
* This should fix all issues with SkinRestorer and will now correctly show the skin both to the player themselves and to other players

Closes #518

* Remove duplicated code

* Minimize playerlist updates

Changes:
* All async skin stuff will now just update skins and not be involved with sending the session to the player. This eliminates issues where the player list changes whilst an async task is occuring plus it means no invisible players while retrieving skin.
* Fix bug when retrieving cached skin

* When sending PlayerList packets ensure the skins have appropriate skinIds so the Bedrock client will cache hit/miss as needed

* Make sure to add and remove player when setting skin if they do not belong on the playerlist

* Make use of AuthData UUID when removing the player

* Revert removal of checking if entity is valid when initialized

This section is supposed to send all spawned entities in the java world to a player only after they've initialized. By removing this check it would also be sending entities that exist but are not spawned.

* Optimizations

Changes:
* Check for duplicate requests based on textureURL instead of player ID
* Don't use the PlayerSkinPacket. It duplicates the data sent in the PlayerListPacket and without it the players still get skin updates.

* Support caching of skins to disk based on configuration variable

If a skin is downloaded it will be saved to `cache/skins` using a base64 encoded filename of the textureUrl, if allowed by setting a non 0 value for the configuration variable `cache-skins`

When reading a skin we try load it from a cache file first before trying to download it.

We don't yet expire them but do update their last modification so we know which ones have been accessed.

* Update `config.yml` with cache-skins directive, defaulting to disabled

* Merge Fixes

* Cache all images instead of just skins

Changes:
* Move the image caching from skins to where images may get downloaded so this also covers capes and anything else that uses the same method of image retrieval
* Updated config value from `cache-skins` to `cache-images`
* Updated cache location from `cache/skins` to `cache/images`
* Images are stored in png format with a uuid. This may make debugging easier as they can be directly opened.

* Implement cached image expiry

If `cache-images` is set to a value greater than 0 then a scheduled task will occur once a day that will remove images with a modification date older than the value in days.

* Force skin changes as trusted

* Resolve PR queries

* Fix signed int causing issues calculating expiry time for images

* Reset Defaults to 0 and implement Google Timed Eviction cache for Images

* Add memory cache for Capes

Co-authored-by: Brendan Grieve <brendan.grieve@zepli.com.au>
Co-authored-by: bundabrg <bundabrg@grieve.com.au>
2020-08-07 12:33:21 -04:00
DoctorMacc
e8df81167b
Merge latest master 2020-08-05 11:20:25 -04:00
Camotoy
7fc14d8956
Add customizable MTU support (#1068)
* Add customizable MTU support

Fixes clients being unable to connect in rare instances.

* Make config.yml nicer
2020-07-31 19:47:23 -04:00