Commit Graph

763 Commits

Author SHA1 Message Date
chris 5d95bf65a6
Fix lecterns on 1.20.60, add support for virtual books (#4471)
* Fix lecterns on 1.20.60, start on virtual lecterns

* Fix: virtual books & actual books opening twice, resolve other issues, remove debug

* undo some unnecessary diff

* Don't try to send virtual books to pre 1.20.60 clients

* address review by camotoy
2024-03-02 03:21:31 +01:00
rtm516 3c4a1a82c9
Deprecate unit cube in block components (#4470)
* Depricate unit cube

* Didn't mean to remove that
2024-03-02 01:56:35 +01:00
Redned 97fc2de42f
NeoForge Platform Support (#3781)
* Initial work on Forge platform

* Rework modded platforms to use a common module

* Add support for integrated worlds on modded platforms

* Fix classload errors and move mixins to shared module

* Fix Fabric mixins and check min height in mod world manager

* Add Forge command support

* Add back modrinth publishing

* Don't apply application plugin to shared mod sources

* Fix docs

* Delete unused class

* Clean up repositories

* - Update to 1.20.2
- set custom refmap name
- fixed console commands crashing the server (hasPermission now accepts CommandSourceStack instead of Player)
- Forge wants fastutil relocated, so be it

Current issues:
- ClassNotFound exceptions with classes that are clearly present

* - Fix ClassNotFound errors on Forge due to weird Classloader
- Dont relocate gson

* merge upstream

* oh no

* Bump lombok, architectury-loom

* init: neoforge 1.20.4 support

* NeoForge builds

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

* Archive neoforge artifacts

* transformForge -> transformNeoForge

* Neoforge boots!
* Fix mixins on neoforge
* Update build/pr file names
* Update mods.toml to new neoforge standard
* Fix refmap naming

* more fixes
- no need to include gson
- cleanup nullable/nonnull annotations
- add more info to geyser dumps on neoforge

* yeet platform executor

* yet another temp branch to figure out the runServer task

* yeet transitive dependency, that cant be right

* Attempt at getting the runServer task to work, part two

* Revert the changes for the runServer task, try and shut down the injector

* Remove spigot weird bug workaround, shut down properly
Also add a compileOnly dependency for the mod module to get rid of spammy false warnings

* Update to latest restart changes
- fix duplicate nodes crashing neoforge
- connector -> geyser in GeyserModCommandExecutor
- create command manager early to fix issues with permission gather event

* Consistent NeoForge spelling, move some dependencies to the version toml

* Add lombok to version catalogue

* Add plugins to version catalogue

* revert move to buildSrc

* Create `assets/geyser/icon.png` to reference icon from a single file on standalone/neoforge/fabric

* add fabric permissions api to libs.versions.toml

---------

Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>
Co-authored-by: onebeastchris <github@onechris.mozmail.com>
Co-authored-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>
2024-02-23 17:58:39 +01:00
RK_01 aca368e332
Implemented ViaProxy bootstrap (#4201)
* Implemented ViaProxy bootstrap

* Applied requested changes to code

* Override indra settings to Java 17

* Removed explicit java source/target version

* Added ViaProxy artifact to build.yml

* Added ViaProxy artifact to pullrequest.yml

* Updated ViaProxy API usage

* Implemented floodgate support for ViaProxy

* Depend on stable ViaProxy release

* Initialize command manager and ping passthrough before Geyser#start

* Revert "Initialize command manager and ping passthrough before Geyser#start"

This reverts commit 39356071c4.

* Some ping passthrough improvements

* Merged code properly

* Updated ViaProxy API usage

* Implemented better command handling

* Updated ViaProxy and Geyser API usage

* Combine bootstrap and plugin into one class

* Minor code improvements

* Call Geyser shutdown on plugin disable

* Only call disable if Geyser was enabled once

* Don't send two shutdown done messages

* Use setter for enabled boolean
2024-02-19 22:25:49 +01:00
byquanton 8b170d656e
Fix: Nametags are not shown in some other cases (#4447) 2024-02-15 22:22:46 +01:00
byquanton e97258f625
Fix: Nametags not showing up after respawn (#4445) 2024-02-15 14:57:51 +01:00
chris 6a51d8298f
Feature: Rework startup logic (#4377)
* This makes `geyser reload` work the same across all platforms. For example, it ensures that we reload the config to the greatest extent possible (with the exception of compression/injection settings). Additionally, this clears up issues where Extensions were previously disabled during reloading - instead, the new Pre and Post reload events allow extensions to reload whatever necessary on their own.
2024-02-14 12:50:50 +01:00
chris 19c6648bc2
Fix: Nametags not showing up (#4427) 2024-02-08 17:30:01 +01:00
chris 63fd97ab32
Fix: Crashing due to custom bows/crossbows/tridents (#4421)
* initial stab at fixing crashing due to removal of the chargeable component

* remove hardcoded animation
2024-02-07 18:17:51 +01:00
Kas-tle e6636ec9fe
Weapon component is deprecated (#4417) 2024-02-07 06:15:36 -08:00
chris 19a3dc3c4b
Support Bedrock 1.20.60 (#4415)
* Start on 1.20.60 support

* fix dimension switching

* Fix custom item icons... thanks mojang

* fix custom blocks/custom skulls breaking all block mappings

* - replace 10000 with static final variable

* fix: creative items not being found

* versioned custom item registration

* fix compression level setting
* show 1.20.61 as supported
2024-02-06 20:11:17 +01:00
千飞夏 226a4bb151
Use multiple channels at startup, fix the occasional issue of all pla… (#4329)
* Use multiple channels at startup, fix the occasional issue of all players getting disconnected.

* Standardized shutdown periods and refactored network handlers for improved consistency.

* tiny fix

* Let's use the system property

---------

Co-authored-by: chris <github@onechris.mozmail.com>
2024-02-02 16:25:50 +01:00
chris f555dc0a92
Feature: Camera/Input locking API (#4332)
Adds API methods to control player cameras - including fancy transitions,  color fades, or simple input locks.
2024-01-31 11:21:06 +01:00
rtm516 07150db592
Fix language key typo when floodgate encryption fails (#4412) 2024-01-28 22:49:47 +00:00
chris 61b3ffd0de
Feature: Allow setting a different port in the motd (#4293)
* Allow changing the broadcasted port using a system property. This may be needed if the port Geyser runs on & the port Bedrock players connect on do not match - e.g. due to port forwarding/different routing.

* initial stab at making the broadcast port an (unsafe) config option

* Automatically set broadcast port to be the bind port unless manually overridden

* Warn about broadcast port mismatch

* Use 0 instead of -1 as indicator to broadcast the port geyser is running on
2024-01-24 22:28:03 +01:00
rtm516 3f577f4128
Add fetching MC versions and Console from the extensions API (#4168)
* Add fetching MC versions and Console from the extensions API

* Address reviews, expose custom MinecraftVersion interface

* Rename of McVersion -> MinecraftVersionImpl; proper nonnull annotation

* fluent consoleCommandSource(), change MinecraftVersion#name() to versionString()

* Javadocs adjustments

* Create impl package and move `MinecraftVersionImpl` there

* api version bump

---------

Co-authored-by: onebeastchris <github@onechris.mozmail.com>
2024-01-24 22:20:30 +01:00
chris 97ba6a25e6
Don't warn if clients send subchunkrequest packets (#4395) 2024-01-24 21:18:09 +01:00
chris 7bcecdf403
Fix: Opening inventory menus in spectator mode (#4407)
Revert to spectator_viewer instead of the native Bedrock spectator menu. While it looks uglier - e.g. it's showing health/hunger bars; it allows opening menus. It'll also be needed for entity spectating, since clicking on things isnt possible in bedrocks spectator mode
2024-01-23 00:34:53 +01:00
chris 87779dca88
Gracefully handle invalid stone cutter recipes (#4406)
* Gracefully handle invalid stone cutter recipes

Further various little fixes:
- bump source version in AP to 17 to silence build log spam
- remove unneeded close() on auto-closable resource
2024-01-22 19:21:12 +01:00
chris 16f9f0d94f
Don't try to show the server settings form to players who are not logged in (#4387)
* Don't show the server settings form to players who are not yet logged in

* Add brackets to if statement
2024-01-20 12:03:32 +01:00
Camotoy 7613bdbafe
Fix https://github.com/GeyserMC/Geyser/issues/4378 2024-01-04 13:49:01 -05:00
chris 46bde0c019
Fix: protocol being null during online mode login (#4369)
* fix: protocol being null during online mode login

* gimme more space

* add debug logging for too early downstream packet sending
2023-12-31 02:24:44 +01:00
Kas-tle b0ccf45cd4
Closes GeyserMC/Geyser#4358 (#4360)
Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>
2023-12-23 18:06:06 -08:00
Tim203 58ff00db96
Fixed an issue where there would be a null score in SetScorePacket 2023-12-16 23:42:59 +01:00
Konicai a13492e0ed Final 1.20.4 cleanup 2023-12-14 21:31:14 -05:00
Konicai d3a4b13364 cleanup 2023-12-14 21:31:14 -05:00
Konicai 21a2c2332f translate trial spawners, cleanup 2023-12-14 21:31:14 -05:00
Konicai 22009054ab Crafter translation 2023-12-14 21:31:14 -05:00
Konicai e2062dd182 Reimplement support for 1.20.40 2023-12-14 21:31:14 -05:00
Konicai 701e567818 Enable 1.21 experimental features 2023-12-14 21:31:14 -05:00
Konicai c7da8fe163 Better nullability annotations/handling for ItemStacks 2023-12-14 21:31:14 -05:00
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
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