Commit Graph

109 Commits

Author SHA1 Message Date
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
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
rtm516 b7f0780a56
Fix duplicate info and add more info to dumps (#1058)
* Fix duplicate info and add more info to dumps

* Add gui to standalone dump info
2020-07-30 11:59:42 -04:00
DoctorMacc bf07f1a9ba
Update to 1.16.2-pre1 2020-07-29 21:05:18 -04:00
Phillipp W af484a425b
SRV resolving / Small Handshake rework (#968)
Handshake now uses the server address directly from the config and no longer the IP from a domain (Some servers use the address that is given during the handshake)
2020-07-25 13:42:43 -04:00
rtm516 0a14e3c441
Add an extra headless check to fix occational errors (#945)
* Add an extra headless check

* Update GeyserStandaloneBootstrap.java

* Rename checkHeadless to isHeadless
2020-07-14 00:20:56 +01:00
RednedEpic 24f9651cc6 Convert map of players to list (may address #833) 2020-07-06 20:11:34 -05:00
Camotoy afcf1e3acd
Change versioning to match supported Bedrock version; add versioning command (#730)
* Change versioning to match supported Bedrock version

Line up Geyser's versioning to match with the highest/currently supported Bedrock version for future tracking of older Geyser versions.

* Add version command

* Fix DEV check for version command

* Remove SNAPSHOT

* Update languages submodule

Co-authored-by: rtm516 <ryantmilner@hotmail.co.uk>
2020-07-05 21:38:24 -04:00
rtm516 6cdf1eaf43 Fix player table throwing errors on interaction 2020-07-06 00:46:51 +01:00
rtm516 cfaf4051b7
Add Translation support (#504)
Adds full multi-language support to any Bedrock-supported language.

Co-authored-by: DoctorMacc <toy.fighter1@gmail.com>
2020-07-05 19:35:51 -04:00
rtm516 5958b5d0ba Fix ram graph causing memory leak and add cleanup of options menu on reload 2020-07-05 21:07:49 +01:00
RednedEpic 8ac5d6e13d Fix memory leak in legacy ping passthrough (Fixes #674, #813) 2020-07-04 16:35:48 -05:00
dependabot[bot] 0daa4451ec Bump log4j-core from 2.13.1 to 2.13.2 in /bootstrap/standalone (#886)
Bumps log4j-core from 2.13.1 to 2.13.2.

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-07-02 20:22:11 -04:00
rtm516 61072948b9 Add GUI to standalone 2020-07-02 20:10:43 -04:00
Tim203 8f763dfc5f
Move common stuff used only by connector and bootstrap to connector 2020-06-28 00:27:00 +02:00
rtm516 7743f6d718
Add dump command (#808)
* Add dump command
Adds a command to collect and dump infomation about the Geyser install and bootstrap and submit it to a dumps site.

* Finalize URL; misc. fixes; add 'architecture' param

Co-authored-by: DoctorMacc <toy.fighter1@gmail.com>
2020-06-27 11:36:48 -04:00
DoctorMacc 1490d6d062 Update ViaVersion dependency 2020-06-24 17:39:25 -04:00
endevrr ca7484a5cf
Relocate Reflections Dependency (#802) 2020-06-23 19:51:59 -04:00
DoctorMacc 56f9330a2d Remove ServerSpawnWeatherEntityPacket 2020-06-21 19:22:59 -04:00
DoctorMacc 63244ade53 Rename Geyser-Bukkit to Geyser-Spigot 2020-06-21 16:27:42 -04:00
DoctorMacc 427f4ef83d Merge master into Spigot rename 2020-06-21 16:21:47 -04:00
DoctorMacc 77873b6fbb Update ViaVersion integration 2020-06-20 20:35:40 -04:00
DoctorMacc 1015b830ce Merge branch 'master' of https://github.com/GeyserMC/Geyser into mcprotocollibupdate 2020-06-20 17:50:00 -04:00
bundabrg e66f57f9f0
Provide a platform independent method of retrieving the datafolder (#769)
* Provide a platform independent method of retrieving the datafolder

* LocaleUtils now uses datafolder

* Make use of Path instead of File

Changes:
* Rename getDataFolder() to getConfigFile() and update to return a Path in each bootstrap

* Rename filePath to tmpFilePath

* Update Velocity configFile to configFile Path
2020-06-20 12:54:40 -05:00
DoctorMacc 5327610c35 Don't forget about Bukkit 2020-06-19 13:42:55 -04:00
Camotoy 6388a91587
Reset color instead of turning color to white for standalone (#759)
Allows non-black-back terminals to see the Geyser log.
2020-06-16 19:05:39 -05:00
Camotoy 9369b20209
Add 1.9+ PvP 'Cooldown' (#768)
* Add 1.9+ PvP 'Cooldown'

This commit adds a subtitle that acts as the Java cooldown. This is an optional feature disabled in the config with `show-cooldown`. This does not appear on plugins that use OldCombatMechanics.

* No need to bump up the config version; I was just tested with OldCombatMechanics

* Use simpler casting

* Use session variable of lastHitTime for theoretically better performance

* Reuse attribute value calculation from AttributeUtils

* Remove unused imports

* Revert config version update in config.yml
2020-06-16 19:03:28 -05:00
DoctorMacc cc3b4c3eda Merge latest master; copy over old Geyser-Bukkit configs 2020-06-11 16:39:29 -04:00
Camotoy 34b367bfc3
Configuration updates (#653)
* Configuration updates

The main feature of this commit is switching Bukkit and BungeeCord to using Jackson configuration. This allows comments to load. Along with this, the Jackson configs have been consolidated into one abstract class, and a check is made to ensure auth-type cannot be set to Floodgate if Floodgate is not installed.

* Add deleted file; remove imports

* Re-add changing of Bukkit port

* Alphabetize import

* Alphabetize Bungee import

* Updates

* Swap values in GeyserJacksonConfiguration

* Add a null check for GeyserConnector in Bukkit's onDisable
2020-06-10 17:58:29 -05:00
Camotoy 891490a443
Relocate Jackson dependency (#678) 2020-06-08 20:23:15 -05:00
DoctorMacc af669f2e88 Rename internal ping passthrough variable 2020-05-26 10:11:28 -04:00
DoctorMacc 2dc755ca98 Rename Geyser-Bukkit to Geyser-Spigot
Despite the Bukkit suffix being correct in terms of the API, the name causes some people to download CraftBukkit instead of Spigot or Paper. All internal references to Bukkit have been renamed to Spigot.
2020-05-26 10:05:25 -04:00
RednedEpic a49f6fe0e3 Specify API version for Bukkit to stop legacy material loading (Closes #595) 2020-05-23 18:58:36 -05:00
Camotoy 99f69b3a7d
Rewrite Ping Passthrough (#468)
* Fix ping passthrough on BungeeCord

* Initial implementation of direct ping passthrough

* Finished implementation of direct ping passthrough

* Remove test for something else entirely

* Fix standalone

* Add config option for ping passthrough interval

* Use GeyserPingInfo to reduce methods

* Add querying; modify ping passthrough

* Add separate config options for passthrough MOTD and player counts

* Convert all plugin bootstraps to use internal ping events to that other plugins can handle ping modifications

* Small changes

* Fix invalid packet spawm

* Add legacy ping passthrough option

* Fix BungeeCord

* Proper UUID for BungeeCord, thanks @theminecoder

* Update config version and messages

* Merge master... again

* Add missing javadocs and minor changes

Co-authored-by: James Harrison <james@fasttortoise.co.uk>
Co-authored-by: theminecoder <theminecoder.dev@gmail.com>
Co-authored-by: Redned <redned235@gmail.com>
2020-05-23 16:50:04 -05:00
rtm516 fc6532732d
Adds skin ears from MinecraftCapes.co.uk + Clientside linked account skins + Elytra textures (#539)
* Added ears geometry support

* Added ear fetching from mc capes

* Added support for deadmau5

* Commented, documented and cleaned code

* Allow bedrock players to see their java skin/cape/ears when joining

* Optimised Imports

* Fix missing else statement

* Moved ears and fixed elytra skins

* Added ears config option

* Fixed cape/elytra transparency

* Fixed slim skin geometry

* Fixed async ears request and added alex skin

* Fixed default elytra not showing with no cape

* Moved to normal Base64 functions

Co-authored-by: James Harrison <james@fasttortoise.co.uk>
2020-05-23 16:06:34 -05:00