Commit graph

840 commits

Author SHA1 Message Date
Konicai
f38d82c19c Drop <1.20.50 2023-12-14 21:31:14 -05:00
Konicai
a89aa4e064 1.20.3: compiling protocol changes 2023-12-14 21:31:14 -05:00
Konicai
f33703929e 1.20.3: update Items class 2023-12-14 21:31:14 -05:00
kyrptonaught
d63a70daa9
Add support for adding custom translations. (#4047)
* Add support for loading locale overwrites. Any lang files in this new folder will be appended to the main lang file when loaded.
* A locale will no longer attempt to be downloaded and loaded if it already is loaded. Previously a lang file was reloaded everytime a player joins.
* Switch some io bits to nio
* formatting fixes
* Update core/src/main/java/org/geysermc/geyser/text/MinecraftLocale.java
* Rename isLocalLoaded to isLocaleLoaded
* Rename overwrites to overrides
* Catch separate exceptions when parsing locale file. Similar to previous implementation
* Add //no-op to try/catch
* Apply suggestions to fix issues that might arise with the Norwegian locale
* Properly resolve override locale path for nb_no
* Yeet temporary fix - addresses @Camotoy's review
* Catch IOException properly

---------
Co-authored-by: onebeastchris <github@onechris.mozmail.com>
2023-12-12 00:20:25 +01:00
chris
f1e7ef92f4
Fix issues with the ConnectionTestCommand (#4333)
- Port out of bounds checking
- Proper encoding of ip's to check
- Don't assume "cache" response is nonnull; it is null when there's an error
- Send users the error message that we get when server is unreachable
2023-12-11 18:12:19 +01:00
chris
1499def4a3
Catch UnknownHostExceptions in legacy ping passthrough pings (#4331)
* Catch unknownhostexception to avoid network errors when using legacy ping passthrough

* Catch UnknownHostException separately, log a warning but no stacktrace
2023-12-07 20:27:25 +01:00
千飞夏
3971650856
Fix collision problem with glass pane and iron bars (#4302)
* Fix collision problem,the wide for bedrock is 0.5 but for java is 0.5625 when only one side connect.

* Fixed an issue where the collision box was abnormal at the corner when two sides of the glass panel were connected.

* Merge similar methods, adjust code.

* More lenient judgment; reduce redundant code to avoid repeated calls.
2023-12-07 09:57:30 +01:00
chris
9d6dd58fd8
Ensure executor service isn't null by accessing it via the getter (#4328) 2023-12-06 22:22:21 +01:00
TheFloyds4240
94a1cbeb83
Default motd and player count passthrough config values to true(#2523)
* Update config.yml
I will in no way be offended if this is not merged. Essentially, it makes Geyser slightly more configured at the start for plugin versions by forwarding more information about the server to Bedrock players.

* remove unused

---------

Co-authored-by: onebeastchris <github@onechris.mozmail.com>
2023-12-06 09:50:16 +01:00
chris
c0f6a2b926
Add more info to Fabric's geyser dumps (#4175)
* Added onlineMode, platformName, and Minecraft version to dump - renames platformVersion to loaderVersion since that is more fitting to modded structure

* rename loaderVersion back to platformVersion

* address review by @Konicai

* Fix geyser dump creation (regression from the syntax/annotation PR)
2023-12-06 08:26:20 +01:00
chris
95d65350e4
Project wide syntax/annotation cleanup (#4238)
Co-authored-by: Konicai <71294714+Konicai@users.noreply.github.com>
2023-12-05 18:54:42 -05:00
Konicai
998caee156
Catch all throwables when loading each extension (#4320) 2023-12-04 17:05:12 -05:00
chris
308f293021
Fix potential issue with the settings form - coordinate showing might change while we are in the settings menu (#4324) 2023-12-04 01:44:06 +01:00
chris
b8481cc3cd
Fix: Recipe tags application
We only need to use recipe tags when there is more than one possible ingredient option. For example, before this, we applied a logs item tag to the planks recipe, which caused an issue with plank type suggestions. (#4321)
2023-12-01 20:38:25 +01:00
chris
11945db7a0
Clear mob spawners if the Java server so requests (#4232)
* Clear mob spawners if the Java server so requests

* Empty spawners by replacing the spawner block with a new one instead of adding an invalid identifier to them.
Unfortunately, sending one UpdateBlockPacket that replaces the spawner does not work, we need to set the spawner to air first. Cool. But at least we don't summon particles for all empty spawners now

* store position vector (address review by @konicai)

* remove empty line
2023-12-01 10:27:42 +01:00
Kas-tle
0f50a3cbe6
Re-implement subchunk v9 with proper index (#4287)
* Re-implement subchunk v9 with proper index

Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>

* typo in comment

---------

Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>
2023-11-28 20:33:07 -08:00
chris
3292718e69
Don't show custom names on display entities (#4309)
* Ensure that a custom text display entity name doesn't show up - it doesn't show on Java, and if we show it, the text display contents aren't shown.

* Update core/src/main/java/org/geysermc/geyser/entity/type/TextDisplayEntity.java

Co-authored-by: Konicai <71294714+Konicai@users.noreply.github.com>

---------

Co-authored-by: Konicai <71294714+Konicai@users.noreply.github.com>
2023-11-23 09:51:57 +01:00
chris
119fbc86bc
Don't send an awkward "null" when a exeption disconnect cause doesn't have a message (#4306)
* Don't send an awkward "null" when a cause doesn't have a message

* Fix accidental regression leading to unhandled "CraftingEventPackets"
2023-11-22 21:03:24 +00:00
chris
44174fdc04
Add 1.20.50 Bedrock support (#4296)
* Start on 1.20.50

* Add 1.20.50 block_palette.1_20_50.nbt, creative_items.1_20_50.json and runtime_item_states.1_20_50.json

* fix stone and planks mappings

* add and do something with the new SetPlayerInventoryOptionsPacket

* Add readme version bump

* Cleanup/Explain the new BedrockSetPlayerInventoryOptionsTranslator
2023-11-21 23:31:56 +01:00
chris
118e769976
Fix issues with empty MOTDs - fallback to configured MOTD (#4259)
* Fix issues with empty MOTDs - fallback to configured MOTD

---------

Co-authored-by: Konicai <71294714+Konicai@users.noreply.github.com>
2023-11-14 00:33:34 +01:00
Konicai
bb6a1ec40a
Simply pingpassthrough logic, add fabric ping passthrough (#3930)
* Check if PingPassthrough is null
* Remove QueryPacketHandler
* Fabric ping passthrough
2023-11-13 18:17:40 -05:00
Camotoy
13339f1ed1
Dragon and piglin heads now animate on 1.20.2 servers 2023-11-11 17:14:15 -05:00
chris
81178ba2a0
Reset weather on dimension switch (#4283) 2023-11-11 02:25:02 +01:00
chris
0ebb7232f9
Add SessionDisconnectEvent (#4052)
* Add SessionDisconnectEvent

* Move disconnect event calling to UpstreamSession, debug double calling issues

* Prevent duplicate disconnect calling

* Tidy up disconnection logic, ensure SessionDisconnectEvent is always fired - but only once. Fix /geyser reload command
2023-11-10 23:44:38 +01:00
chris
9dad1acfe5
Feature: Add recipe unlocking on Bedrock edition (#4016)
* Start on 1.20.10+ recipe unlocking system

* Keeping track of multiple Bedrock recipes to unlock for a single Java recipe

* Unlock stonecutter recipes

* Stonecutter recipes

* Unlock tipped arrows/shulker box recipes even when Java doesnt (why..?), and dont send trims if Java doesn't

* Translate FurnaceDataRecipes

* Revert FurnaceRecipe translation, revert stone cutter recipe identifier caching - Bedrock does not need the smelting recipe, and doesn't (un)lock stonecutter recipes (yet...?)

* Remove debug message

* Make decorated pot crafting just a little bit smoother :p

* formatting

* Use itemTag descriptors to fix https://github.com/GeyserMC/Geyser/issues/3784

* Use hashmap instead to store item tag overrides

* remove unnecessary comment

* Address review by @Konicai

* Support for 1.20.30

* undo add whitespace

* Merge upstream, use FastUtil maps, rename a few methods

* Address Camotoy's review

* Fix formatting
2023-11-10 20:45:15 +01:00
chris
f40ca2004e
Add ability to set molang tags for custom items (#4041)
* Start on custom molang tags with custom items

* geyser_custom instead of geyser item tag

* Address reviews, add custom namespace ("geyser_custom") to tags

* use isBlank() instead of isEmpty()

* More efficient item tag setting
Co-authored-by: Konicai <71294714+konicai@users.noreply.github.com>

* tags instead of temp

* Merge in master, adapt to changes in the MappingsReader, delete unused ToolBreakSpeedsUtils class

* oops

* clean diff

* Change namespace from `geyser_custom` to just `geyser`

* Don't force a namespace at all; just like blocks don't

* Tags for items are now, as blocks, NonNull. Additionally, calling the .tags() builder multiple times will not add both sets of tags, but replace the existing tag set

* Remove @NotNull usage in favor of @NonNull

* Allow setting null for tags, but ensure that .tags() is always non-null

* Fix nullable annotation on tags method in the builder interface
2023-11-09 08:44:13 +01:00
chris
aa899af908
Clear bossbars & entity attributes on server switching (#4278)
* This ensures bossbars are cleared on server switch. Additionally, this clears the EntityCache - which should resolve issues around air supply/hearts persisting visually.

* - Also reset attributes on server switch, aswell as air
2023-11-08 00:23:56 +01:00
chris
574dad015d
Fix: Display entities only being visible when directly looked at (#4271) 2023-11-04 18:59:02 +01:00
chris
a559cde654
Move "unknown entity definition" spam to debug level (#4270) 2023-11-04 16:06:23 +01:00
chris
ec526a798d
Send cooldown when punching air (#4257) 2023-11-03 17:22:55 +01:00
chris
121ca11db2
Fix text displays on 1.20.2
It seems like 1.20.2 added one more field to base displays (https://wiki.vg/Entity_metadata#Display), and a few more to text displays: https://wiki.vg/Entity_metadata#Text_Display (#4268)
2023-11-03 16:58:02 +01:00
Kas-tle
8d2ebcf69b
Reduce Frequency of Crashes Due to Dispensers, Droppers, and Chiseled Bookshelves (#4248)
* Revert to subchunk v8; reduces freq of #4240

* Full resolution
2023-10-26 08:16:24 -07:00
Konicai
8173917623 Merge remote-tracking branch 'upstream/master' into feature/1.20.40 2023-10-24 10:37:28 -04:00
chris
b4290d5be4
Versioned potion mappings (#4239) 2023-10-24 01:41:02 +02:00
chris
450e3b61fe
Bring back accidentally removed MTU option (#4229) 2023-10-20 20:14:16 +02:00
Konicai
647a73d9f6
Support 1.20.40 connections 2023-10-19 01:11:59 -04:00
Kas-tle
3fa35b2cb9
Restrict game packets to state; Closes #4191 (#4210)
Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>
2023-10-12 06:02:57 -07:00
EpsilonZunsat
00800acd6a
Fixed incorrect bedrock version of skin mirroring geometry (#4207)
* fix geometry.humanoid.wearingCustomSkull.json's LeftLeg

* fix geometry.humanoid.wearingCustomSkullSlim.json'LeftLeg
2023-10-11 17:15:33 +01:00
chris
e8048ede08
Fix: Skull rotation issues since 1.20.2 (#4200) 2023-10-08 20:33:35 +02:00
chris
3f0e366bac
Fix: Don't rename extensions while the extension directory is being walked (#4197) 2023-10-08 18:04:22 +02:00
chris
3fdd6b41d0
Fix: Beacon effects broken since 1.20.2 (#4199)
Since 1.20.2, effect IDs start at 0, not 1. Bedrock of course doesn't respect that, so we need to subtract 1!
2023-10-08 12:33:17 +02:00
chris
dec62e94e2
Fix: Implement 1.20.30 START_FLYING and STOP_FLYING cases (#4198) 2023-10-08 00:31:23 +02:00
rtm516
30cca70e56
Tell the server we loaded the resource pack (#4183)
* Tell the server we loaded the resource pack
* Decline resource packs if they are not required

---------

Co-authored-by: onebeastchris <github@onechris.mozmail.com>
2023-10-07 22:38:44 +02:00
chris
b340d4d1c4
Add wiki/setup guides to the Geyser config (#4186)
* Added links to Wiki and Setup guide to the config
* implement suggestions
2023-10-05 19:23:14 +02:00
Kas-tle
89d7225c54
Fix API Registration of Custom Block Overrides (#4178)
* Api reg vanilla blockstate overrides; Closes #4177

Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>

* proper case non static

Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>

* Clear queue when done

---------

Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>
2023-10-04 09:56:47 -07:00
chris
3547fab228
Fix: Bedrock clients timing out due to present Java resource packs (#4176)
* fix: auto deny Java edition resource packs

* 1.20.2 bump on Fabric

* bump mcpl

* Bump required min version in the fabric.mod.json file
2023-10-03 17:15:30 +02:00
chris
7983448ce6
Remove Mojang account sign-in option (#4147)
* Remove Mojang auth

* Yeet Connector wrapper, ensure that empty config arrays (e.g. saved user logins) are empty lists instead of null to avoid NPE exceptions
2023-10-03 01:12:54 +02:00
petersv5
7d489c7354
Close threads at server shutdown (#4029)
Co-authored-by: Peter Svensson <petersv@psv.nu>
Co-authored-by: Konicai <71294714+Konicai@users.noreply.github.com>
2023-10-01 18:15:44 -04:00
chris
34ff8c1217
Allow extensions to load other extension's classes, and store extensions by IDs instead of name (#3946)
- the extensionmanagers `extension` method now takes in a extension id instead of name
- extension folders are now created using extension id's
- Extensions can load classes from other extensions now
- Added warning about external class loading
- Wherever applicable: store extensions internally by id instead of name
2023-10-01 07:17:53 +02:00
rtm516
1d75d084a7
Force loading help-text using utf-8 to fix encoding errors (#4165) 2023-09-30 23:18:57 +02:00