Commit graph

1149 commits

Author SHA1 Message Date
Joshua Castle
652f6af784
Fix custom skulls 1.20.5
Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>
2024-04-24 18:13:07 -07:00
Camotoy
9d540fe672
Shulker box NPE fix 2024-04-24 16:41:02 -04:00
Camotoy
b29e0d9d10
Move MCProtocolLib to dev - package ID change 2024-04-24 16:39:35 -04:00
AJ Ferguson
9490a091b5
Calculate horse inventory size 2024-04-24 16:26:59 -04:00
Camotoy
a1534e4535
Basic Armadillo structure 2024-04-24 16:26:59 -04:00
AJ Ferguson
bbaffb2ab3
Wolf interactions 2024-04-24 16:26:59 -04:00
Camotoy
c54624fb26
Fix some cases of empty tags being needed 2024-04-24 16:26:59 -04:00
Camotoy
abea0131e4
Fix llama carpets 2024-04-24 16:26:59 -04:00
Camotoy
b81408820b
Refactor TagCache to be extensible
Previously, for any new tag, we would have to add a field, add the line to load it, add the line to clear it, and make a method for that tag. Now, you just add an enum.
2024-04-24 16:26:58 -04:00
onebeastchris
c48428daf0
init: pick item component change 2024-04-24 16:26:58 -04:00
AJ Ferguson
9d8edad9fc
Fix horse inventory 2024-04-24 16:26:58 -04:00
Joshua Castle
3f499e3ec0
Start on custom skulls
Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>
2024-04-24 16:26:58 -04:00
AJ Ferguson
1bdbcab4e8
Wolf variants 2024-04-24 16:26:58 -04:00
AJ Ferguson
d3f902ae34
Banners 2024-04-24 16:26:58 -04:00
Camotoy
11f79d4e2c
Refactor Java registry storage; implement trim support 2024-04-24 16:26:58 -04:00
onebeastchris
6a5efa3c9d
Start on 1.20.5 mod platform support - NeoForge (temporarily) excluded
Also fixes lecterns, and block break speed calculations
2024-04-24 16:26:58 -04:00
Camotoy
c34f0f2c3b
Update for latest MCProtocolLib 2024-04-24 16:26:58 -04:00
basaigh
dac5f69d47
Bump mcpl 2024-04-24 16:26:58 -04:00
AJ Ferguson
8381a148fc
Fix book signing 2024-04-24 16:26:58 -04:00
onebeastchris
c5e02d28e6
ensure geyser builds 2024-04-24 16:26:58 -04:00
onebeastchris
b73f23de0f
remove global palette bits, fix nullable block entity tags 2024-04-24 16:26:58 -04:00
basaigh
57ce5706ee
Update mappings submodule 2024-04-24 16:26:58 -04:00
Camotoy
61907b1851
Little more work 2024-04-24 16:26:57 -04:00
Camotoy
687ddbb520
Tiny fixes 2024-04-24 16:26:57 -04:00
AJ Ferguson
ab8832b771
Compiles 2024-04-24 16:26:57 -04:00
Camotoy
8bd2df0828
Trying to get more compiled but brain is officially fried for the day! 2024-04-24 16:26:57 -04:00
basaigh
94e533ea7c
Fix tags and attributes 2024-04-24 16:26:57 -04:00
Camotoy
aed7f1bed7
Update the item parts 2024-04-24 16:26:57 -04:00
basaigh
6d8021f155
Update the non-item parts (#4586)
* Update the non-item parts

* Add MaceItem

* Fix registry data loading
2024-04-24 16:26:57 -04:00
Camotoy
909139326d
Keep chugging away 2024-04-24 16:26:57 -04:00
Camotoy
c1edf20734
Here's the idea so far 2024-04-24 16:26:57 -04:00
Camotoy
099e968bde
Initial, incomplete pass at Java 1.20.5 2024-04-24 16:26:57 -04:00
Kas-tle
2471de100b
Add system property Geyser.RakSendCookie to allow disabling cookie send (#4598) 2024-04-24 06:56:15 -07:00
AJ Ferguson
c19b4ad306
Check if boat is valid when updating paddles (#4597)
* Check if boat is valid when updating paddles

* Add comment

* Refactor boat paddling to use ticks

* Null check
2024-04-24 05:41:57 -07:00
AJ Ferguson
16385a4e2b
Check if session is closed when running scheduled tasks (#4595) 2024-04-24 01:39:37 -04:00
Kas-tle
3bd5ab7f35
Use old SetEntityMotionSerializer for codec < 662 (#4593) 2024-04-23 11:23:09 -07:00
Camotoy
d706e9e70f
Serialize disconnects 2024-04-23 12:34:24 -04:00
Kas-tle
3fa7952936
1.20.80 Support and Protocol Changes (#4561)
* Make evil more harder

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

* Deregister more unused packets

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

* Add more unused packets

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

* Pin protocol to 68dc192

* Correction

* Update Protocol

* More kicking

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

* stop reading when there is no item to read (#9)

* Bump protocol

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

* 1.20.80

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

* Remove unused postinitchannel GeyserServerInitializer

* Pull protocol jitpack from cloudburst again

* Actually builds

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

* Bump protocol to fix BossEventPacket & EmotePacket

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

* Add remove before merge comment

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

* Bump protocol to fix BlockEntityDataPacket and ignore serverbound BossEventPacket

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

* Bump protocol & add more illegal/ignored packets

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

* Remove deprecated packet

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

* Ignore ClientCacheStatusPacket instead of disallow

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

* Define static serializers

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

* Less static class nonsense more correct order

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

* Remove unused import

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

* Bump protocol

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

* Move codec processing to CodecProcessor

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

* Falsify recipe symetry assumption

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

* Update Protocol for 2 wrong packet IDs & 5 wrong directions

* Jitpack protocol from Geyser repo

---------

Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>
Co-authored-by: chris <github@onechris.mozmail.com>
2024-04-23 09:16:18 -07:00
AJ Ferguson
810c9ced72
Fix filled cauldrons only showing as water (#4585)
* Fix filled cauldrons only showing as water

* Update comment
2024-04-20 17:21:39 -04:00
Kas-tle
525a9ccec4
Fix Preview Workflow (#4583)
* Fix preview workflow

* Correct path to artifacts

* Uncomment repo checks

* Don't enforce repo/branch on preview deploy

* Correct paths-ignore for build
2024-04-20 02:47:00 +01:00
chris
94f664ad8d
Fix: Properly check whether the so_reuseport socket option is available (#4579)
* Try to properly check if so_reuseport is available

* io_uring "support"

* comment out io_uring, for now

* Make IO_uring opt-in via `-DGeyser.io_uring=true` flag

* dont include io_uring

* oops - bungee 

editing on mobile is hard

* oops - spigot

* oops - velocity

* properly exclude all io_uring on all platforms except standalone

---------

Co-authored-by: Kas-tle <26531652+Kas-tle@users.noreply.github.com>
2024-04-19 11:50:40 +02:00
AJ Ferguson
c3ffd65f48
Fix default wolf and cat collar color (#4582) 2024-04-19 05:41:06 -04:00
ookiegajwa
0cc2921eda
Translate scoreboard display name and number format (#4567)
The following caveats apply because selectively removing or modifying the score numbers on Bedrock cannot be done without removing all of them:
* "blank" and "styled" number formats are ignored for "list" and "sidebar" display slots
* The "fixed" number format is appended to the end of the "list" and "sidebar" entry names instead of replacing the score number
* The "below_name" slot has no limitations and displays identically to Java
2024-04-18 21:23:33 -04:00
AJ Ferguson
815456c549
Reset metadata and attributes if needed when respawning (#4566)
* Reset metadata and attributes if needed when respawning

* Minor edits

* Reset attributes in JavaLoginTranslator

* Fix client bug when updating absorption and health in the same tick
2024-04-18 00:16:41 -04:00
AJ Ferguson
576a1b7d7a
Remove map cache (#4576) 2024-04-17 17:53:56 -04:00
chris
7a20a190a0
Feature: Structure block translation (#4521)
* ported camotoy's attempt of implementing structure blocks, removal of a few TODO's

* no more parsing of java structure templates

* Don't attempt to re-request structure size

* ensure we can load structures in even if we know the size

* init: send correct structure size/offset/rotation to java, not fully working yet

* restore offsets so we are sending correct values to the java server regarding where we want the structure to be placed

* something something mirror

* attempt at proper offsets for mirroring AND rotations. this was not fun at all

* rotation, mirror, offsetting all seem to work

* undo import changes

* fix NPE

* Proper handling of empty structures, ensure that we can clear the structure block outline when a zero vector was sent for structure size

* oops

* Update core/src/main/java/org/geysermc/geyser/session/cache/StructureBlockCache.java

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

* Update core/src/main/java/org/geysermc/geyser/translator/level/block/entity/StructureBlockBlockEntityTranslator.java

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

* Update core/src/main/java/org/geysermc/geyser/translator/protocol/bedrock/BedrockStructureBlockUpdateTranslator.java

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

* Update core/src/main/java/org/geysermc/geyser/translator/protocol/bedrock/BedrockStructureTemplateDataRequestTranslator.java

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

* consolidate java structure sending into one method

* fix merge conflict
---------

Co-authored-by: rtm516 <rtm516@users.noreply.github.com>
2024-04-17 23:21:25 +02:00
AJ Ferguson
c8475d8100
Always remove entities from cache (#4577)
* Always remove entities from cache

* Despawn throwable entities in the void
2024-04-17 03:18:17 -04:00
Kas-tle
5151c25e1a
Support RakNet Cookies (#4554)
* Support cookies

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

* Use cloudburst upstream raknet

* Comment out mavenLocal()

---------

Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>
2024-04-16 20:52:46 -07:00
rtm516
e856a8af84
Fix user agent strings (#4562) 2024-04-12 13:12:38 +01:00
Eclipse
ca0e226aac
Fix breaking of custom head blocks added by Polymer by adding a default fallback to block mappings (#4557) 2024-04-11 03:05:15 +02:00
Camotoy
fa2e4e5a94
Reduce processing for incoming TrimDataPackets 2024-04-07 22:44:58 -04:00
Denys Loshkarev
3d9f3ac645
Show 1.20.73 as being supported (#4543)
* update version supported by plugin

* Update README.md
2024-04-07 01:12:56 +03:00
Eclipse
1819ed4dbd
Remove Java custom armor trims when translating item to Bedrock to prevent visual issues (#4548)
* Fix (or workaround) armor items with custom armor trims having no texture on bedrock

* Fix armor items with custom trims causing issues on entity models by removing the Trim tag entirely

* Refer to minecraft namespace inline for consistency
2024-04-04 11:55:00 -07:00
rtm516
47237e07b7
Fix block custom registration failing with simmilar named items (#4540) 2024-04-02 00:10:12 +01:00
Kas-tle
08aa5282d4
Ensure proxiedAddresses is not null before lookup (#4539) 2024-04-01 15:50:58 -07:00
Sage
fa441f1c7b
Add ConnectionRequestEvent (#4533)
* Add ConnectionRequestEvent and implement it

* Add debug message and use InetSocketAddress instead of string

* Provide both proxy and real client ip

And add some minor javadocs

* Make ProxyIp nullable

* Apply changes from pr

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

* Apply changes from pr

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

* Apply changes from pr

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

* Bump API version

* Dont JiJ common on mod platforms

---------

Co-authored-by: rtm516 <rtm516@users.noreply.github.com>
Co-authored-by: Kas-tle <26531652+Kas-tle@users.noreply.github.com>
2024-04-01 14:33:12 -07:00
Kas-tle
c9ca4c82f7
Allow configuration of RakNet limits (#4532)
* Allow configuration of RakNet limits

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

* Validate packet limiter system properties

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

---------

Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>
2024-03-31 21:42:31 -07:00
rtm516
fbafdbb2a7
Allow NonVanillaCustomItemData to have a block assigned (#4530) 2024-03-31 12:01:59 +01:00
chris
85908690a3
Revert inventory "fix" that's causing issues with quickly opening & closing inventories (#4523) 2024-03-27 01:47:21 +01:00
rtm516
4ea94f89a2
Fix entity pick request for cherry and bamboo boats (#4522) 2024-03-24 21:30:00 +00:00
CloudyOrk
c64e8afcce
Indicate existing 1.20.72 support (#4515)
* update supported version

* Update GameProtocol.java

* Update GameProtocol.java

---------

Co-authored-by: Kas-tle <26531652+Kas-tle@users.noreply.github.com>
2024-03-22 12:03:17 -07:00
chris
4fa0bcd01b
Update Jackson (#4512)
* Update jackson

* relocate yaml on velocity
2024-03-21 19:05:41 +01:00
chris
b03818a0c4
Add attack damage indicator to custom items (#4495) 2024-03-18 19:41:36 +01:00
chris
112f4ddb8d
Fix: Inventory handling when client tries to open the player inventory when it shouldn't (#4499)
* attempt at fixing <https://github.com/GeyserMC/Geyser/issues/4497>

* Fix wrong handling of OPEN_INVENTORY case in BedrockInteractTranslator
2024-03-15 17:33:48 +01:00
chris
c3d4277ae6
More error-robust kernel version parsing (#4496)
* should resolve https://github.com/GeyserMC/Geyser/issues/4492

* Use regex to parse version

* yeet debug

* Only log the throwable message
2024-03-15 13:52:34 +01:00
chris
c91ee53788
Fix virtual lecterns - again (#4494) 2024-03-14 10:27:49 +01:00
chris
39b05e284e
update protocol lib to resolve command crashing (#4493) 2024-03-13 12:25:30 -07:00
Kas-tle
a9467cf150
Temporary bad fix for command crashing (#4490)
Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>
2024-03-13 02:54:39 -07:00
Kas-tle
7e4d97f6e1
Fix wooden slabs (#4489)
* Fix wooden slabs

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

* Update submodule

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

* Also indicate 1.20.71 support

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

---------

Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>
2024-03-13 02:05:41 -07:00
Kas-tle
1df63c6de8
Support Bedrock 1.20.70 (#4477)
* Support 1.20.70

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

* Update readme

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

* Use 1.20.70 mappings

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

* Creative lectern drops work but not survival yet

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

* Fix lectern book pickup in survival

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

* Add copyright notices to new files

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

* Temp fix for incorrect creative_items from Cloudburst/Data

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

* Fix item frame breaking in creative

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

* Clarify what to remove when 1.20.60 support is dropped

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

* Don't use dim change enum pre 1.20.70

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

---------

Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>
2024-03-11 00:29:27 -07:00
Kas-tle
a0fd720e7c
Fix client crash issue if empty recipe is sent (#4485)
* Fix client crash issue if empty recipe is sent

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

* More efficent order

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

* Recipes are recipies

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

---------

Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>
2024-03-11 00:03:37 -07:00
chris
0ad7c4325d
Fix: Workaround for recipes involving custom items to show up in the recipe book (#4484)
* Allow adding custom items to the creative inventory in order for recipes outputting said custom items to work

* yeet includeInCreativeInventory as it would break existing nonvanilla extensions - and is pretty pointless anyways

* rename mappings to `creative_group` and `creative_category`

* delete outdated comment
2024-03-10 23:38:38 +01:00
Kas-tle
527eab0b58
Cap render distance at 96 (#3530)
Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>
Co-authored-by: onebeastchris <github@onechris.mozmail.com>
2024-03-09 04:51:32 +01:00
chris
32f66371d9
Should resolve https://github.com/GeyserMC/Geyser/issues/4121 (#4481) 2024-03-08 21:30:17 +00:00
rtm516
1af24e5547
Add new village map icons (#4480) 2024-03-08 21:24:15 +00:00
chris
79154f3d0c
Fix: Lecterns not opening when there is no lectern cache (#4476)
... the LecternCache doesn't always exist. Oops.
2024-03-04 00:39:57 +01:00
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
9b53f2efd1 Update 1.20.50 creative items to include experimental items
also remove the old unused ones
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
f0e983977a update mappings 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
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
Konicai
c2cd99c829
Support Java 1.20.2 (#4112)
* Initial pass for 1.20.2, compiling
* Remove unused level events
* handle null GameProfile in ClientboundPlayerInfoUpdatePacket
* Handle level events BRUSH_BLOCK_COMPLETE and EGG_CRACK
* Account for null tag in DecoratedPotBlockEntityTranslator
* Explicitly show that 1.20.31 is supported
2023-09-29 17:14:49 -04:00
Spongecade
5276a1e2ba
Update Minecraft Wiki links to new domain (#4151) 2023-09-27 07:55:54 -07:00
chris
ae983779ba
Fix: Don't allow client side gamemode changes even if rogue plugins send a level 4 op permission... (#4148) 2023-09-25 22:54:23 +02:00
Valaphee The Meerkat
dead91b929
Set BlockMapping.AIR (#4135)
* Set BlockMapping.AIR, id is always 0, but this also ensures that the palette always has air

* Rename BlockMapping.AIR to DEFAULT, as it does not have to represent AIR, and statically set it
2023-09-20 06:52:37 -07:00
chris
a443265e1d
Don't block chunk loading if an invalid skull is found (#4129)
* Add null check in case skull texture value is null

* Use variable for future result
2023-09-18 22:56:20 +02:00
Konicai
9a8015e8b6
Support Bedrock 1.20.30 (#4115) 2023-09-11 22:22:50 -04:00
Camotoy
c67d50c13e
Some formatting fixes and creative menu fix 2023-09-09 13:23:19 -04:00
chris
806ec35a84
Feature: Allow client-side "game settings" menu gamemode/difficulty changes (#4062)
Removes difficulty/Gamemode settings from the custom server settings form since these are now present in the client side settings.
2023-09-09 00:34:19 +02:00
chris
007edcbf11
Fix: Update inventory names (#4106)
Ensure inventory name updates used for e.g. JsonUI work properly.
2023-09-09 00:13:57 +02:00
chris
acf24d4d6b
Revert sending actionbar messages as jukebox, avoid pink system chat overlays (#4066)
System chat overlays too aren't pink anymore - they're still sent as jukebox for better visibility though.
2023-09-07 09:07:42 +02:00
chris
3ec591509c
Fix forced zoom issue when switching into spectator mode (#4093)
* init: spectator mode support

* properly set second abilitylayer for spectator mode

* Fixes https://github.com/GeyserMC/Geyser/issues/3318 by not sending changed flags in spectator mode
2023-09-06 18:13:19 -04:00
Valaphee The Meerkat
54bb1f3d13
Remove blockstate version (#4011)
* Remove blockstate version

* Regr, add comment why version tag is removed
2023-09-06 11:19:51 -07:00
chris
0d5cb51d5f
Make geyser connectiontest command more foolproof (#3951)
Co-authored-by: Camotoy <20743703+Camotoy@users.noreply.github.com>
2023-09-05 23:16:44 -04:00
Kas-tle
bf81fc1139
Allow Null Texture for Block Mappings/API (#4094)
* Allow null textures for blocks.json use

* Missing semicolon
2023-08-31 10:09:14 -07:00
Konicai
d4ae428225
Drop support for 1.19.80 (#4091)
* Initial removal of any 1.19.80 logic
* Re-add isPre1_20_1 method
2023-08-29 16:58:51 -04:00
chris
ec5a20113d
Fixes thrown error when skull skin cache doesnt exist (#4082) 2023-08-29 13:23:08 -07:00
chris
00def3b0c6
Fix duplicate extension's help command permission registration on Paper (#4079)
* Fix duplicate permission registration

* Register /<extensionid> help (and aliased ?) commands under the "geyser.command.exthelp.id" permission

* Fix: Show correct header for /geyser help vs /<extensionid> help
2023-08-27 13:48:14 +01:00
rtm516
48ecde0f19
Allow srv resolving to be set per remote server (#4076)
* Allow srv resolving to be set per remote server

* Remove resolve-srv as a config option
2023-08-26 22:51:30 +01:00
chris
90c4ea78a7
Don't throw errors when loading chunks with invalid skulls (#4081)
* Don't throw errors with invalid skulls

* Move IllegalArgumentException check to loadFromJson() method
2023-08-24 14:32:25 -07:00
Kas-tle
9ddfdf9374
Add support for custom blocks and skulls (#3505)
* Super cursed custom skulls custom block

* Rename some stuff

* Attempt to clean up some code

* Remove skull translation events and define custom blocks for custom skulls

Clean up skull block translation a bit

* Auto generate skull resource pack

Change `davchoo` to `geyser` in geometry

* Add config options for custom blocks and custom skull blocks

* Fix formatting and names for player skulls

* Use block states more efficiently for custom skulls

21 block states vs 48 block states

* Clean up custom block api a bit

* Apply some suggestions from Camotoy

* Move custom skull config stuff to its own file

Custom skulls can now be added by username, uuid, and textures

Move skull nbt stuff from requestTexturesFromUsername to
SkullBlockEntityTranslator
Add requestTexturesFromUUID

* Update custom block nbt for v534

* Disable collision box & selection box when box is empty

Fix incorrect collision names used in CustomBlockComponentsBuilder

* Add custom block stuff to provider registry loader

* More API changes

Convert CustomBlockPermutation into a record
Change materialInstances in CustomBlockComponents Builder to
materialInstance
Reuse box components in CustomSkull

* Convert skull floor geometries into a template

Should be easier to modify in needed in the future.

* Crop and reorder skull textures to eliminate unused space

Should reduce memory & storage usage for Bedrock clients

* Revert "Crop and reorder skull textures to eliminate unused space"

This reverts commit 15fd5353e1.

* Use identifier from CustomBlockData in SkullResourcePackManager

* Fix isIncorrectHeldItem check for custom skull blocks

Add defaultBlockState to CustomBlockData

* Fix adding duplicate block states for custom blocks with 0 properties

Remove defaultBlockState CustomBlockState field from
GeyserCustomBlockData since it creates a circular reference

* Add basis for overriding Bedrock block states

Fix missing providers when used in GeyserDefineCustomBlocksEvent

* Fix custom blocks in 1.19.50

* Decouple mappings from items

* Decouple mappings from items

* Null check

* Move to CustomBlockRegistryPopulator

* Remove name_hash from blocksTag/vanillaBlockStates

Fixes creative inventory contents with custom blocks registered

* Limit Bedrock versions to 1.19.40+

Custom blocks were released in 1.19.40

* Un-revert Crop and reorder skull textures to eliminate unused space

Should reduce memory & storage usage for Bedrock clients

Bug with top face flipping + per-face uv's was fixed in 1.19.40+
https://bugs.mojang.com/browse/MCPE-160073
Geometry is still offset by 0.5 to prevent lighting bugs

* Add validation custom block components and s/lightFilter/lightDampening/

Also validate custom block names

* Add display name component and add toggle for client block placing

The display name component allows blocks to use other locale keys.
placeAir will prevent the client from placing the default block state.

* Begin parsing block mappings (still much to do!)

* CustomBlockMapping stores block w/ all states

* Mappings almost :/

* Ok now they work at least

* Read most mapping components

* Block mappings mostly done

* Translate block item

* Add docs for custom blocks

* Add tags

* More docs

* Accidentally added name comp.

* Fix collide box and warn for >16 props

* add registerBlockItemOverride event + refactor

* Inventory overrides for multistate bedrock blocks

* Implement all remaining block components

* Minor cleanup and javadocs

* Update custom skull config example

* Address @Camotoy's review

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

* Fix light_emission and light_dampening components

* Remove redundant populate method and remove BLOCKS_JSON after last use

* Fix inventories with block state overrides not opening

* API event for skull blocks & let register via URL

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

* Use skin hash instead of URL

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

* Address @davchoo's review

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

* Rework MappingsReader_v1 to avoid passing maps around

* Treat all properties as string properties

There isn't a real need to check for boolean and int properties

* Fix block registry scan in MappingsReader

* Skin hashes can have less than 64 characters?

* Include entry when logging exceptions from block mappings

* Submodule

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

* Fix block break speeds thanks to @Camotoy

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

* Temporarily fix build on eclipse so I may work...

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

* Custom tool breakspeed by server; Closes #3348

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

* Account for if custom skulls are added on 1st run

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

* Initial framework for extended collision boxes

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

* Add some notes for the extended collision box impl

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

* We have our extended collision registry

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

* Notes for me

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

* Extended collision boxes almost work

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

* Extended collision boxes actually work

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

* Consider all hitboxes in calculation

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

* X is mirrored...

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

* Extended collision boxes are much improved

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

* Upstream fallout

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

* Address @Redned235's review

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

* Oops my bad that makes no sense :)

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

* Ext collision box chunk translation optimization

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

* Trunc skinhash to 32 chars due to 80 char limit

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

* Use new transformation cmpnt vs legacy rotation

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

* keep arr null on get extcolstor

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

* Properly handle if extended collision box is below

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

* Less ugly (realized it can go here)

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

* Prevent 2x placement due to extended collision box

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

* Properly build on eclipse via indra

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

* Ensure enough bits in bedrockData for paletteIDs

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

* Fix not needed whitespace

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

* Update license headers to 2023

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

* Use release indra over snapshot

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

* Revert "Update license headers to 2023"

This reverts commit f750059e8e.

* Account for collisions in chunk section y0 layer

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

* Fix extended collision @ air section bottom

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

* Address @davchoo's review

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

* Address @rtm516's review

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

* More @rtm516's review

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

* Address @Camotoy's review

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

* Update javadocs

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

* Address @davchoo's review

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

* Lock extended collision to section

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

* Clear ext col even when air

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

* Let override vanilla items in creative inventory

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

* Avoid creating 12 HashSets for every overrided block state

* Super minor nitpicks + Custom Skull NBT fix

* Check custom skull is within Bedrock bounds

Fixes NPE with custom skulls above y=320 or below y=-64

* Add static builder methods to match CustomItemData API

* Upstream

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

* Initial API setup for modded blocks (no impl yet)

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

* More work on nonvanilla blocks (nonfunctional)

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

* Fix compile

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

* Update submodules

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

* Modded reg so far (not done)

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

* Add non-vanilla registration and fix a few bugs

* Fixes for non-vanilla blocks

* Remove import

* CustomRegPop. go1st for now; must split for modded

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

* Address silent change to geo component for blocks

Co-Authored-By: Unoqwy <pm@unoqwy.dev>
Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>

* Seperate bedrock, vanilla, & nonvanilla block reg

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

* Single event

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

* Impl MaterialInstance as builder per @Redned235

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

* Added creative category enum & added some missing overrides (#7)

* Add material instance to provider registry

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

* oops

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

* Fix case of correctBedrockIdentifier not found

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

* Fix docs

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

* Address @Camotoy's review

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

* Address review from @davchoo

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

* Set namespace of custom blocks vs ident direct

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

* Address review from @rtm516

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

* One more

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

* Remove rogue space

* Geo component as builder

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

* use super name

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

* Bump version

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

---------

Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>
Signed-off-by: GitHub <noreply@github.com>
Co-authored-by: davchoo <davchoo@users.noreply.github.com>
Co-authored-by: davchoo <4722249+davchoo@users.noreply.github.com>
Co-authored-by: Unoqwy <pm@unoqwy.dev>
Co-authored-by: RednedEpic <redned235@gmail.com>
Co-authored-by: ImDaBigBoss <67973871+ImDaBigBoss@users.noreply.github.com>
Co-authored-by: rtm516 <rtm516@users.noreply.github.com>
2023-08-21 16:04:08 -07:00
Konicai
661a9b4741
Improvements to MessageTranslator (#3803)
* Renames for clarity and refactor convertToJavaMessage
* Bump adventure, velociy. Require CharacterAndFormat in MessageTranslator
* Fix deprecations related to DummyLegacyHoverEventSerializer
* Patch serialization of ScoreComponent until Adventure 1.15.0
2023-08-17 23:07:55 -04:00
chris
706d1b9627
Fix smithing tables on pre-1.20 servers (#4056) 2023-08-16 22:42:17 -04:00
Adam Chance
505c065956
Update Geyser download URL (#4045)
* Update Geyser download URL

* Use existing constant instead of duplicating string
2023-08-08 10:18:43 -07:00
Kas-tle
941275586d
Use chunk version 9 (#4040)
Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>
2023-08-07 08:01:10 -07:00
chris
2361f587da
Don't send softEnumPackets when command suggestions are false (#4037)
* Don't send SoftEnums if command suggestions are set to false, add system property to not send team suggestions

* address review
2023-08-06 17:39:27 -07:00
chris
b1f04a9012
Allow custom unusable-space blocker item (#4038)
* Allow the "unusable-space-block" to be a custom item (specified by bedrock identifier)

* add space for log error

* don't use ugly atomic reference
2023-08-06 17:22:05 -07:00
chris
176ef83ed1
Fix fox height/width (#4039) 2023-08-06 17:15:13 -07:00
Konicai
7b409fd55b
Cache the Keep Alive timestamp for forwarding ping (#4002)
* Cache the (clientbound) Keep Alive timestamp and use that for forwarding ping
* Use a Queue of keep alive IDs to handle KeepAlive packets sent in succession
* Don't force NetworkStackLatencyTranslator on the session's event loop
* Send clientbound NetworkStackLatencyPacket immediately
* Avoid sending negative NetworkStackLatencyPackets that are not from the form-image-hack in FormCache
* Downsize timestamps that would lead to overflow on the client
2023-08-01 10:58:59 -04:00
Konicai
d89b55e9ac
Ignore invalid animations in ClientboundAnimatePacket (#4025) 2023-07-31 16:56:28 -04:00
Roman Alexander
7725651726
Fix double sending ServerboundPlayerActionPacket in creative (both of which Spigot interprets as a BlockBreakEvent) (Fixes #4021) (#3996) 2023-07-30 13:48:29 -07:00
chris
d147ee37dc
send system chat overlay and actionbar as jukebox_popup messages (#3941)
* send actionbar and systemchat overlay messages as jukebox text to avoid clashes with armor/air UI

* add explaining comment
2023-07-29 16:51:16 -07:00
Konicai
3949fb1988
Check if Items of campfire block entity is null (#3986)
* Check if items of campfire block entity is null
* Use instanceof for Items
2023-07-25 13:33:50 -04:00
Konicai
19914a5d7a
Update enchanting table use sound (#4007) 2023-07-22 17:32:13 -04:00
chris
b17191b553
Fix /playsound command by stripping only the Minecraft namespace (#3956)
Fixes https://github.com/GeyserMC/Geyser/issues/3953
2023-07-21 22:25:09 -04:00
Camotoy
966270d3c8
Fix missed swing on 1.20.10 2023-07-21 19:25:01 -04:00
Konicai
396f4e4900
Update latency translator for 1.20.10 (#3993) 2023-07-17 14:45:45 -04:00
chris
340be2d8a4
fix observer mapping (#3970) 2023-07-12 13:21:29 -04:00
Konicai
3a0c1b788a
Support for 1.20.10 (#3961)
Co-authored-by: chris <github@onechris.mozmail.com>
Co-authored-by: RednedEpic <redned235@gmail.com>
2023-07-11 18:17:01 -05:00
chris
cc6bbf9902
fix https://github.com/GeyserMC/Geyser/issues/3948 (#3955) 2023-07-08 21:36:08 -04:00
chris
872d7e3bb6
let boats not sink down, use less choppy (but faster) animation (#3949)
* let boats not sink down, use less choppy (but faster) animation

* remove passenger check since that always returns true
2023-07-07 18:14:38 -04:00
chris
d1357df8f5
fix https://github.com/GeyserMC/Geyser/issues/3938 (#3947) 2023-07-06 10:19:02 -07:00
Camotoy
0e3e2d0e28
Remove unused file 2023-07-04 19:18:12 -04:00
Camotoy
d44e599925
Fix #3905 2023-07-04 18:06:05 -04:00
Konicai
ff05c98690
Camera shake and fog effect api (#3931) 2023-07-02 17:00:46 -04:00
Konicai
b344e21f7f
Fix loading contents keys of encrypted resource packs (#3925) 2023-06-29 12:22:13 +01:00
Tim203
99671960d0
Merge remote-tracking branch 'origin/master' into jwt-changes
# Conflicts:
#	core/src/main/java/org/geysermc/geyser/registry/populator/BlockRegistryPopulator.java
#	core/src/main/java/org/geysermc/geyser/registry/populator/ItemRegistryPopulator.java
#	core/src/main/java/org/geysermc/geyser/util/LoginEncryptionUtils.java
2023-06-27 12:12:31 +02:00
Konicai
c7568ec889
Move to a text box for commands on Geyser standalone GUI (#3915) 2023-06-26 14:44:25 -04:00
Konicai
cdd0459d47
Implement interaction entity (#3916) 2023-06-26 12:04:28 -04:00
Konicai
8aed471ba0
Fix serverbound hanging sign updates (#3904) 2023-06-22 18:05:07 -04:00
Amberichu
70db98eeaf
Fix updating villager trade experience (#3906)
* Fix villager experience not updating

Remove unnecessary fake trade experience stuff

* Hide trade level for wandering traders
2023-06-22 17:38:05 -04:00
Konicai
50d7f56aaf
Update piglin head variants (#3901) 2023-06-20 08:28:51 -05:00
DeveloperDragon
50d3945477
Fix/proxy protocol missing message (#3898)
* Show proxy protocol ip for debug message

* Make sure that first message that contains proxy protocol also gets sent. This caused issues with serverlists and console players
2023-06-20 08:28:31 -05:00
Amberichu
811aba3339
Validate written_book tags and fix writable book losing changes (#3894)
* Validate NBT tags of written_book like Java edition

* Update page count and character count limits

The maximum number of characters allowed in Java's book edit screen is
1024 for each page and 16 for the title. However, the packet itself has
a limit of 8192 * 3 bytes for each page and 128 * 3 bytes for the title.

* Fix writable book losing changes when signing

Bedrock sends a 3 action InventoryTransactionPacket after the player
changes a page. This causes Geyser to send a ServerboundEditBookPacket
with an outdated NBT. The Java responses with a
ClientboundContainerSetSlotPacket that overwrites any NBT Changes from
BedrockBookEditTranslator.

* Add a comment for the title length check

* Specify color in Component.translatable
2023-06-18 20:02:27 -04:00
Konicai
2368b63ad5
Allow deferred registries to be loaded/set more than once (#3892) 2023-06-18 17:45:25 -04:00
rtm516
f272ed9383
Move PlatformType to API and expose it for extensions (#3798)
* Move PlatformType to API and expose it for extensions

* Move to a record
2023-06-17 02:56:50 +01:00
chris
8d068ee28f
Add SessionJoinEvent and SessionLoginEvent (#3840) 2023-06-16 20:46:32 -05:00
chris
903e61f1a3
Exposing resourcepack loading to api (#3696)
Co-authored-by: Konicai <71294714+Konicai@users.noreply.github.com>
Co-authored-by: RednedEpic <redned235@gmail.com>
2023-06-16 20:39:53 -05:00
Konicai
6eca6ade06
Loop through item palette versions in ascending order (#3884) 2023-06-16 20:51:29 -04:00
Konicai
23fb63eb17
Update mappings for new pottables, other misc(#3885)
torchflower/cherry sapling as pottable, other misc
2023-06-16 20:37:54 -04:00
Tim203
3d1a10db3b
Update events library to latest version 2023-06-16 22:54:21 +02:00
chris
6591332eb7
fix commands with trailing whitespaces (#3878)
fixes https://github.com/GeyserMC/Geyser/issues/3877
2023-06-15 22:17:29 -04:00
Konicai
eecf84e87d
Show archeology brushing animations (#3855)
Display items emerging from suspicious blocks
2023-06-15 15:04:50 -04:00
Konicai
4e749d75f8
Sound and particle mapping updates (#3874) 2023-06-15 13:27:11 -04:00
RednedEpic
bf5e08403c Fix shift-click crafting with item in hand
When shift-clicking the result item in a crafting table while holding an item in your hand, items would bug out completely and cause weird inventory desyncs.
2023-06-13 23:26:43 -05:00
RednedEpic
d43a862491 Strip unnecessary block entity tag from container NBT 2023-06-13 22:54:55 -05:00
RednedEpic
1b0d03824a Update Protocol and RakNet 2023-06-13 22:09:00 -05:00
Amberichu
f55d84321a
New entity mount offsets (#3861)
* Add missing entities to getMountedHeightOffset and getHeightOffset

* Fix mount offset on Camels for more than 1 passenger

* Fix mount offset for Shulkers on Bamboo boats and minecarts with stuff

Also fix mount offsets for minecart and boat passengers

* Combine

* More missing mount offsets

* Fix mount offsets for entities riding players
2023-06-11 13:32:42 -04:00
Konicai
049d64d34d
Leniency when trimming incoming sound ids (#3852) 2023-06-09 21:30:03 -04:00
AJ Ferguson
1d99f8beb8
Fix shift clicking Stonecutter output (#3854) 2023-06-09 21:23:10 -04:00
Konicai
1788295291
Translate nbt of decorated pots (#3847) 2023-06-09 12:33:50 -04:00
Camotoy
3ec0d82d46
Kick pre-1.19.30 players for not sending a RequestNetworkSettingsPacket 2023-06-09 12:10:59 -04:00
Konicai
53d002656f
Update EmotePacket creation for 1.20 (#3841)
Include xuid and platformId in EmotePacket
2023-06-08 23:43:45 -04:00
Konicai
ab577f66ac
Translate armour trims on items (#3837) 2023-06-08 23:32:04 -04:00
Konicai
f9870ac4ce
Update mappings to fix chiseled bookshelves (#3839) 2023-06-08 23:25:16 -04:00
Konicai
4cd472906c
Update handling of sign color/glow for 1.20 (#3835) 2023-06-08 13:30:25 -07:00
Konicai
6791acd215
Handle effects with infinite duration (#3834) 2023-06-08 13:20:49 -07:00
Konicai
4ab9eb4920
Misc 1.20 fixes (#3828)
* Update mappings

diff: f69b4db9a6...2989dbd7e1

* 1.20 boat entity variants and remove old check in UpstreamPacketHandler
2023-06-08 07:23:27 -07:00
Redned
b78ca431b6
Merge pull request #3817 from GeyserMC/feature/1.20 2023-06-07 10:47:44 -05:00
RednedEpic
13c9063368 Update to use protocol 589 and other 1.20 updates 2023-06-07 09:44:18 -05:00
Redned
b3a66dbe29
Something looked wrong... 2023-06-04 22:43:56 -05:00
Redned
23cdde5cc6
Drop any namespace for incoming sounds
Fixes custom sounds defined through a resource pack.
2023-06-04 22:40:09 -05:00
Tim203
c5d4b86564
Prepare for changes made in CloudburstMC/Protocol#205 2023-06-03 11:47:50 +02:00
Camotoy
822568ecaa
Banners on shields support 2023-06-03 00:21:09 -04:00
rtm516
246ebddc78
Remove accessor from previous commit 2023-05-27 14:12:20 +01:00
rtm516
f2d83c4ed1
Fixed GitHub Action run numbers 2023-05-27 14:05:41 +01:00
James Harrison
277396525f
Update MinecraftCapes URLs (#3797) 2023-05-26 23:25:46 +01:00
Konicai
3162f1e4fd Update mappings module 2023-05-24 16:54:32 -04:00
Konicai
a9d64de070 Support for v588 client and mappings 2023-05-24 16:37:16 -04:00
Konicai
f712d4dd81 Bump Protocol and update imports of org.cloudburstmc.protocol.bedrock.data.definitions 2023-05-23 16:34:50 -04:00
Konicai
ba4e37075d
Fix uppercase item attribute modifier names (#3780)
* Check for hide attributes flag, and "Name" -> "AttributeName"

* Operation tag is not required?

* Only process each modifier once

* Ignore `minecraft:` namespace if present

* No `Operation` is implicitly ADD, fix knockback_resistance check
2023-05-22 12:58:01 -04:00
rtm516
178fb2136f
Allow custom bows and food to be registered using the API (#3782) 2023-05-21 13:22:15 +01:00