Commit graph

1645 commits

Author SHA1 Message Date
rtm516
498f7653d3
Fix NPE when link entity not found and use non-deprecated constructor (#1706)
* Fix NPE when link entity not found and use non-deprecated constructor

* Extract method call to variable

* Update PlayerEntity.java

* Fix indentation
2021-01-28 11:33:26 -05:00
rtm516
462e9b8b0d
Fix beehive direction being flipped (#1880)
* Fix beehive direction being flipped

* Update submodule
2021-01-28 11:08:20 -05:00
YHDiamond
aec08e7d3c
Add images to statistics menu (#1719)
Co-authored-by: YHDiamond <47502993+yehudahrrs@users.noreply.github.com>
2021-01-28 00:23:27 +00:00
Camotoy
1676242c4f
Add precaution if lectern container is not open 2021-01-22 13:36:27 -05:00
Camotoy
3dc5890649
Merge branch 'master' of https://github.com/GeyserMC/Geyser into server-inventory 2021-01-22 13:36:06 -05:00
Camotoy
5a8604fe54
Skin fixes and optimizations (#1856)
- Fix self-assigned player skins getting overwritten
- Fix players with no skin silently throwing an exception, and properly handle it instead
- CRITICAL bug fix of handling Deadmau5's skin - it's not handled by his UUID but by his username
2021-01-21 19:03:46 -05:00
Camotoy
b93ce33b38
Localize Done in the OAuth prompt (#1851)
Oops.
2021-01-21 22:54:18 +00:00
Camotoy
787e6fe5f7
Fix enchantments when there are less than three options 2021-01-20 18:46:04 -05:00
AJ Ferguson
5d4b368e51 Fix inventory bug when respawning 2021-01-20 11:09:28 -09:00
Camotoy
ca620d6dd8
Add some comments and fix book editing in creative 2021-01-19 19:01:51 -05:00
Camotoy
2304c1375e
[ci skip] Clarify strip NBT comment 2021-01-19 18:22:07 -05:00
Camotoy
75ae28f460
Merge branch 'server-inventory' of https://github.com/GeyserMC/Geyser into server-inventory 2021-01-17 11:12:47 -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
RednedEpic
da512da511 Include 1.16.5 in version command too 2021-01-15 21:59:41 -06:00
AJ Ferguson
234c6542bb Refactor creative request translator and fix bugs 2021-01-14 19:45:59 -09:00
AJ Ferguson
95703d2ea7 Update inventory if request was rejected 2021-01-13 19:59:11 -09:00
AJ Ferguson
4ee3143fe9 Add delay to legacy recipe detection
Workaround for an issue which will be properly fixed later.
2021-01-13 19:40:01 -09:00
AJ Ferguson
5ddb189b48 Use server-inventory mappings 2021-01-13 19:19:37 -09:00
AJ Ferguson
196c9f5c17 Remove debug lines 2021-01-13 19:19:01 -09:00
AJ Ferguson
e87ae8f0dd Merge remote-tracking branch 'remotes/upstream/master' into server-inventory-upstream
# Conflicts:
#	connector/src/main/java/org/geysermc/connector/network/session/GeyserSession.java
2021-01-13 18:49:20 -09:00
Camotoy
feae0573de
Merge branch 'server-inventory' of https://github.com/Camotoy/Geyser into server-inventory 2021-01-13 21:34:57 -05:00
Camotoy
454fd102d6
Add better destroy support 2021-01-13 21:34:47 -05:00
Camotoy
6fdfcfb35c
Clarify that we do support 1.16.201 (#1836) 2021-01-13 14:28:39 -05:00
AJ Ferguson
d3cb069594 WIP. Autocrafting without java recipe book 2021-01-12 16:37:12 -09:00
Extollite
c0a64659c2
Close en_us.hash stream (#1833) 2021-01-12 15:41:15 -05:00
Extollite
dd0b4bafe8
Close locale streams (#1832)
* Close locale streams

* Fix formatting
2021-01-12 15:06:48 -05:00
Camotoy
af405f320a
Prevent CME when adding players' emotes (#1831) 2021-01-12 14:42:53 -05:00
YHDiamond
fb283fcce8
Add advancements GUI (#1579)
Using /geyser advancements, Bedrock clients can get a visual on their progress.

Co-authored-by: yehudahrrs <47502993+yehudahrrs@users.noreply.github.com>
Co-authored-by: Olivia <chew@chew.pw>
Co-authored-by: rtm516 <rtm516@users.noreply.github.com>
Co-authored-by: DoctorMacc <toy.fighter1@gmail.com>
Co-authored-by: rtm516 <ryantmilner@hotmail.co.uk>
Co-authored-by: Camotoy <20743703+Camotoy@users.noreply.github.com>
2021-01-11 21:23:09 -05:00
Camotoy
6a9d4cd071
Implement 1.16.100 anvil renaming support 2021-01-11 20:06:55 -05:00
Camotoy
4db9ec92bf
Merge branch 'master' of https://github.com/GeyserMC/Geyser into server-inventory 2021-01-11 19:46:39 -05:00
rtm516
1c0cc4622a
Microsoft account authentication (#1808)
Microsoft accounts can now use Geyser, while maintaining full backwards compatibility with Mojang accounts.

Co-authored-by: Camotoy <20743703+Camotoy@users.noreply.github.com>
2021-01-11 15:52:02 -05:00
Camotoy
6aa74a2322
Allow server pong to appear if MOTDs are too long (#1445)
* Prevent server pong from appearing if MOTDs are too long

If the server MOTDs are 340 characters or longer, they will not appear. If this is the case, we trim each.

* Implement a more exact fix
2021-01-11 15:37:37 -05:00
Camotoy
999fa7298a
Clarify proxy protocol config message (#1824) 2021-01-10 20:01:04 -05:00
Camotoy
d6461e71fb
Add message if Geyser thinks the English locale is missing (#1825) 2021-01-10 20:00:48 -05:00
David Choo
9232c5565f
Add Ender Dragon effects and sounds (#1781)
* Add Ender Dragon effects and sounds

* Add proper death effect and clean up

* Add Ender Dragon respawn sound

* Possibly fix dragon breath direction?

* Update mappings

* Fix death animation triggering at low health

* Trigger death event when health is 0 and add explosions back

* Add comment
2021-01-09 20:43:03 -05:00
Camotoy
54fb56ea85
Add legacy crafting support for Spigot and finish up standalone 2021-01-09 16:45:32 -05:00
AJ Ferguson
554ec82ef5 Shaped recipe detection 2021-01-09 04:10:27 -09:00
Camotoy
9bfc5d320c
Work-in-progress checks for legacy slot checking 2021-01-09 00:38:53 -05:00
AJ Ferguson
9118ec6840 wip support old crafting 2021-01-08 17:01:31 -09:00
Camotoy
ade4c14911
Block breaking refactors (#1336)
Client-side block animations and reach checks are now added.

This commit also includes cleanup in BlockChangeTranslator as well as proper Netherite tool support for calculating block breaking.

Co-authored-by: rtm516 <rtm516@users.noreply.github.com>
2021-01-07 22:43:36 -05:00
Camotoy
fe23c79053
Implement book editing (#1117)
* Implement book editing

Updates the PR created by @ForceUpdate1 for 1.16 support. Seems to work fine now that hand support is in MCProtocolLib.

Co-authored-by: Camotoy <20743703+DoctorMacc@users.noreply.github.com>

* Remove debug line

* Simplify code

Currently still borked for creative mode.

* Fix books on creative

* Bug fixes

* Fix NPE?

* Blind fixes

* Send Book update before any player actions

* Remove debug prints

* Fix out of bounds for page replace and add

* Fix editing desync and remove empty pages from the end

* Send edit packet after signing

* Refactor

* Clean up and fix creative

* Apply suggestions from code review

Co-authored-by: rtm516 <rtm516@users.noreply.github.com>

Co-authored-by: ForceUpdate1 <mneuhaus44@gmail.com>
Co-authored-by: Camotoy <20743703+DoctorMacc@users.noreply.github.com>
Co-authored-by: David Choo <davchoo3@gmail.com>
Co-authored-by: rtm516 <rtm516@users.noreply.github.com>
2021-01-07 19:40:34 -05:00
Camotoy
7cefb5713e
Clarify that enabling Xbox achievements blocks all commands (#1810) 2021-01-07 16:50:57 -05:00
Camotoy
92c86cf15b
Null check tick thread (#1812) 2021-01-05 23:28:31 -05:00
Camotoy
c8016647f2
Clean up and add mobile button for horse opening 2021-01-05 19:08:54 -05:00
Camotoy
0641800be7
Add Tickable interface (#1790)
* Add Tickable interface

By having a tickable interface, we're only dedicating one thread to ticking entities and running tasks as opposed to several. This will also help with implementing world border support.

* removeEntity already clears tickableEntities for us

* Only tick the entity if it's not being ticked
2021-01-05 18:41:20 -05:00
AJ Ferguson
b6389317f0
Fix minor bug in auth form (#1806) 2021-01-05 13:45:01 -05:00
Camotoy
a88678a5c1
Add manual recipes as Recipe classes for future usage 2021-01-04 22:15:55 -05:00
Camotoy
1d47dc3f18
Merge branch 'server-inventory' of https://github.com/GeyserMC/Geyser into server-inventory 2021-01-04 20:30:19 -05:00
AJ Ferguson
ff69752d2c Remove unnecessary is_block null check 2021-01-04 15:16:21 -09:00
AJ Ferguson
57e176efd6 Optimize stackSize
Co-Authored-By: Camotoy <20743703+Camotoy@users.noreply.github.com>
2021-01-04 15:12:26 -09:00
AJ Ferguson
a160e3694b Add stackSize to ItemEntry 2021-01-04 14:47:48 -09:00
Camotoy
50f295b4cd
Remove unneeded GeyserItemStack constructor and add comments 2021-01-04 18:19:43 -05: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
AJ Ferguson
8928d554a1 WIP autocrafting using java recipe book
work in progress. many edge cases are currently unhandled. will not work at all pre 1.12. (support is planned)
2021-01-03 17:54:26 -09:00
Camotoy
50b80a64d3
Dimension switching cleanup (#1694)
* Dimension switching cleanup

Cleans up dimension switching logic that should no longer be needed. Also fixes above Nether Bedrock building dimension switching.

* Clear thunder on dimension switch too

* Clarify fake dimension switch function name

* Javadoc that
2021-01-03 19:06:20 -05:00
Camotoy
1c7567d79d
Various resource pack fixes (#1769)
- Fixes an instance where an invalid pack_manifest file could be present
- Fixes instances where JSON files were not read as UTF-8
2021-01-03 12:53:26 -05:00
YHDiamond
1a08e1104d
Fix stopsound bug (#1771)
* Fix stopsound not working bug

* removed extra imports

* Update JavaPlayerStopSoundTranslator.java

* Update JavaPlayerStopSoundTranslator.java

* Update JavaPlayerStopSoundTranslator.java

* Fix packet names and fix specific sounds not stopping

Co-authored-by: YHDiamond <47502993+yehudahrrs@users.noreply.github.com>
Co-authored-by: Camotoy <20743703+Camotoy@users.noreply.github.com>
2021-01-02 18:51:41 -05:00
AJ Ferguson
528a9a4431 Crafting table slot mappings 2021-01-01 18:37:33 -09:00
Camotoy
396d1b6b61
Fix items on campfires (#1779) 2021-01-01 18:33:21 -05:00
Camotoy
eccb48844e
Allow enderman to make provoked sound when angry (#1763) 2021-01-01 16:55:04 -05:00
Camotoy
7a82852134
Merge branch 'server-inventory' of https://github.com/GeyserMC/Geyser into server-inventory 2021-01-01 14:22:44 -05:00
Camotoy
2a5c134ea7
Update server inventory copyrights to 2021 2021-01-01 14:22:26 -05: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
AJ Ferguson
b7b3278d8b item painting. cursor net id 2020-12-31 17:39:54 -09:00
Camotoy
77153e6d4a
Work around there being a void floor in Bedrock (#1405)
* Work around there being a void floor in Bedrock

If the player's Y coordinate is -38 or below, we teleport the player below the void floor and they can safely die. :)

* Don't teleport if below Y -40

* sigh

* Have floorY be its own variable

* Add more comment

* More comments

* Finish my thought
2020-12-31 20:05:00 -05:00
Camotoy
c4fc604e0c
Optimize stonecutter button code 2020-12-29 20:31:48 -05:00
Camotoy
3c1a40c56a
Better net ID handling 2020-12-29 19:59:22 -05:00
Camotoy
f4b1d470c3
Merge branch 'server-inventory' of https://github.com/AJ-Ferguson/Geyser into server-inventory 2020-12-29 19:02:11 -05:00
Camotoy
ac4f6eceac
Merge branch 'master' of https://github.com/GeyserMC/Geyser into server-inventory 2020-12-29 19:01:59 -05:00
AJ Ferguson
e3b94bc859
Thrown potion entity color (#1756)
* Fix thrown potion color

* Prevent area effect cloud from appearing to catch on fire

* Don't set ENCHANTED flag on all potions
2020-12-29 18:58:02 -05:00
David Choo
fe63a7f7ab
Fix pick block (#1753)
* Use pick_item mappings

* Update mappings

* Update mappings and fix wording
2020-12-29 18:09:42 -05:00
Camotoy
a5c020e7ee
More comments 2020-12-28 13:16:17 -05:00
Camotoy
3ba396e625
Fix some temporary inventory blocks not disappearing 2020-12-28 00:47:10 -05:00
Camotoy
2265de3ae9
lecterns 2020-12-28 00:29:27 -05:00
Camotoy
790c695b27
Add TODO 2020-12-27 11:08:48 -05:00
Camotoy
956d264c3e
Anvil renaming works; other things 2020-12-26 22:55:14 -05:00
AJ Ferguson
60da3b9432 Temp slot 2020-12-26 18:44:48 -09:00
Camotoy
4b461e5e0a
Merge branch 'master' of https://github.com/GeyserMC/Geyser into server-inventory 2020-12-26 19:52:16 -05:00
Camotoy
d1c571d710
Fix anvil renaming (#1744)
Turns out it *was* our fault. Oops.
2020-12-26 19:51:11 -05:00
Camotoy
7c4e95625a
Cleanup and delete FilterTextPacket - PRing to the main branch 2020-12-26 19:16:35 -05:00
Camotoy
078af59249
Streamline Item Net ID getting; cartography table finished 2020-12-26 16:41:50 -05:00
Tim203
77de991bcf
Change Jenkins url and name to Open Collaboration (#1732) 2020-12-26 21:40:49 +01:00
Camotoy
eb5e4d79bb
Add visual damage support with thorns (#1728) 2020-12-26 15:39:46 -05:00
Camotoy
06f346b30b
Fix offset issue 2020-12-26 13:24:50 -05:00
Camotoy
c1f5380ed1
Add horse inventory support 2020-12-26 12:20:59 -05:00
Camotoy
c7fade295e
Add swap support for creative mode; start on cartography table 2020-12-24 20:43:24 -05:00
Camotoy
3d0b0a1076
Stonecutter fixed; Loom improved 2020-12-24 18:29:25 -05:00
Camotoy
9fc6228fc0
GeyserSession: remove 32 render distance cap (#1546)
Having an incongruency between the server render distance and the client render distance appears to cause issues, and I have not been able to encounter such a crash.
2020-12-24 13:40:57 -05:00
Camotoy
617a1216d5
Initial work on stonecutters 2020-12-24 11:23:47 -05:00
Mark
eca626aad6
Add missing netty-codec-haproxy dependency (#1731) 2020-12-24 00:31:23 -05:00
Camotoy
6ae81cce52
Full banner loom support 2020-12-23 22:53:54 -05:00
Mark
c67d91943c
HAProxy PROXY protocol support for downstream connections (#1688)
* Implement downstream PROXY protocol support

* Clarify the configuration version updating procedure

* Bump netty-resolver-dns to 4.1.56.Final

* Update Netty to .56

* Don't increase jar size by 2MB

Co-authored-by: Camotoy <20743703+Camotoy@users.noreply.github.com>
2020-12-23 20:47:29 -05:00
D3ATHBRINGER13
4d80edf6d9 Initial loom funtionality 2020-12-24 00:48:31 +00:00
Camotoy
0f735a8330
Block entity cleanup 2020-12-23 12:37:55 -05:00
Camotoy
e4ecd1a092
Merge branch 'master' of https://github.com/GeyserMC/Geyser into server-inventory 2020-12-23 12:32:39 -05:00
Camotoy
ff4f712eda
Implement beacon 2020-12-23 12:30:36 -05:00
Camotoy
f4f804e1ca
Enchantment table works; anvil is almost there 2020-12-23 01:21:00 -05:00
Camotoy
009905184e
Add grindstone and smithing table 2020-12-21 22:44:01 -05:00
Camotoy
c6b4d163a1
Improve creative support 2020-12-21 21:09:14 -05:00
Camotoy
dbfdae63f1
Add precautions to prevent stack traces on incomplete/unknown place sounds (#1717) 2020-12-20 20:42:14 -05:00
Camotoy
b490dcfcbb
Improve doDaylightCycle translation (#1711)
Previously, we wouldn't send the time if the server was sending the same time with doDaylightCycle on. However, this isn't vanilla behavior (for Bedrock nor Java) and can occasionally cause irregularities. The time is now always sent to Bedrock clients, and a daylightCycle field is added to GeyserSession to keep track of the doDaylightCycle gamerule we need to send to Bedrock. Removing the map we used to store the time may also improve memory usage since this was never cleaned up.
2020-12-20 20:41:07 -05:00
Camotoy
d69896b381
Fix NPE when no item can be found from a block (#1718)
This commit also removes an old map previously used for block entity translators
2020-12-20 20:40:21 -05:00
Tim203
d6c2507bb5
Fixed some bugs 2020-12-20 17:34:46 +01:00
DoctorMacc
f47cf32d90
Make my life tolerable 2020-12-19 19:19:44 -05:00
DoctorMacc
1705f1034c
Merge branch 'master' of https://github.com/GeyserMC/Geyser into server-inventory 2020-12-18 18:37:54 -05:00
DoctorMacc
aa4a1058e3
Brewing stand support; other attempts 2020-12-17 21:47:18 -05:00
Camotoy
c92150013f
Allow /help to work even if command suggestions are disabled (#1703)
* Allow /help to work even if command suggestions are disabled

This sends a minimal available commands packet to permit /help sending to the server.

* Fix whitespace

* Just send an empty packet

* Change variable name
2020-12-17 14:10:58 -05:00
rtm516
ce9cd92b2e
Update GeyserConnector.java to fix JavaDoc (#1701) 2020-12-17 17:25:38 +00:00
qlow
9f6182f8df
Added a simple way to get a player by their xuid (#1642)
* Added IGeyserPingPassthrough#getPingInformation(InetSocketAddress) to make logging of the pinging IPs possible

* Added GeyserConnector#getPlayerByXboxUuid

* Added GeyserConnector#getPlayerByUuid and added some javadocs

* Update connector/src/main/java/org/geysermc/connector/GeyserConnector.java

Co-authored-by: rtm516 <rtm516@users.noreply.github.com>

* Update connector/src/main/java/org/geysermc/connector/GeyserConnector.java

Co-authored-by: rtm516 <rtm516@users.noreply.github.com>

* Update GeyserConnector.java

* Update SkinManager.java

* Update SkinProvider.java

* Renamed getPlayerByXboxUuid to getPlayerByXuid

Co-authored-by: qlow <info@qlow.eu>
Co-authored-by: rtm516 <rtm516@users.noreply.github.com>
2020-12-17 11:58:49 -05:00
DoctorMacc
33a86485dc
Implement dropper/dispenser, hopper, shulker 2020-12-17 11:46:11 -05:00
DoctorMacc
929b0ba80c
Refactors, and add furnace 2020-12-16 23:52:45 -05:00
Camotoy
82179797ab
Add proper ominous banner translation (#1692)
The ominous banner is a separate banner type in Bedrock. If we detect the ominous banner pattern, then we set the ominous banner type in NBT. This process is also checked vice-versa, allowing the ominous banner to be pulled from the Bedrock creative menu.
2020-12-16 12:50:16 -05:00
DoctorMacc
988e697a70
Crafting table works 2020-12-15 23:33:17 -05:00
DoctorMacc
3b3e72d5c3
Initial crafting table support 2020-12-15 23:01:27 -05:00
Tim203
e69ad0e560
Geyser can compile now 2020-12-15 22:31:14 +01: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
988fd66a85
Fix boat movement on land (#1668)
* Fix boat movement on land

1.16.100 appears to now take advantage of two newer entity metadata properties, IS_BUOYANT and BUOYANCY_DATA. Without the former, moving on land will not work properly. With the former and without the latter, moving in water no longer works.

* Use offset kind of
2020-12-15 13:09:40 -05:00
Camotoy
aed1eef6e1
Update Adventure and fix some legacy hover events (#1681) 2020-12-15 11:24:02 -05:00
Camotoy
55cf7d1c54
Fix more scoreboard crashing and oddities (#1665)
* Various fixes

* Apply updateType fix as well

* Slight optimization
2020-12-14 18:22:31 -05:00
Camotoy
8b5ef7478c
Fix PS4 behavior with NetworkStackLatencyTranslator (#1678) 2020-12-14 15:47:17 -05:00
RednedEpic
41cb593dc4 Update langauges submodule 2020-12-12 01:48:12 -06:00
RednedEpic
655e218115 Add settings command for settings menu as it broke in the settings screen in 1.16.100 2020-12-12 01:45:54 -06:00
RednedEpic
31209be79e Ensure spawn radius is always 0 on the client's end
Fixes #1496 to the best of my knowledge. Any issue regarding the spawnpoint being off in terms of radius is up to the server at this point - would not be an us situation here.
2020-12-12 01:23:30 -06:00
RednedEpic
70031c65e7 Handle keepalives better (Closes #965)
Bedrock cuts off the last 3 digits consistently every time, meaning that the keepalive returned from bedrock is never fully accurate. However, if we multiply the value by 1000, then divide by 1000 when sending back to java, the proper value is returned.
2020-12-12 00:45:41 -06:00
Tim203
9500da2ef0
Small changes 2020-12-12 01:39:09 +01:00
RednedEpic
a60ab4e80e Fix colored particles (Closes #1627) 2020-12-11 17:15:49 -06:00
RednedEpic
047bf5f0f4 Fix armor stand rotation (Closes #1634) 2020-12-11 17:06:33 -06:00
Camotoy
f19922ecf0
EnderCrystalEntity: don't appear to be on fire if fire is below (#1651) 2020-12-11 12:55:37 -05:00
Kooldude183
39a11da7e5
Fix resource pack description in config (#1649) 2020-12-10 22:13:54 +00:00
Tim203
45596a87a9
Use Cumulus as form library 2020-12-10 22:57:48 +01:00
Camotoy
87c52ad524
Add a config option for toggling showing coordinates (#1645) 2020-12-10 11:13:36 -05:00
rtm516
91cdda95db
Change version in query to use a more informative string (#1635)
* Change version in query to use a more informative string

* Fix removal of string

* Cleaner implementation of version

* Fix build

* Make more explicit what we're replacing

Co-authored-by: Camotoy <20743703+DoctorMacc@users.noreply.github.com>
2020-12-09 15:14:12 -05:00
rosiecube
2a44874458
Fix Bedrock ItemEntity Y position bug (#1636)
Setting motion while on the ground causes visual issues. Additionally, there is an offset difference in the movement of an item entity.
2020-12-09 15:09:14 -05:00
DoctorMacc
f167ed2583
Merge branch 'master' of https://github.com/GeyserMC/Geyser into server-inventory 2020-12-09 11:57:46 -05:00
Camotoy
8e274daa75
Change default protocol version to 422 (#1640)
* Change default protocol version to 422

* Update Protocol

* Actually update to Protocol 2.6.1-SNAPSHOT

* Keep languages commit the same
2020-12-09 11:30:59 -05:00
DoctorMacc
049242db4b
Update to 1.16.200 2020-12-09 01:12:02 -05:00
D3ATHBRINGER13
3bcdf4cca1
Add map and banner cloning and map extending (#1623)
* Add all the crafting multi uuids

* Remove BANNER_ADD_PATTERN

* Remove TODO
2020-12-07 14:27:42 -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
798ae34cd1
WolfEntity: fix entire wolf being set to a color in rare instances (#1630) 2020-12-06 14:46:31 -05:00
Camotoy
2f294c9466
Fix player heads with a custom name (#1625) 2020-12-04 17:48:33 -05:00
OnlyBMan
2c0f3ec84d
Custom skull block support (#683)
Custom skulls are now implemented within the world when placed as a block. This is achieved by placing a fake player entity in the same spot.

Co-authored-by: DoctorMacc <toy.fighter1@gmail.com>
Co-authored-by: bundabrg <brendan@grieve.com.au>
Co-authored-by: bundabrg <bundabrg@grieve.com.au>
Co-authored-by: Camotoy <20743703+DoctorMacc@users.noreply.github.com>
2020-12-04 16:55:24 -05:00
rtm516
2067143b57
Fix supported version display name (#1593)
* Fix supported version display name

* Update connector/src/main/java/org/geysermc/connector/network/BedrockProtocol.java
2020-12-03 19:21:32 -05:00
D3ATHBRINGER13
b92d8d53e9
Bump languages submodule (#1619) 2020-12-03 18:20:39 +00:00
Camotoy
f6a26410da
Supply a unique network ID for each recipe (#1615)
This fixes crashes in the Minecraft betas.
2020-12-02 15:39:24 -05:00
Tim203
f7d2378845
Added Floodgate to GeyserDump 2020-12-01 23:17:54 +01:00
Tim203
deae3d566d
Updated DeviceOs 2020-12-01 19:54:51 +01:00
Bastian Oppermann
24fd7dafc5
Do not send server custom chart for Metrics (#1610)
The server chart is automatically populated by the bStats backend.
2020-12-01 11:40:07 +00:00
Camotoy
ffd0c211fc
Fix villagers accepting books (#1605)
* Hopefully fix villagers accepting books

Fixes a couple of inconsistencies getting books from the creative menu.

* Fix fake news
2020-11-30 10:55:35 -05:00
rtm516
eb687e6638
Add check to fix NONE team color causing an NPE (#1602) 2020-11-28 15:10:19 +00:00
rtm516
da2dc69441
Update MCProtocolLib to Adventure migration (#1572)
* Use raw message data instead of converting the message

* Update MCProtocolLib to Adventure

* Ignore MCProtocolLib Adventure depend

* Remove unused dependency

* Fix isMessage handling `null` wrong.

* Update to adventure 4.2.0

* Clean-up isMessage

* Fix tests

* Clean-up of catch statements
2020-11-27 18:28:08 -05:00
Camotoy
11d9d30050
Fix mounts being unmountable with cache chunks (#1576)
Teleports need to be confirmed before riding
2020-11-27 17:56:32 -05:00
Tim203
e583abffdf
Split Forms into an Api and an implementation 2020-11-26 23:00:43 +01:00
Carbuino
894275b8c4
Update UpstreamPacketHandler.java (#1570)
Changed the logging in message to display in the Action Bar instead of spamming the chat.
2020-11-24 11:14:02 -05:00
RednedEpic
896638ed84 Add support for latest beta (1.16.200.56) 2020-11-24 00:47:57 -06:00
rtm516
e412ba0993
Clear the Reflections scanners to stop it trying to scan (#1582) 2020-11-23 01:08:59 +00:00
rtm516
881e7a051c
Another android fix (#1575)
* Fix en_us hash reading on Android (again)

* Fix hash generation methods for Android
2020-11-22 10:40:53 +00:00
rtm516
9ed3197191
Fix en_us downloading and hashing on Android (#1574) 2020-11-22 01:59:57 +00:00
rtm516
0268ef7d2b
Clean-up translation string implementation (#1567) 2020-11-21 00:44:33 +00:00
Camotoy
67d5993ae1
LivingEntity: add visual support for riptide spin attack (#1551) 2020-11-20 18:06:27 -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
Tim203
7e3a736f20
Register Floodgate payload, updated Statistics, smaller jar, fixed bugs
Quite a lot of changes, but I was too lazy to split them in different commits (and they'll be squashed later anyway):
* Floodgate plugin message channels are now registered (because Spigot requires that, and I guess it's better practice)
* Updated the Statistics form to match the new Forms API
* The common jar is now much smaller, because Jackson isn't needed anymore in the common module
* Fixed some bugs in Forms where empty fields would lead to excluding them in the serialization (making Bedrock complain)
And a few other things, like a new boolean in RawSkin saying if the Skin is an Alex or Steve model.
2020-11-18 19:40:23 +01:00
Camotoy
199778faea
Fix regressions from 1.16.100 (#1558)
* Fix regressions from 1.16.100

- Update mappings to fix recipe regressions and item differences
- Villager trading NBT now prefers the String identifier and not the integer ID

* Fix lodestone compass breaking
2020-11-18 01:10:49 -05:00
Camotoy
99558b61a6
Print reason for disconnect when outdated (#1556) 2020-11-17 13:28:08 -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
rtm516
512f8cd6c2
Rewrite message handling in MessageUtils to use Adventure (#1498)
* Rewrite message handling in MessageUtils to use Adventure

* Move to static Adventure commit to fix a bug

* Initial test implementation

* Add RGB downgrade test

* Move MessageUtils and rename

* Clean-up and fix tests

* Fixed sign and book content handling

* Fix blank signs causing NPEs

* Fix reset before message being stripped

* Add comment about the reset character

* Fix legacy style server motds

* Fix more messages being handled wrong

* Fix title packets being handled wrong

* Fix trailing formatting characters on the end of sign lines

* Add auto updating of Java locale files

* Add en_us locale updating and hash caching

* Changes to hash determining

Co-authored-by: DoctorMacc <toy.fighter1@gmail.com>
2020-11-16 23:57:57 +00:00
Camotoy
47f25f1205
BannerTranslator: fix NPE when no block entity data (#1543) 2020-11-15 18:48:11 -05:00
RednedEpic
981ac3bf11 Move PlatformType to common module 2020-11-14 17:49:56 -06:00
Camotoy
445444204f
Fix GlobalPalette translation (#1528)
* Fix GlobalPalette translation

Global palettes don't have their own internal palette, which cannot be iterated through to create a Bedrock palette. Therefore we simply iterate over the whole palette one time. This commit also fixes a regression with flowers/pistons being on multiple chunk sections.

* Don't declare bedrockPalette until after global palette check
2020-11-14 12:05:33 -06:00
Niklas
bf05f64fac
Update LabyMod cape url (#1540) 2020-11-14 11:52:10 -06:00
Camotoy
80cf407fae
Update MCProtocolLib to fix more custom recipe stuff (#1534) 2020-11-13 23:00:09 -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
rtm516
3676dd185f
Fix even more entity metadata flags (#1483)
* Fix even more entity metadata flags

* Add comment explaining magic value

* Fix horse flags and add more information

* Add more information about the Horse eating particles
2020-11-11 18:13:13 +00:00
David Choo
4237503d6d
Fix laying crash (#1510)
* Fix crash with GSit lay and use Java bed position data

* Fix GSit's lay position

* Move Bed Position metadata to the right class

* Actually fix lay for PosePlugin

* Revert "Actually fix lay for PosePlugin"

This reverts commit 3f21261162.

Co-authored-by: DoctorMacc <toy.fighter1@gmail.com>
2020-11-10 12:05:16 -05:00
Camotoy
109922f796
Update MCProtocolLib to fix datapacks that send empty result recipes (#1522)
Example: https://www.planetminecraft.com/data-pack/true-survival-a-hardcore-minecraft-experience/
2020-11-09 14:26:29 -05:00
Tim203
e00715ceab
Fixed some issues related to Scoreboards (#1446)
* Fixes some issues related to Scoreboard Teams

* The cached Score info should update no matter what kind of update the Team got.
* Team entities specified at the create Team packet should also be checked if they exist as Score in the registered Objectives

* Rewrote some Scoreboard code and fixed various issues

* Minor formatting changes
2020-11-09 10:34:27 +01:00
rtm516
2d95302b10
Add support for passing config options as arguments (#1506) 2020-11-07 13:17:17 -06:00
rtm516
a6cc28ee80
Add config option for enabling achievements (#1504)
* Add config option for enabling achievements

* Disabled achievements by default and added warning about commands being disabled

* Update config.yml

* Rename achievements-enabled to xbox-achievements-enabled for clarity

Co-authored-by: Camotoy <20743703+DoctorMacc@users.noreply.github.com>
2020-11-07 00:52:09 +00:00
Camotoy
0e15aa7441
Fireball and ghast improvements (#1469)
* Fireball and ghast improvements

- Ghasts now visually show if they're charging a fireball
- Fireballs are now vastly better and will update better

* Add gravity and drag to projectiles

* Add check for session close and improve fireball

* Remove motion stuff from fireball

* Make fireball hittable

* Add wither skull entity

* Small changes

* Add note about laggy fireballs

Co-authored-by: David Choo <davchoo3@gmail.com>
2020-11-05 18:42:33 -05: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
434a2e1500
Fix bell sound and visuals (#1502)
* Fix bell sound and visuals

The bell sound now correctly plays.

Bells will also visually ring when rung by another player.

* Compress elses

* Add more whitespace to new code
2020-11-05 14:59:01 -05:00
David Choo
ce64dd2788
Fix sitting with armor stand and animal mount offsets (#1492)
* Fix sitting with armor stand and animal offsets

* Fix riding players

* Moved @Getter
2020-11-04 20:30:55 -05:00
Camotoy
69d4d9f0d6
Send position update every 3 seconds if idle (#1421)
* Send position update every 3 seconds if idle

Prevents timeouts in certain instances when AFK.

* Cancel position sending on dimension switching

* Remove debug lines

* Create function to centralize movement translation
2020-11-02 16:04:08 -05: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
Camotoy
ca1f87d464
MapItemTranslator: support map tag being of short value (#1475)
GSigns sends this as a short. Who knows why.
2020-10-31 22:38:56 -04:00
Tim203
819ff09ee6
Manually resolved merge conflicts
This specific commit isn't compilable, since StatisticsUtils hasn't been updated to match the new Form style.
2020-10-30 01:31:22 +01: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
Tim203
dc8fb46428
Manually solve some merge issues 2020-10-30 01:14:34 +01:00
Tim203
0e7dca551e
Merge remote-tracking branch 'fork/floodgate-2.0' into floodgate-2.0
# Conflicts:
#	connector/src/main/java/org/geysermc/connector/utils/PluginMessageUtils.java
2020-10-30 01:05:03 +01:00
Tim203
c9102348de
First version of the Forms rewrite
The next version will split the implementation from the api
2020-10-30 00:58:17 +01:00
Camotoy
e0f5deb329
Add support for more recipes (#1434)
* Add support for more recipes

- Tool repairing
- Book cloning
- Suspicious stew
- Tipped arrows

What still needs to be done:

- Map cloning/extending (though there may be item mapping mismatch getting in the way)
- Banner duplication (couldn't figure this out)

* Add some more spacing

* Explain recipe UUIDs
2020-10-29 18:40:42 -04:00
David Choo
8fdaf6a385
Ender dragon Melee Attacks (#1466)
* Create and position Ender Dragon Bounding Box

Currently allows the player to "kill aura" target
the ender dragon.

* Use an entity to handle attacks for each hitbox

* Use the proper flag to make entities invisible

* Clean up and add some comments

* Ender dragon entity metadata improvements

* Add doc to segment functions

* Add changes

Co-authored-by: DoctorMacc <toy.fighter1@gmail.com>
2020-10-29 18:35:46 -04: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
9b46bf8bc9
BedrockActionTranslator: Fix occasional death stall (#1432)
Usually this happened when joining from another dimension after the player exited to the main menu on the death screen. The player would not realize that they are dead.
2020-10-29 16:44:45 -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
David Choo
d93d4d0942
Projectile fixes (#1451)
* Predict the trajectory of projectiles and add particles

* Correct lingering potion gravity

* Update last position on move absolute

* Clean up

* Add egg to ItemRegistry and update mappings
2020-10-26 11:54:37 -04:00
rtm516
c30cb78e74
Add statistics menu (#1424)
* Add statistics menu

* Changed back button text

* Add check to make sure the player requested the statistics display

* Better item translation support; misc changes

* Clean up session getting?

* Remove extra debug that is likely unnecessary

* Remove unused function

* Update languages submodule

* Clean up javadoc comment

* Fix typo

Co-authored-by: DoctorMacc <toy.fighter1@gmail.com>
Co-authored-by: Camotoy <20743703+DoctorMacc@users.noreply.github.com>
2020-10-24 23:33:49 +01:00
RednedEpic
dfba278f4d Use correct methods in refreshEmotes 2020-10-23 01:36:34 -05:00
RednedEpic
ee8c718c62 Translate emote list packet 2020-10-23 01:25:24 -05:00
rtm516
7f2b2e0913
Bedrock <-> Bedrock skin display fix (#1195)
* Implement partial bedrock skin fix

* Fix equals method

* Fix ViaVersion

Co-authored-by: DoctorMacc <toy.fighter1@gmail.com>
2020-10-22 23:01:03 -05:00
Redned
62d984da61
Make userAuths information more clear 2020-10-19 20:56:01 -05:00
Camotoy
7f5fac38c6
Update to Adventure 4.1.1 (#1410)
* Update to Adventure 4.0.0

* Update to 4.0.1

* Update again, I guess.
2020-10-19 19:09:16 -04:00
Camotoy
b02bc33393
GeyserSession: Set a default value for attackSpeed (#1419)
Fixes cooldowns not showing on a fresh world.
2020-10-19 19:03:31 -04:00
DaPorkchop_
18e2a52d98
fix decoding sections with duplicate palette entries (#1430) 2020-10-19 09:43:51 +01:00
Camotoy
45429a9357
SettingsUtils: fix 'show coordinates' setting persistence (#1429)
The boolean that toggled this was accidentally in the wrong spot.
2020-10-18 23:29:11 -04:00
DaPorkchop_
0635605a24
fix chunk section decoding (#1418)
* fix chunk section decoding

* switch back to official MCProtocolLib
2020-10-18 10:59:37 -04:00
David Choo
5c28eaca15
Fix mob mount positions (#1392)
* Fix mob mount positions

Uses offsets from Java Edition.

* Fix Boat mount pos for multiple passengers and Fix Ravager

Remove unnecessary horse metadata

* Fix Minecart & Boat Mount Pos, Fix Player Height Offset

* Use offset of EntityType.PLAYER

* Add back metadata
2020-10-17 23:50:41 -04:00
Camotoy
ae70dbeece
JavaOpenWindowTranslator: Use MessageUtils for inventory name (#1416)
* JavaOpenWindowTranslator: Use MessageUtils for inventory name

* Remove important messaging
2020-10-17 23:13:04 -04:00
AJ Ferguson
7f4b588cdf server inventory. WORK IN PROGRESS
wip commit of implementing server authoritative inventories. there is a lot of experimental and debug code. this is NOT ready for testing or review.
2020-10-16 15:25:05 -08:00
RednedEpic
64f2233581 Fix wolf collar color when it's no longer angry (Closes #1404) 2020-10-15 01:54:05 -05: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
RednedEpic
40de801eb0 Add sound when an arrow hits a player 2020-10-15 01:21:44 -05:00
Tim203
2ca2436cdc
Don't use the general thread pool to run an async method (#1397)
* Don't use the general thread pool for an async method

* Align nested class at the bottom
2020-10-14 23:34:24 -04:00
DaPorkchop_
73bec588fa
fix some NPEs caused by race conditions in chunk conversion (#1396)
* fix some NPEs caused by race conditions in chunk conversion

tbh the whole session should be read-write locked for every operation

* fix code style issues
2020-10-13 11:11:52 -04:00
DaPorkchop_
191777773c
Don't use wrapper objects for positions in ChunkCache (#1398)
* make ChunkPosition use a hashCode implementation with far better hash distribution

this should improve the performance when used as a hash table key

* ChunkCache no longer uses position wrapper objects

this yields a roughly 15-20% increase in performance when converting chunk data

* fix code style issues
2020-10-13 15:44:47 +01:00
RednedEpic
9b3cd8f725 Fix area effect clouds 2020-10-12 20:36:11 -05:00
Camotoy
1b00eaca4a
Set AuthType in Metrics to lowercase (#1395) 2020-10-12 21:28:54 -04:00
Luke
3f7120d9da
Add player device OS to metrics (#1391)
* Add player device os to metrics

* Add player version, Geyser version, and default locale

Co-authored-by: DoctorMacc <toy.fighter1@gmail.com>
2020-10-12 21:17:15 -04:00
Camotoy
96db37c14c
Fix bucket interactions on creative mode (#1369)
* Fix bucket interactions on creative mode

Bedrock uses the BLOCK_INTERACT enum of BedrockActionTranslator to truly indicate if a bucket should be used or not. In order to hook into this, we need to delay the bucket placing by about 5 milliseconds - this gives us time to cancel the interaction if needed.

Bucket sounds will now not play in this case as well.
2020-10-12 20:02:41 -04:00
Camotoy
ffcff96bea
Set default values for classes as well (#1387)
Geyser can now start even if the config file is empty. Tested on Spigot and doesn't affect custom values.
2020-10-10 18:08:21 -04:00
Camotoy
ec609fa868
Make crossbows prettier (#1359)
- Fix crossbow NBT translation - now crossbows will show as loaded
- Pillagers now more closely resemble Java Edition pose behavior
2020-10-08 20:40:50 -04:00
Camotoy
59f72d0e65
BedrockMobEquipmentTranslator: Don't change item slot if already on that slot (#1353)
* BedrockMobEquipmentTranslator: Don't change item slot if already on that slot

* Update comment
2020-10-09 01:07:50 +01:00
Tim203
45c5ef02cd
Various Scoreboard fixes (#1381)
* Various Scoreboard fixes

Fixes #1328 and a few other potential Scoreboard problems

* Consistent whitespacing

Co-authored-by: DoctorMacc <toy.fighter1@gmail.com>
2020-10-08 19:30:05 -04:00
Camotoy
4514167835
Fix fire being punched in all directions (#1370)
Apply the fix we have for fire but for all block faces.
2020-10-08 18:44:15 -04:00
Arktisfox
16eb2a491a
Area cloud fixes (#684)
* Fix NotNull error with particles, replace incorrect string meta with int meta.

* Add back newline

* Remove debug line

* Update Protocol and prepare for merge

Co-authored-by: DoctorMacc <toy.fighter1@gmail.com>
2020-10-08 18:33:36 -04:00
Camotoy
172a5a6db8
Add Fabric as a platform type (#1376)
* PlatformType: Add Fabric as a platform

* Don't use XML reflections on Fabric
2020-10-07 18:51:36 -04:00
Camotoy
ba6f174058
Add support for fishing rods pulling Bedrock players (#1355)
Fishing rods pulling players is a clientside feature on Java. On Bedrock, a SetEntityMotionPacket is sent to the client. Therefore this PR implements the Java fishing rod pulling mechanics and sends it off to Bedrock, which sends MovePlayerPackets that are sent to the server.
2020-10-02 15:44:46 -04:00
Camotoy
772cb246f0
Forward keep alive packets to the client (#1344)
* Forward keep alive packets to the client

Previously, MCProtocolLib (our Java protocol library) handled keep alive packets for us. This commit disables that option and 'forwards' the keep alive packets to the client, and sending the keep alive packet back once Bedrock sends us a ping response.

* Delete DataCache

* Update to latest MCProtocolLib

* Swap values around as a sanity check
2020-09-29 14:15:11 -04:00
Camotoy
3c4cde9677
Tipped arrow translation (#1331)
* Tipped arrow translation

- Tipped arrow items are now properly translated both ways
- Tipped arrow particle effects are also translated, by having a list of all colors Java could send us and their Bedrock ID

* Remove a whitespace
2020-09-29 13:30:37 -04:00
Camotoy
aee9ccc7d2
DoorSoundInteractionHandler: ignore iron [trap]doors (#1343) 2020-09-29 13:21:43 -04:00
Camotoy
9bb52afc8a
BedrockRespawnTranslator: prevent some respawn bugs (#1346) 2020-09-29 13:21:25 -04:00
Camotoy
a5b00e09a1
Villager trade fixes (#1350)
This commit mainly focuses on fixing the crashing of villagers that occurred pre-1.14.

Co-authored-by: AJ Ferguson <AJ-Ferguson@users.noreply.github.com>
2020-09-29 13:19:37 -04:00
rtm516
7c49391b9d
Fix gamemodes not fully applying on server switch (#1348)
* Fix gamemodes not fully applying on server switch

* Revert previous commit and move session flag updating to the adventure settings method
2020-09-28 17:43:50 -04:00
DoctorMacc
d75169392b
Small consistency fixes 2020-09-27 21:08:31 -04:00
DoctorMacc
0ea648b472
Merge branch 'master' of https://github.com/GeyserMC/Geyser into floodgate-2.0 2020-09-26 20:35:54 -04:00
Camotoy
beae39e280
Prevent Bedrock from changing gamemode client-side (#1337)
In vanilla Bedrock, if you have operator status, the client sends a packet to change gamemode without confirmation from the server. Since we have a custom server option to request the gamemode, we just reset the gamemode and ignore this packet.
2020-09-25 20:09:02 +01:00
Camotoy
fa0864b8a1
Fix picking up liquids with buckets (#1311)
* Fix picking up liquids with buckets

The last fix to prevent bucket placement upon interacting with an inventory had an oversight with empty buckets, making them unusable. This commit fixes that while keeping the previous fix.

* Remove debug line

* Fix milk drinking and visual bucket item apperance

* Comment elaboration

* Make indentiation better
2020-09-24 15:11:42 -04:00
Camotoy
1ec768d95d
Fix interaction spam bug (#1324)
* Fix interaction spam bug

This references the Nukkit 1.0 fix for the client bug of spamming to interact. Holding down still works.

* Remove interaction position set at action type 1

* Remove debug line
2020-09-24 12:54:18 -04:00
Redned
0cd43818f1
Use SERVER_READY in BedrockRespawnTranslator to fix respawn bug 2020-09-22 20:10:38 -05:00
Camotoy
b4c7682130
Implement experience sounds (#1320)
Bedrock sends a level event for the experience sound around the same time as a Java entity collect item packet is sent.
2020-09-22 14:16:57 -04:00
Camotoy
2dc7dc10ff
Remove warning about slot 50 (#1325)
We know that it occurs with console crafting.
2020-09-22 14:15:59 -04:00
Camotoy
02aeddbadd
Scoreboard: Fix various issues (#1286)
* Scoreboard: update score on UpdateType.ADD

* Actually fix

* Readd the Objective when a score changes

It looks like Objectives only update when you Remove the Objective and add it back using the SetDisplayObjective. This is hopefully a hotfix, but I think that there is no better way.

* Explain score tracking

Co-authored-by: Tim203 <mctim203@gmail.com>
2020-09-21 23:55:13 -04:00
Camotoy
2db1d16f5c
Only send the client brand on game join (#1299)
* Only send the client brand on game join

* Apply suggested changes
2020-09-21 16:06:25 -04:00
Tim203
f8939ca5de
Updated to latest Geyser 2020-09-19 14:45:36 +02: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
2f2164f387
InventoryUtils: Don't send Java packet on hotbar item selection (#1301)
The Bedrock client sends a confirmation packet we translate regardless.
2020-09-17 23:07:20 -04:00
rtm516
99e72f35b3
Add support for manually supplying Bedrock resource packs (#1076)
* send resource packs

A lot of this code is nukkit-credits in the classes

* send resource packs

A lot of this code is nukkit-credits in the classes

* Remove unnecessary code/debugs

* use separately generated hashes

* Updated mappings and added .mcpack support

* "packs" directory auto-create (#484)

* "packs" directory auto-create

* cleaned indentation in ResourcePack.java

* Cleaned ResourcePack.java

* Another cleanup

I hate editor on github.

* Yet another

* Another indentation cleanup

* Fix resource pack loading

(cherry picked from commit f93b07491e)

* Move back to internal sha256 hashing

(cherry picked from commit 812a3d82b2)

* Add resource pack loading back after merge

* Add comments, config option and removed unused files

* Fix packs folder location and cleanup code

* Move to better options for the client

* Fix typos in comments

* Fix pack loading

* Try to make it compile

* Final touches?

* Add Javadoc for MathUtils#constrain

Co-authored-by: EOT3000 <43685885+EOT3000@users.noreply.github.com>
Co-authored-by: Vesek <61123478+Vesek@users.noreply.github.com>
Co-authored-by: Heath123 <heath.mitchell27@gmail.com>
Co-authored-by: Camotoy <20743703+DoctorMacc@users.noreply.github.com>
2020-09-16 20:08:26 -04:00
rtm516
1a49e882d3
[Android] Remove usage of MCProtocolLib Base64 in SkinUtils + more (#1237)
* Remove usage of MCProtocolLib Base64 in SkinUtils

* Fix path resolution for downloading locales
2020-09-16 11:33:59 -04:00
Camotoy
3c1d4aae93
Fix inconsistencies with players and the player list (#1298)
* Fix inconsistencies with players and the player list

This commit makes the player list entry packet control the player cache, fixing inconsistencies that appeared when removing the override on despawning the player.

* Update comments
2020-09-16 00:18:18 -04:00
Camotoy
f9c1d3f218
Remove Protocol v409 support (#1300)
* Remove Protocol v409 support

Protocol has dropped support for this version.

* Fix movement

* Use a static commit for Protocol
2020-09-16 00:11:56 -04:00
Camotoy
6638c53029
Implement command block and jigsaw support (#1291)
* Implement command block and jigsaw support

- Command block UI is now fully implemented to match Java Edition.
- Command block minecarts are now supported.
- Command blocks now show the correct type of command block.
- Jigsaw blocks are translated.

Structure blocks can be implemented, but these will be trickier as there are significant GUI differences between Java and Bedrock.

* Add more detail about command block minecart color

* Set PlayerPermission.OPERATOR to allow command blocks to be destroyed
2020-09-14 20:54:19 -04:00
Camotoy
f5a9254fae
Disconnect player if Java sends disconnection (#1274) 2020-09-14 20:53:47 -04:00
Camotoy
9c8eb00cd5
JavaCollectItemTranslator: check null for entities (#1267) 2020-09-14 20:52:50 -04:00
Camotoy
3b274ef9d1
Pick block improvements (#1265)
* Pick block improvements

- Creative block picking is now implemented. If the survival-styled block picking fails, then the item is created, following Java-style mechanics.
- Entity 'picking' is also implemented. The item is crafted using the same mechanics, and the same rules apply as normal block-picking (except it only works in creative mode, following Java.

* Switch some logic around
2020-09-14 20:52:16 -04:00
Camotoy
1e1402a23f
DumpInfo: Mark internal IP as sensitive (#1264)
Sometimes the internal IP is the external IP of the server.
2020-09-14 20:51:07 -04:00
Camotoy
b13f5e900f
PlayerEntity: despawn even if still on the player list (#1263)
Fixes LibsDisguises not working, as it uses the same entity ID for the disguised entity and player. The player still appears on the player list.
2020-09-14 20:50:21 -04:00
Camotoy
26802e6dab
Translate CanPlaceOn/CanDestroy NBT (#1253)
* Translate CanPlaceOn/CanDestroy NBT

This commit adds support for the translation of the CanPlaceOn/CanDestroy NBT for Bedrock clients.

* Remove debug line
2020-09-14 20:50:07 -04:00
Camotoy
9643b208f3
Check if Fireworks tag is null (#1255)
Thank you Mineplex, very cool.
2020-09-14 20:40:41 -04:00
Tim203
bb20b14e4c
Merge remote-tracking branch 'fork/floodgate-2.0' into floodgate-2.0
# Conflicts:
#	common/src/main/java/org/geysermc/floodgate/util/BedrockData.java
#	common/src/main/java/org/geysermc/floodgate/util/EncryptionUtil.java
#	connector/src/main/java/org/geysermc/connector/GeyserConnector.java
#	connector/src/main/java/org/geysermc/connector/network/session/GeyserSession.java
2020-09-12 15:57:16 +02:00
Camotoy
46c34842d8
BedrockInventoryTransactionTranslator: check to make sure bucket usage is on purpose (#1280)
Otherwise buckets can be activated when opening block inventories.
2020-09-12 09:47:43 -04:00
Tim203
2997760521
Switch Floodgate encryption from RSA to AES 2020-09-12 15:29:18 +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
d47360d6fb
GeyserSession: send command permission level OPERATOR if qualified (#1254)
Mobile clients have a GUI for commands that shows if CommandPermission.OPERATOR or higher is sent. The commands present all require OP permission 2 or higher; therefore we set that command permission if the server tells us we have a OP permission level of 2 or higher.
2020-09-05 16:22:31 -04:00
Camotoy
854849f63c
Update mappings to fix 1.16 wood slabs (#1249) 2020-09-04 14:08:04 -04: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
4f761c5bde
Translate scoreboard nametag visibility (#1240)
This commit adds support for name tag visibility in teams. If a player is set to hide their nametag, it will be hidden from the Bedrock client. Notably, this fixes most NPC nametag hiding, including Citizens. This does not fix some NPC nametag hiding - there are several NPCs in Hypixel that still have a nametag show up, and they are not a part of any team.
2020-09-01 23:39:14 -05:00
Camotoy
b21f477366
Parrot mounting fixes (#1236)
* Parrot mounting fixes

- Fix duplicate parrots when a parrot leaves the player
- Fix rotation of parrots

* Remove critical debug information
2020-09-01 23:39:06 -05:00
Camotoy
dcf1731d8a
Implement correct sign wrapping (#1228)
* Implement correct sign wrapping

This commit ensures that the auto-wrapping nature of Bedrock with signs is corrected. If a Bedrock player sends a sign that is auto-wrapped, it will now be interpreted by Geyser to fit on multiple lines. Additionally, Geyser will crop incoming sign text to prevent auto-wrapping.

* Don't wrap if it's the last line
2020-09-01 23:38:36 -05: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
Comstepr
b97bf56d99
Minor changes to config.yml (#1224) 2020-09-01 23:37:49 -05:00
Camotoy
6f161a380f
GeyserSession: Always set Keep Inventory to true (#1213)
* GeyserSession: Always set Keep Inventory to true

This prevents the client from removing items on death in creative mode if Keep Inventory is true, but doesn't break existing behavior. Essentially, this assures full server-side behavior of the inventory during death.

* Small comment update

* OK, it was fine before the last commit, but make it better
2020-09-01 23:37:24 -05:00
Camotoy
d717085c6b
JaveNotifyClientTranslator: Translate invalid bed message (#1212)
This isn't sent as its own message but as a specific event.
2020-09-01 23:36:53 -05:00
Camotoy
7c4868cada
LocaleUtils: don't NPE if no default locale mapping exists (#1239) 2020-09-01 18:29:53 -04:00
Camotoy
b5f6ada4ae
ScoreboardUpdater: Quick fix to lessen CPU usage (#1238)
This prevents one/multiple CPU cores from taking up 100% usage. A better, permanent fix will replace this in the coming days.
2020-09-01 19:30:40 +02:00
Camotoy
2f9ff0c622
ShulkerBoxItemTranslator: Ensure Items ListTag is present (#1221)
* ShulkerBoxItemTranslator: Ensure Items ListTag is present

* Compile
2020-08-30 00:18:23 -04:00
RednedEpic
37c4192c12 Show the supported Bedrock versions in the version command rather than just the default codec 2020-08-28 19:11:32 -05:00
Camotoy
3f00803499
connector/pom.xml: Move back to main MCProtocolLib repository (#1211)
Fixes a regression where ClientPlayerAbilitiesPacket was sending the incorrect flag.
2020-08-28 15:16:35 -04:00
rtm516
79bf56a75c
Tweaks to support Android (#1206)
* Downgrade reflections to 0.9.11

* Add comment explaining downgrade

* Move to pre-build reflections

* Update skins to use https and relative cache dir

* Move to https OptiFine cape url

* Add javadoc to isProduction

* Add ANDROID as a platform type

* Re-ordered PlatformType

* Change stop command to call onDisable
2020-08-28 19:36:24 +01: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
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
c1a70c7754
Translate client-computed recipes (#1181)
* Translate client-computed recipes

A handful of recipes are complex enough on Java Edition that the client simply calculates them after getting an assurance that they are valid recipes. This PR stores those recipes in a Bedrock-compatible format in mappings, then generates the CraftingData information on startup to send to the Bedrock client when called. This fixes firework rocket and star crafting, and fixes leather armor and shulker box dyeing.

The recipe information for everything except leather armor was taken right from the Bedrock server. The leather armor had to be created separately (see https://github.com/DoctorMacc/LeatherDyeingCreation). There will be a slight visual difference in the crafting result preview if the armor is not perfectly dyed to one of the sixteen colors, but this is a visual issue that will persist unless we calculate every single possbile combination.

* Revert other changes

* Register shulker box recipes properly

* Add break

* Update mappings
2020-08-24 21:14:44 -05:00
Camotoy
6e8106eeec
Add shulker box item tooltip translating (#1189)
* Add shulker box item tooltip translating

This commit adds support for previewing the items inside of a shulker box. This does not do a full translation, and only does enough to translate the item information to the client, so as to prevent any accidental item modifying/removing on creative mode.

* Swap values
2020-08-24 21:05:39 -05:00
Camotoy
65c45386b9
Update mappings (#1196) 2020-08-24 21:04:25 -05:00
Camotoy
aaa3d7238d
BedrockEmoteTranslator: ensure sending player is valid for all other sessions (#1194) 2020-08-24 10:26:37 -04:00
Camotoy
8b7165a564
Implement (hopefully) temporary dimension switching fix (#1188)
This fixes rare (?) instances where dimension switching doesn't finish loading on the client. Ideally a proper fix would send the finishing packets in the correct order but I didn't get far in this regard.

Fixes #1154 and #1072.

Other miscellaeous chunk-related fixes have also been included here.
2020-08-24 09:31:21 -04:00
E404NNF
1d5b453595
Add a warning at start about movement translation (#1069)
Co-authored-by: Redned <redned235@gmail.com>
Co-authored-by: Camotoy <20743703+DoctorMacc@users.noreply.github.com>
2020-08-23 11:34:09 -04:00
Jordie
2d6264d7c1
Add visual support for signs colored with dye (#1180)
* Fix dyed signs in Bedrock Edition

Add visual support (in Bedrock Edition) for signs colored with dye (in Java Edition)

* Javadoc for getBedrockSignColor(string)

* Simplified getBedrockSignColor(string)
2020-08-22 16:39:40 -04:00
Camotoy
94d6c872b1
Prevent a comma from appearing if Geyser fails to bind (#1174) 2020-08-21 12:01:50 -05:00
Camotoy
ee42067d87
Don't play a sound when falling onto a block (#1175) 2020-08-21 12:01:38 -05:00
Camotoy
7fcfa7d54d
Implement an enchantment table GUI (#1177)
Until 1.16, enchantment tables were impossible to implement properly in Geyser. When a user selects an enchantment in Bedrock, the client creates the book on its end and assumes the server is OK with it. Java requires a button to be pressed to select the enchantment. With 1.16, server authoritative inventories remove that on Bedrock. However, until our inventory rewrite is finished we are still stuck without enchantment table support. This commit serves as an alternative as we wait.

Enchantment table GUI support is still impossible since we are using the pre-1.16 inventory system. To solve this, this commit replaces the enchantment table GUI with a hopper GUI. The first slot serves as the spot you place the weapon. The second slot acts as the lapis slot - Geyser prevents any item from going in there that is not lapis. The final three slots act as the buttons; an enchanted book acts as each button, with the ability to show the translated text of each enchantment.

https://cdn.discordapp.com/attachments/613194828359925800/746164042359504927/unknown.png
2020-08-20 20:53:47 -04: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
DoctorMacc
d37113388b
Update to 1.16.2 2020-08-18 11:39:29 -04:00
DoctorMacc
bf6f6fddb2
Merge branch 'master' of https://github.com/GeyserMC/Geyser into floodgate-2.0 2020-08-18 10:21:57 -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
RednedEpic
80a36344eb Only one of the values here needs to be greater than 0 2020-08-17 20:46:03 -05:00