Commit graph

1339 commits

Author SHA1 Message Date
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
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
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
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
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
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
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
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
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