Commit graph

496 commits

Author SHA1 Message Date
chris
b17f4a46f4
Update outdated proxy message to check for 1.20.2, remove floodgate 1.0 checks (#4204) 2023-10-09 18:20:18 +02:00
chris
82541a5b37
Show only 1.20.2 as supported on Fabric (#4190) 2023-10-06 06:50:01 -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
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
Konicai
f78e6dd7e7
Remove Geyser-Sponge (#4097)
See PR for details
2023-09-11 13:54:24 -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
1b05f9f15e
Register extension commands on Geyser-Fabric (#4080)
* Register Extension commands on Geyser-Fabric
* Allow Geyser commands to accept arguments aswell - e.g. geyser dump logs
2023-08-30 16:18:06 -04: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
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
chris
78e788dca0
- indicate 1.20.1 support on modrinth (#3950)
- fix plan incompatibility by setting a proper refmap json name
2023-07-07 11:55:28 -07:00
Konicai
40775149f5
NMS adapter for spigot 1.20 (#3911) 2023-06-28 00:31:03 -04:00
Konicai
c7568ec889
Move to a text box for commands on Geyser standalone GUI (#3915) 2023-06-26 14:44:25 -04:00
Konicai
bed7b5d10e
Bump logj4 (#3888) 2023-06-17 16:47:42 +01: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
derspyy
446d3c22e2
Change filename uploaded to modrinth (#3823)
Co-authored-by: Kas-tle <26531652+Kas-tle@users.noreply.github.com>
Co-authored-by: Konicai <71294714+Konicai@users.noreply.github.com>
2023-06-12 21:40:12 -04:00
Konicai
d6e095424c
Check for null server ip on Fabric (#3842) 2023-06-08 23:29:46 -04:00
Tim203
231e9a1cc6
Fail silently if uploading to Modrinth fails 2023-06-08 16:34:31 +02:00
chris
8b8d6ddb9e
Geyser-Fabric: bump to 1.20 (#3824)
* add accesswidener, bump to 1.20

* address review

* yeet AW, use level() instead

* update modrinth version 

pls work
2023-06-08 07:15:08 -07:00
Kas-tle
f3cc93c94e
Relocate org.yaml for bungee and spigot (#3820)
* Relocate org.yaml

* Spigot did the same for yaml sadly
2023-06-07 13:22:36 -05:00
Konicai
f7d2b4ece3
Add Multi-Release: true to standalone manifest (#3795) 2023-05-24 21:46:43 -04:00
Camotoy
c8afd3436d Fix Floodgate autodetection 2023-04-26 21:11:26 -04:00
Tim203
7c1100b830
Fixed auto-setting auth-type to Floodgate 2023-04-26 18:53:03 +02:00
Julian Vennen
f39e689b83
Implement System properties to set the udp port and address #3597 (#3689)
* System property stuff

* Add geyserUdpPort/Address system properties as overrides for pluginUdpPort/Address

* Fix formatting for if-else statements

---------

Co-authored-by: Camotoy <20743703+Camotoy@users.noreply.github.com>
2023-04-22 21:33:23 -04:00
SupremeMortal
27fcc932c7
Add run configuration to make things easier 2023-04-20 10:46:12 +01:00
Camotoy
b6113dfd31 Optimizations and regression fix 2023-04-06 21:47:37 -04:00
Camotoy
8083f70435 KQueue no longer needs to be shaded in on Spigot/Fabric 2023-04-06 19:54:22 -04:00
Camotoy
d9811d08e3 Merge remote-tracking branch 'origin/master' into feature/protocol-3.0 2023-04-06 13:26:28 -04:00
Camotoy
e2535108e6
Folia support and preparations for future changes 2023-03-30 15:44:55 -04:00
Camotoy
cd80ee893c
Potentially fix Modrinth token caching 2023-03-30 15:27:00 -04:00
Camotoy
323394d2b5
Clean up jar file classes a bit 2023-03-26 13:20:53 -04:00
Camotoy
05829eeed8
Upload Fabric platform to Modrinth 2023-03-20 13:04:53 -04:00
YouHaveTrouble
81f0cbe5ed
Assign permission to the command (#3599)
Assigning permission allows people to possibly deny that permission to hide the command from tab complete list.
Permission is defaulted to true, so command keeps current behavior by default.
2023-03-07 12:54:41 -05:00
SupremeMortal
1769f2a85c
Merge branch 'master' into feature/protocol-3.0 2023-02-14 22:09:48 +00:00
Camotoy
29f234d030 Fix /geyser reload on Spigot
Fixes #3478
2023-01-29 22:15:26 -05:00
Camotoy
402b3403ba
Velocity: Fix disabling compression when there is no compression to disable 2023-01-02 12:12:22 -05:00
Camotoy
3e778cdb49
Merge branch 'feature/protocol-3.0' of https://github.com/GeyserMC/Geyser into feature/protocol-3.0 2022-12-20 20:01:05 -05:00
Camotoy
4fe9aeca40
Merge branch 'master' of https://github.com/GeyserMC/Geyser into feature/protocol-3.0 2022-12-20 19:47:45 -05:00
Camotoy
9656caf4cb
Merge branch 'compression' into dev 2022-12-18 13:21:07 -05:00
Camotoy
ad4424d2b6
Use server data to pick block on banners 2022-12-17 21:05:41 -05:00
Konicai
2d3dd89162
Some misc fixes 2022-12-14 17:57:08 -05:00
Konicai
a988fbf290
Update inventory translators 2022-12-14 17:23:55 -05:00
Konicai
84248fa902
Merge remote-tracking branch 'upstream/master' into feature/protocol-3.0
# Conflicts:
#	core/src/main/java/org/geysermc/geyser/entity/type/living/monster/EndermanEntity.java
#	core/src/main/java/org/geysermc/geyser/inventory/holder/BlockInventoryHolder.java
#	core/src/main/java/org/geysermc/geyser/network/ConnectorServerEventHandler.java
#	core/src/main/java/org/geysermc/geyser/network/GameProtocol.java
#	core/src/main/java/org/geysermc/geyser/network/UpstreamPacketHandler.java
#	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/session/GeyserSession.java
#	core/src/main/java/org/geysermc/geyser/text/ChatTypeEntry.java
#	core/src/main/java/org/geysermc/geyser/translator/protocol/bedrock/BedrockInventoryTransactionTranslator.java
#	core/src/main/java/org/geysermc/geyser/translator/protocol/java/JavaCommandsTranslator.java
#	core/src/main/java/org/geysermc/geyser/translator/protocol/java/JavaDisguisedChatTranslator.java
#	core/src/main/java/org/geysermc/geyser/translator/protocol/java/JavaPlayerChatTranslator.java
#	core/src/main/java/org/geysermc/geyser/translator/protocol/java/entity/player/JavaPlayerInfoTranslator.java
#	core/src/main/java/org/geysermc/geyser/translator/protocol/java/level/JavaExplodeTranslator.java
#	core/src/main/java/org/geysermc/geyser/util/DimensionUtils.java
#	core/src/main/java/org/geysermc/geyser/util/InventoryUtils.java
#	gradle/libs.versions.toml
2022-12-14 15:58:17 -05:00
Camotoy
7c26036906
Update adapters to support 1.19.3 and add biome command completions 2022-12-13 13:53:28 -05:00
Camotoy
95ebdb8ebf
Update BungeeCord version check 2022-12-07 11:59:20 -05:00
Camotoy
cc3037d6c5
Update to 1.19.3-rc1; various changes and fixes 2022-12-02 14:11:56 -05:00
Konicai
592b48dbf5
Simplify IP censoring in dumps (#3330) 2022-11-01 09:59:44 -04:00
RednedEpic
18e7db8c30 Start on update to Protocol 3.0 2022-10-29 19:23:21 -05:00
Camotoy
254f0da03c
Fabric improvements
Mainly in commands - the old permissions file no longer needs to exist.
2022-10-24 13:21:02 -04:00
Camotoy
730b0beb01
Consolidate CommandManager implementations
A lot of these just implemented the class overrode the `description` method returning nothing.
2022-10-18 16:05:55 -04:00
Camotoy
144d7b000a
Use Mojang mappings for Geyser-Fabric 2022-10-18 12:06:18 -04:00