Commit Graph

210 Commits

Author SHA1 Message Date
RednedEpic da1674c8d6 Update to Cloudburst NBT 2.0 2020-07-05 15:59:44 -05:00
rtm516 f5da962f6f Fix disconnect message formatting 2020-06-28 23:38:27 +01:00
AJ Ferguson e3e8bb2799 Fix first item of creative inventory not showing 2020-06-27 20:47:10 -08:00
Tim203 8f763dfc5f
Move common stuff used only by connector and bootstrap to connector 2020-06-28 00:27:00 +02:00
DoctorMacc 75f470cb33 Fix creative items 2020-06-27 11:35:02 -04:00
DoctorMacc ea1a9e5427 Bedrock 1.16 updating part 1 2020-06-22 20:11:09 -04:00
DoctorMacc 117cdf282d Begin updating Geyser. Requires manual MCProtocolLib compile 2020-06-20 22:24:45 -04:00
DoctorMacc d6119375b2 (Incomplete) Update MCProtocolLib 2020-06-18 21:44:50 -04: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
rtm516 a6f91d5e15
Fix maps not loading in sometimes (#758)
* Fix maps not loading in sometimes
Adds a default map ID so the map item isnt invisible on bedrock.
Respond to the MapInfoRequestPacket so the image loads on first join.

* Remove debug log

* Add comments
2020-06-15 14:24:52 -04:00
Heath123 6e127edfd6
Stop using TrigMath class (#753)
* Stop using TrigMath class

* Use MathUtils
2020-06-09 14:50:21 +02:00
Heath123 1da130ab07
Fix initial movement speed (#751)
Bedrock clients move very fast by default until they get an attribute packet correcting the speed.
2020-06-08 08:13:25 -04:00
DoctorMacc afb12e923b Show villager display name 2020-06-06 00:04:05 -04:00
DoctorMacc 4c5d80e2e9 Update to latest master 2020-06-05 22:52:11 -04:00
AJ Ferguson 3d357af739
Inventory Fixes (#602)
* Fix edge case when shift clicking an output slot

* Don't send window close packet if window is already closed

* Limit amount of window close packets sent to the client

Fixes hidden inventory bar bug

* Restrict user from unusable chest inventory slots

* Fix crafting table slot mappings

* Always send cursor update
2020-06-02 08:48:26 -08:00
Camotoy b8a3009c9d
Ignore all downstream packet errors (#693)
* Ignore all downstream packet errors

Instead of kicking the client off because of an error, we simply display a logger warning and suppress the error.

* If debug mode, print stacktrace
2020-05-30 17:31:20 -05:00
RednedEpic 6b68bbb413 Large refactoring to item translator and registry/util classes
- Merged ItemTranslator and ItemStackTranslator together.
- Split ItemTranslator into two classes: ItemTranslator and ItemRegistry. The registry is where items are registered, and the translator class is where item translation takes place.
- Made most of ItemTranslator's methods static and removed the initialization in Toolbox.
- Moved a handful of registry classes previously ending with 'Utils' to a 'Registry' class to be more fitting for the term.
- Moved inventory and block entity registration out of Translators.
- Renamed Translators to PacketTranslatorRegistry.
- Yeeted Toolbox.
- Minor cleanups and small refactors.
2020-05-24 20:07:05 -05:00
Camotoy 59da87a10f
Merge entity mounts branch to master (#589)
* Initial support for entity mounts*

* This only works for viewing other players on mounts/vehicles. Currently, mounting on vehicles through Geyser with bedrock does not work at all, though, you can see other Java players on mounts just fine.

* Fix Bedrock player mounting; add minecart offset

* Remove debug code

* Fix boat animation

* Remove debug code

* Add notice of possible steering flip

* Add translator for PlayerInputPacket

* Upload WIP code for BoatEntity.java

* Add animation for rowing on Bedrock side

* Clean up debug code, start on boat movement

* Add notice about flying horses

* Rename BedrockPlayerInputPacket.java to BedrockPlayerInputTranslator.java

* Delete BedrockPlayerInputPacket.java

* Use Translator Annotation again; Thanks to LegacyGamerHD

* Upload ineffective mount-on-login code

* Upload current changes with no debug code

* Change case where applicable

* Change Integer[] to int[]; Change schedule() to execute()

* Don't use Thread.Sleep() and instead call itself again

* Fix players not being linked on login/chunk load

* Little changes

* Minor improvements/fixes to boats

* Remove empty file

* Fix horse flying.

* Various entity mounting fixes

* Add mounting offsets for skeleton and zombie horses

* Another round of entity mount-related fixes

- Add offsets for skeleton and zombie horses (Thanks to tester DirtNasty)
- Boats can now be placed in survival (Thanks again to tester DirtNasty)
- Boats and minecarts can now shake

* Add translating for ServerVehicleMovePacket

* Cleaning up

* More cleaning up

* Add interactive tag support for mountable entities

* Boats move far more nicely

* Add horse heart visuals

* Update interactive tags

Co-authored-by: RednedEpic <redned235@gmail.com>
2020-05-23 16:39:17 -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
AJ Ferguson 2366559694 Store villager data in the player and fix wandering trader 2020-05-19 09:41:44 -08:00
AJ Ferguson e2d46c3d49 Work on villager trading 2020-05-18 21:15:29 -08:00
RednedEpic 30e38b3a2f Add basic villager trading support (incomplete)
This commit implements basic functionality for villager trading. This is still incomplete and is buggy in areas such as with villager trades that have more than one input and trade inputs and outputs containing NBT.

Co-authored-by: DoctorMacc <toy.fighter1@gmail.com>
2020-05-16 23:52:39 -05:00
rtm516 0c60af66b2
Fixed customised skins causing strange display (#534)
* Fixed customised skins causing strange display

* Cleaned up floodgate player checking

* Fixed cape scale

Co-authored-by: James Harrison <james@fasttortoise.co.uk>
2020-05-11 23:45:16 -05:00
rtm516 5ae95433e5
Bedrock to Bedrock legacy skin support (#276)
* Added legacy skin support for bedrock to bedrock clients

* Added bedrock to bedrock cape handling

* Added bedrock geometry support

* Bedrock skins now work in all auth modes

* Tonne of debug info

* Added fix to prevent customised skins from being loaded

* Added skin size to bedrock client data

* Cleaned debugging code

* Made bedrock cape take priority over third party

* Cut the customised skin image in half to hopefully get it to map

* Removed hacky conversion attempt

* Fixed bedrock skin caching on load and 1.14.60 support

* Cleaned up debug messages

* Added linked player ignore
2020-05-06 16:50:01 -05:00
Camotoy 48147c2ce3
Fix Floodgate players causing errors on Bukkit. (#490)
Co-authored-by: Tim203 <mctim203@gmail.com>
2020-05-05 12:53:25 -05:00
Luke 7195d20fae
Implement helper methods for sending packets (#487)
* Implement helper methods for sending packets, fixes an NPE when chatting before connecting to the remote server

* Change method names

* Add a space between doc comment lines

* Add debug messages
2020-05-05 10:51:43 -05:00
ForceUpdate1 d0a2f6ac27
Fix movement issues #466 (#473) 2020-05-04 01:06:08 -05:00
RednedEpic 3370ad3db9 Merge branch 'master' into feature/sounds 2020-05-02 23:06:53 -05:00
Camotoy 9846058377
Add item frames (#415)
* Initial attempt

* Item frames 'work'

* Blocks in the item frames work

* Remove commented code

* Small changes

* More progress

* Whittling down

* Fix swords, etc

* NBT data implemented

* Remove unused import

* Add item frame item removing; add checks for removing item frames

* Add requested changes; clean up logic

* Add license

* Always delay item frame updates by 500 milliseconds

* Switch to per-session item frame cache

* Revert item translator refactoring
2020-05-02 15:44:05 -05:00
RednedEpic ad596cdccb Add sound handlers for block interaction
These sound handlers had to be added since on Minecraft: Java Edition, these sounds are handled clientside whilst Minecraft: Bedrock Edition expects something from the server. To counter this, we emulate the sounds of that on Minecraft: Java Edition within Geyser and send it to the client. The code may seem a tadredundant, but there is not much of an alternative unfortunately.
2020-04-30 00:21:02 -05:00
RednedEpic 1fbb755d26 Merge branch 'master' into sound-master 2020-04-29 15:14:25 -05:00
RednedEpic 31be608038 Add block break sounds for blocks with 0 hardness, and refactor some things
The refactors in this commit go a bit beyond the scope of what the sound/effects branch was meant to accomplish, however most of these changes are necessary so chunk caching could be reintroduced for the standalone version. The chunk caching here allows for us to get the block ID before the block was broken, and in the future allow us to implement newer features. Chunk caching is optional (and disabled by default) as on non-Bukkit versions, it can eat up a lot of RAM with many players online.
2020-04-29 15:01:53 -05:00
rtm516 bea070395f
Handle player teleports properly (#389)
* Handle player teleports properly

Co-authored-by: ForceUpdate1 <mneuhaus44@gmail.com>

* impl teleport cache

* impl teleport cache

* removed debugs

* Cleanup

Co-authored-by: ForceUpdate1 <mneuhaus44@gmail.com>
2020-04-29 11:06:25 -05:00
RednedEpic c22eb170ec Merge branch 'master' into feature/sounds 2020-04-26 00:26:14 -05:00
RednedEpic 08b7857292 Remove unused imports in GeyserSession 2020-04-26 00:24:06 -05:00
rtm516 257918904b
Fixed spawn egg colours not loading in (#429) 2020-04-25 23:55:06 -05:00
RednedEpic 497825dd96 Fix NPE in console when a sound was missing and clean up nesting 2020-04-25 18:23:01 -05:00
RednedEpic 8b487df698 Properly remove players from Geyser playerlist (Fixes #421 2020-04-25 17:53:35 -05:00
RednedEpic 79185fabb5 Only send block sounds when a block is being placed
Previously, any time a block was clicked whether it be with a block in the hand or not, a sound would play. This checks if the item in the players hand is indeed a block as well as the same block in the UpdateBlockPacket, and properly plays the packet.
2020-04-23 01:01:33 -05:00
DoctorMacc b0a8b9219a Add effects support and block break particles/place sounds
Co-authored-by: RednedEpic <redned235@gmail.com>
2020-04-22 23:40:49 -05:00
RednedEpic 4b001593fc Merge branch 'master' into inventory 2020-04-17 18:37:22 -05:00
rtm516 dc59be3901
Fix blank login causing error 2020-04-17 14:34:44 +01:00
RednedEpic 1cb2e658e0 Merge branch 'master' into inventory 2020-04-14 23:40:50 -05:00
RednedEpic b15d37a4c5 Print throwable for disconnection if present 2020-04-14 23:27:16 -05:00
RednedEpic 605c9ef4db Merge branch 'master' into inventory 2020-04-11 22:46:25 -05:00
AJ Ferguson f04a267d98 Only show login form if AuthType is Online 2020-04-11 10:53:27 -08:00
AJ Ferguson 95bcc04177 Fix crash on some devices when logging into a different dimension 2020-04-11 10:33:06 -08:00
rtm516 78fdab2090 Removed left in debug line 2020-04-09 17:34:49 +01:00
rtm516 81c1533ee2 en_us user now gets a chat message if the locale isnt already loaded 2020-04-09 17:21:51 +01:00
rtm516 013bca024c Removed auto download and load of en_us 2020-04-09 17:06:17 +01:00
rtm516 c51a48221b Merge remote-tracking branch 'origin/master' into server-language-processing 2020-04-09 13:58:45 +01:00
rtm516 c61d87714b On demand downloading and loading of language files 2020-04-09 00:20:41 +01:00
rtm516 55b2fd0259 Kick the user on incorrect login info 2020-04-05 10:42:02 +01:00
RednedEpic 392b0b5727 Merge branch 'master' into inventory 2020-04-04 03:12:23 -05:00
Redned ddf2f471ea
Merge branch 'master' into chunk-fix 2020-04-04 02:00:18 -05:00
RednedEpic 5222232e72 Add rest of fixes for operator bug 2020-03-26 23:00:52 -05:00
William Johnstone a0884596e3 Fix issue with players being able to update their own gamemode 2020-03-21 22:59:16 +00:00
RednedEpic 1bcee8d36f Merge branch 'master' into inventory 2020-03-15 13:21:37 -05:00
RednedEpic e203cfd4a7 Move back to XUID for Floodgate
The normal identity UUID caused problems and caused the bedrock client to crash when using Floodgate. This was likely because on bedrock edition, it's a version 3 UUID opposed to java edition which uses version 4.
2020-03-14 14:03:44 -05:00
RednedEpic 6eac178305 Merge branch 'master' into inventory 2020-03-10 18:46:27 -05:00
Tim203 37d377b483
Floodgate now uses identity instead of xuid 2020-03-09 21:32:19 +01:00
RednedEpic b2d611e24c Fix some problems brought from merge conflicts 2020-03-05 20:53:58 -06:00
RednedEpic 418026dbe6 Merge branch 'block-entities' into inventory 2020-03-05 20:00:14 -06:00
AJ Ferguson eaf45ff6f7 Fix chunk view position bugs on some servers 2020-03-05 16:26:36 -09:00
RednedEpic 6b22bcec2b Merge branch 'master' into inventory 2020-03-04 21:35:20 -06:00
RednedEpic 1670c77672 Only allow console to shut down Geyser with a command 2020-03-04 20:44:42 -06:00
RednedEpic 2bdf3d4d7f Merge branch 'master' into plugin 2020-02-26 19:31:19 -06:00
AJ Ferguson bc3992f775 Merge remote-tracking branch 'remotes/upstream/master' into inventory
# Conflicts:
#	connector/src/main/java/org/geysermc/connector/network/translators/TranslatorsInit.java
#	connector/src/main/java/org/geysermc/connector/network/translators/inventory/updater/ChestInventoryUpdater.java
2020-02-25 22:12:39 -09:00
RednedEpic f5bc328737 Merge branch 'master' into feature/new-protocol-lib 2020-02-25 18:54:31 -06:00
RednedEpic 41a24ca6ab Merge branch 'master' into plugin 2020-02-16 13:25:37 -06:00
RednedEpic 9ffec0021c Fix movement bugs *and* allow for teleportation 2020-02-16 12:40:54 -06:00
RednedEpic 4bb34cdcce Merge branch 'master' into feature/new-protocol-lib 2020-02-14 17:57:28 -06:00
RednedEpic 4186715083 Update to NukkitX Protocol Lib 2.5.0 release 2020-02-14 17:39:26 -06:00
AJ Ferguson b1a0ed3e91 Merge remote-tracking branch 'remotes/upstream/master' into inventory
# Conflicts:
#	connector/src/main/java/org/geysermc/connector/network/translators/TranslatorsInit.java
#	connector/src/main/java/org/geysermc/connector/utils/Toolbox.java
2020-02-12 21:58:09 -09:00
AJ Ferguson 7f194b2d54 Increase render distance instead of chunkpublisher radius 2020-02-11 13:42:02 -09:00
AJ Ferguson 9008036ee4 Merge remote-tracking branch 'remotes/upstream/master' into chunk-fix
# Conflicts:
#	connector/src/main/java/org/geysermc/connector/network/translators/block/BlockTranslator.java
#	connector/src/main/java/org/geysermc/connector/network/translators/java/world/JavaChunkDataTranslator.java
#	connector/src/main/java/org/geysermc/connector/utils/ChunkUtils.java
#	connector/src/main/java/org/geysermc/connector/utils/Toolbox.java
2020-02-10 17:38:56 -09:00
SupremeMortal f9cd88eaa2
Merge branch 'master' of https://github.com/GeyserMC/Geyser into feature/direct-block-mapping
 Conflicts:
	connector/src/main/java/org/geysermc/connector/utils/Toolbox.java
2020-02-09 22:53:57 +00:00
AJ Ferguson e4ab4b336c Chunk fixes 2020-02-05 19:32:33 -09:00
AJ Ferguson 13f198845c Fix bugs when rapidly switching dimensions 2020-02-05 19:21:09 -09:00
OnlyBMan 0bb18d26b0 Load biome definitions only once instead of everytime a new player joins 2020-02-05 22:02:23 -05:00
OnlyBMan 4dff067faa Add biomes 2020-02-05 21:10:34 -05:00
RednedEpic 0cf574ddcb Merge branch 'master' into feature/direct-block-mapping 2020-02-05 18:59:20 -06:00
RednedEpic 4f461bf374 Start on converting to the new NukkitX protocol library updates 2020-02-05 18:55:34 -06:00
AJ Ferguson 5e5aeed578 Merge remote-tracking branch 'remotes/upstream/master' into inventory 2020-01-30 12:08:39 -09:00
RednedEpic 240f41ff03 Use Path instead of File for floodgate key file in config
...and fix related issues with the file not being found.
2020-01-26 11:22:21 -06:00
RednedEpic cc3cf70257 Search for key in Geyser plugin folder in plugin versions 2020-01-25 22:59:00 -06:00
RednedEpic 6bb478bda4 Merge branch 'master' into block-entities 2020-01-19 22:35:33 -06:00
RednedEpic 52b23950ea Merge branch 'master' into plugin (should fix building) 2020-01-18 16:46:07 -06:00
RednedEpic dc594ee22c Update license headers
Certain headers for classes that are to be removed (e.g. plugin api) were not updated to prevent merge conflicts.
2020-01-08 21:05:42 -06:00
AJ Ferguson 66f5ed9495 Merge remote-tracking branch 'remotes/upstream/master' into inventory
# Conflicts:
#	connector/src/main/java/org/geysermc/connector/network/session/GeyserSession.java
#	connector/src/main/java/org/geysermc/connector/network/translators/TranslatorsInit.java
#	connector/src/main/java/org/geysermc/connector/network/translators/java/JavaRespawnTranslator.java
2020-01-04 14:39:01 -09:00
RednedEpic 2fc591e341 Merge Floodgate changes 2020-01-03 23:58:58 -06:00
RednedEpic 0c24ffc629 Merge branch 'master' into plugin 2020-01-03 23:25:00 -06:00
SupremeMortal 94851ef4b8
Move all block related code into BlockTranslator
It makes more sense.
2019-12-31 00:14:38 +00:00
AJ Ferguson 782feed641 Fix lighting when reloading world 2019-12-28 18:17:00 -09:00
AJ Ferguson b2f86ec20b Rewrite dimension code
New code does not rely on pausing the thread
2019-12-28 04:35:21 -09:00
AJ Ferguson cc0b3293bf Start fixing dimension switching and respawning 2019-12-27 02:29:46 -09:00
AJ Ferguson 8061e2d76d Merge remote-tracking branch 'remotes/upstream/master' into inventory
# Conflicts:
#	connector/src/main/java/org/geysermc/connector/network/translators/java/world/JavaBlockChangeTranslator.java
#	connector/src/main/java/org/geysermc/connector/utils/Toolbox.java
2019-12-23 16:58:59 -09:00
RednedEpic e1ba1fa3e8 Merge remote-tracking branch 'origin/master' into block-entities 2019-12-23 13:49:20 -06:00
RednedEpic e38322a3ec Nuke plugin API
https://media.giphy.com/media/oe33xf3B50fsc/giphy.gif
2019-12-21 11:35:48 -06:00
AJ Ferguson d06f963b67 Block states and fix waterlogged blocks 2019-12-20 20:05:20 -09:00