* Add support for PacketTransformer and a SplitPacketTransformer
* Add testmod and make it work
* Add experimental, Remove generics, they are pointless
* Add modify and removing for villager trades
- Add mixin for villager trades
- Add methods to register modify and removing
- Implement base for VillagerMixin to provide additional villager data
- Basic Access & Mixin change
- Add AT and AW
- Add overriding for max offers a villager or the wanderer can have
* Add rare check for wandering trader
* Remove todo comment
* rename some methods
* Solve reviews for #122
Move non api stuff into TradeRegistryData
Rename fields in MerchantOfferAccess
Move trade stuff into internal package
Mark internal trade classes as ApiStatus.Internal
* Minor refactors (discussed on Discord)
* Add doc for AbstractVillagerMixin
* Reformat code
* Update gradle.properties
Co-authored-by: Max <maxh2709@gmail.com>
* New utility hook for creating a entity spawn packet. before every mod had to implement this in itself.
* Apply suggestions from code review
Co-authored-by: shedaniel <daniel@shedaniel.me>
* Update common/src/main/java/me/shedaniel/architectury/networking/NetworkManager.java
* Update common/src/main/java/me/shedaniel/architectury/networking/NetworkManager.java
* Properly implement SpawnEntityPacket & Format style
Signed-off-by: shedaniel <daniel@shedaniel.me>
* Format
Signed-off-by: shedaniel <daniel@shedaniel.me>
* createEntitySpawnPacket -> createAddEntityPacket for mojmap consistency
Signed-off-by: shedaniel <daniel@shedaniel.me>
* Bump version to 1.17
Co-authored-by: Max <maxh2709@gmail.com>
Co-authored-by: shedaniel <daniel@shedaniel.me>
* Add TradeRegistry to add Trades a bit more easily. Uses the VillagerTradesEvent on forge
* Added TradeRegistry#registerTradeForWanderer which uses the WandererTraderEvent on forge
* Added javadoc
* Use Fabric own Trade implementation and fixed Test Mod
* Update common/src/main/java/me/shedaniel/architectury/registry/TradeRegistry.java
Co-authored-by: Juuxel <6596629+Juuxel@users.noreply.github.com>
* Update common/src/main/java/me/shedaniel/architectury/registry/TradeRegistry.java
Co-authored-by: Juuxel <6596629+Juuxel@users.noreply.github.com>
* Update common/src/main/java/me/shedaniel/architectury/registry/TradeRegistry.java
Co-authored-by: Juuxel <6596629+Juuxel@users.noreply.github.com>
* Update common/src/main/java/me/shedaniel/architectury/registry/TradeRegistry.java
Co-authored-by: Juuxel <6596629+Juuxel@users.noreply.github.com>
* Added javadoc for SimpleTrade
* Use two lists instead of Int2ObjectMap
* Use "registerTradeForWanderingTrader" instead of "registerTradeForWanderer" for better clarification
* Use IllegalArgumentException instead of RuntimeException
* Remove level limit (Mods may be able to remove this restriction in VillagerData#canLevelUp), Clean up forge's implementation
Signed-off-by: shedaniel <daniel@shedaniel.me>
* Clean up TestTrades and add licenses
Signed-off-by: shedaniel <daniel@shedaniel.me>
* [ciskip] Reintroduce lower bound validation for level
Co-authored-by: Juuxel <6596629+Juuxel@users.noreply.github.com>
Co-authored-by: shedaniel <daniel@shedaniel.me>
Co-authored-by: Max <maxh2709@gmail.com>
* Add FarmlandTrample event
* FarmlandTrample debug event
* Add FILL_BUCKET event and testmod
* Add ENTER_CHUNK event and testmod
* Add CHECK_SPAWN on Forge
* CHECK_SPAWN on Fabric part 1 aka: The Concernening
* CHECK_SPAWN on Fabric part 2: I kinda don't hate this as much
* CHECK_SPAWN on Fabric part 3: Patrols
* CHECK_SPAWN on Fabric part 4: catJAM
* CHECK_SPAWN on Fabric part 5: Phantoms
* Fix CHECK_SPAWN for patrols
* Add mod metadata (#73)
* new event system
* Revert patrol spawner behaviour
* Implement CheckSpawn behaviour for spawners and add test (forgot about that)
* Revert "Revert patrol spawner behaviour"
This reverts commit 1da3fb73
* Change MixinPhantomSpawner to SOFT
* Edit forge mods.toml
We support 1.16.2+ on forge
Co-authored-by: shedaniel <daniel@shedaniel.me>
My reasoning for this lies in the quirk that Forge by default cancels all following event listeners when one of them fails with an Exception. Because we are an API that mods need to be able to rely on, and this may cause cascading issues with mods that depend on us down the line (see https://github.com/KubeJS-Mods/KubeJS/issues/101), I think we should act on HIGH priority by default to reduce the risk of this happening