Commit Graph

542 Commits

Author SHA1 Message Date
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
circuit10 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
rtm516 b10e5d5af3
Clean copyright message and update all files (#1053) 2020-07-30 15:10:15 -05:00
toinouH 427cb69a14
clone-remote-port option Updated (#1061)
* Added clone remote port option for bukkit, bungee and velocity

* Added clone remote port option for sponge

* Changed clone-remote-port description in config.yml

* Update config.yml

Updated config.yml to include a better description of the clone-remote-port option

* Updated GeyserSpongePlugin

An incorrect port was being edited before (remote instead of bedrock)

* Update config.yml

Co-authored-by: TeaNoDonuts <blackalegator@gmail.com>
2020-07-30 15:09:40 -05:00