Skip to content

Conversation

@illyrius666
Copy link
Member

@illyrius666 illyrius666 commented Nov 13, 2025

Description

How Has This Been Tested?

This pull request introduces a new custom enchantment, "Replant", and integrates it into the plugin's lifecycle and player module. The most important changes are the addition of the enchantment's definition and registry, the implementation of automatic crop replanting when harvesting with enchanted tools, and the necessary interface and event handling updates to support these features.

New Enchantment System

  • Added ReplantEnchantment, a custom enchantment that enables automatic crop replanting when used with hoes. The enchantment is registered with proper tags for tradeability, non-treasure status, and enchanting table availability (src/main/kotlin/org/xodium/vanillaplus/enchantments/ReplantEnchantment.kt, src/main/kotlin/org/xodium/vanillaplus/VanillaPlusBootstrap.kt). [1] [2]

  • Introduced EnchantmentInterface to standardize enchantment creation, initialization, and registry access, facilitating future expansion of custom enchantments (src/main/kotlin/org/xodium/vanillaplus/interfaces/EnchantmentInterface.kt).

Player Module Enhancements

  • Implemented an event handler for BlockBreakEvent that checks for the "Replant" enchantment on the player's tool and automatically replants fully grown crops after harvesting (src/main/kotlin/org/xodium/vanillaplus/modules/PlayerModule.kt).

  • Added imports and references for new classes and interfaces to support the replanting logic and enchantment checks (src/main/kotlin/org/xodium/vanillaplus/modules/PlayerModule.kt). [1] [2]

Miscellaneous

  • Updated the project dictionary to include new terminology related to the changes, such as "ageable" and "veinmine" (.idea/dictionaries/project.xml). [1] [2]
  • Unit tests
  • Integration tests
  • Manual testing
  • Other (please describe)

Checklist:

  • Follow style guidelines of this project.
  • Perform self-review of the code.
  • Comment on hard-to-understand areas.
  • Update documentation accordingly.
  • Ensure changes generate no new warnings.
  • Add tests proving the fix is effective, or the feature works.
  • Verify new and existing unit tests pass locally.
  • Ensure dependent changes are merged and published.

Additional context:

Signed-off-by: Illyrius <fitimq@live.nl>
Signed-off-by: Illyrius <fitimq@live.nl>
Signed-off-by: Illyrius <fitimq@live.nl>
…odule

Signed-off-by: Illyrius <fitimq@live.nl>
@illyrius666 illyrius666 self-assigned this Nov 13, 2025
Copilot AI review requested due to automatic review settings November 13, 2025 14:52
@illyrius666 illyrius666 merged commit c7f4f2f into dev Nov 13, 2025
6 of 7 checks passed
@illyrius666 illyrius666 deleted the feat/PlayerModule/ReplantEnchantment branch November 13, 2025 14:52
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This pull request introduces a new custom "Replant" enchantment that automatically replants crops when harvesting with an enchanted hoe. The implementation includes enchantment registration via a new bootstrap system, an interface for standardizing custom enchantments, and event-driven replanting logic.

Key Changes:

  • Added VanillaPlusBootstrap class to handle plugin bootstrapping and custom enchantment registration during Paper's lifecycle events
  • Created EnchantmentInterface to standardize custom enchantment implementation with key, initialization, and registry access methods
  • Implemented replanting functionality in PlayerModule that detects fully-grown crops and replants them after harvest when using an enchanted hoe

Reviewed Changes

Copilot reviewed 4 out of 6 changed files in this pull request and generated 7 comments.

Show a summary per file
File Description
src/main/kotlin/org/xodium/vanillaplus/VanillaPlusBootstrap.kt New bootstrap class that registers the Replant enchantment during plugin initialization and assigns it to appropriate enchantment tags (tradeable, non-treasure, enchanting table)
src/main/kotlin/org/xodium/vanillaplus/interfaces/EnchantmentInterface.kt New interface defining the contract for custom enchantments with methods for initialization and registry access
src/main/kotlin/org/xodium/vanillaplus/enchantments/ReplantEnchantment.kt Implementation of the Replant enchantment with configuration for costs, level, weight, and active equipment slots
src/main/kotlin/org/xodium/vanillaplus/modules/PlayerModule.kt Added BlockBreakEvent handler and replant logic to automatically replant fully-grown crops after 2 ticks when using enchanted tools; includes whitespace formatting improvements to existing event handlers
build.gradle.kts Configured the bootstrap class in the Paper plugin configuration to enable lifecycle event handling
.idea/dictionaries/project.xml Added project-specific terms "ageable" and "veinmine" to the dictionary
Files not reviewed (1)
  • .idea/dictionaries/project.xml: Language not supported

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

fun on(event: BlockBreakEvent) {
if (!enabled()) return

replant(event.block, event.player.inventory.itemInMainHand)
Copy link

Copilot AI Nov 13, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The code checks event.player.inventory.itemInMainHand but doesn't verify if this was actually the item used to break the block. Players can break blocks with their off-hand as well. Consider checking both main hand and off-hand, or use a more reliable method to determine which hand was used for breaking the block.

Suggested change
replant(event.block, event.player.inventory.itemInMainHand)
val mainHand = event.player.inventory.itemInMainHand
val offHand = event.player.inventory.itemInOffHand
// Prefer main hand if both have the enchantment, but check both
if (mainHand.hasItemMeta() && mainHand.itemMeta.hasEnchant(ReplantEnchantment.get())) {
replant(event.block, mainHand)
} else if (offHand.hasItemMeta() && offHand.itemMeta.hasEnchant(ReplantEnchantment.get())) {
replant(event.block, offHand)
}

Copilot uses AI. Check for mistakes.
val key: TypedKey<Enchantment>

/**
* Initializes the Drift enchantment.
Copy link

Copilot AI Nov 13, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The documentation refers to "Drift enchantment" but this interface is generic and used for all enchantments, including the "Replant" enchantment. The documentation should be updated to be generic (e.g., "Initializes the enchantment.")

Suggested change
* Initializes the Drift enchantment.
* Initializes the enchantment.

Copilot uses AI. Check for mistakes.
xpToBottle(event)
}

@EventHandler
Copy link

Copilot AI Nov 13, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The replant logic directly replaces the block type without considering whether the block was actually broken. If the BlockBreakEvent is cancelled by another plugin with lower priority, this could still replant the crop. Consider adding ignoreCancelled = true to the EventHandler annotation to prevent this issue.

Suggested change
@EventHandler
@EventHandler(ignoreCancelled = true)

Copilot uses AI. Check for mistakes.
Comment on lines +190 to +191
block.type = blockType
block.blockData = ageable.apply { age = 0 }
Copy link

Copilot AI Nov 13, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There's a potential race condition in the replanting logic. The code schedules a task to run 2 ticks later that sets block.type = blockType, but it doesn't verify that the block is actually AIR after the break event completes. If another plugin or event modifies the block during the delay, or if the BlockBreakEvent gets cancelled after this handler runs, this could overwrite that change or place a crop in an unexpected location. Consider checking if (block.type == Material.AIR) before setting the block type in the delayed task.

Suggested change
block.type = blockType
block.blockData = ageable.apply { age = 0 }
if (block.type == Material.AIR) {
block.type = blockType
block.blockData = ageable.apply { age = 0 }
}

Copilot uses AI. Check for mistakes.
Comment on lines +176 to +183
private fun replant(
block: Block,
tool: ItemStack,
) {
val ageable = block.blockData as? Ageable ?: return

if (ageable.age < ageable.maximumAge) return
if (!tool.hasItemMeta() || !tool.itemMeta.hasEnchant(ReplantEnchantment.get())) return
Copy link

Copilot AI Nov 13, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[nitpick] The function checks if the tool has the Replant enchantment on a hoe, but doesn't verify that the block being broken is actually a crop that should be replanted. While the cast to Ageable will return null for non-ageable blocks, some ageable blocks like saplings or stems might not be appropriate for this enchantment. Consider adding validation to ensure only appropriate crop blocks (e.g., wheat, carrots, potatoes, beetroots, etc.) are replanted, or document that all ageable blocks are intentionally supported.

Copilot uses AI. Check for mistakes.
) {
val ageable = block.blockData as? Ageable ?: return

if (ageable.age < ageable.maximumAge) return
Copy link

Copilot AI Nov 13, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[nitpick] The enchantment check doesn't verify that the tool is a hoe. While the enchantment is registered to only appear on hoes (in VanillaPlusBootstrap.kt), players could theoretically use commands or other means to add this enchantment to non-hoe items. Consider adding a check to ensure the tool is a hoe before attempting to replant, or document that this is intentionally allowed for any tool with the enchantment.

Suggested change
if (ageable.age < ageable.maximumAge) return
if (ageable.age < ageable.maximumAge) return
// Only allow hoes to trigger replant
if (tool.type !in setOf(
Material.WOODEN_HOE,
Material.STONE_HOE,
Material.IRON_HOE,
Material.GOLDEN_HOE,
Material.DIAMOND_HOE,
Material.NETHERITE_HOE
)) return

Copilot uses AI. Check for mistakes.
Comment on lines +188 to +193
val blockType = block.type

block.type = blockType
block.blockData = ageable.apply { age = 0 }
},
2,
Copy link

Copilot AI Nov 13, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[nitpick] Using a 2-tick delay for replanting may be fragile. The block break event processes synchronously, and the drops/block state changes happen during event processing. A 2-tick delay might not be sufficient in all cases (e.g., with lag or other plugins modifying the block). Consider using a 1-tick delay (which is typically sufficient for the block to be fully processed) or adding validation that the block is AIR before replanting to ensure the break was successful.

Suggested change
val blockType = block.type
block.type = blockType
block.blockData = ageable.apply { age = 0 }
},
2,
// Only replant if the block is AIR (i.e., was actually broken)
if (block.type == Material.AIR) {
block.type = block.type // restore the crop type
block.blockData = ageable.apply { age = 0 }
}
},
1,

Copilot uses AI. Check for mistakes.
illyrius666 added a commit that referenced this pull request Dec 11, 2025
* fixed (#264)

Signed-off-by: illyrius666 <fitimq@live.nl>

* fixed /guide cmd

Signed-off-by: illyrius666 <fitimq@live.nl>

* refactor/TreesModule (#265)

* Update actions/checkout action to v5 (#197)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* module manager refactor (#198)

* Add `run-paper` plugin, update exclusions, and remove obsolete remote debug config

Signed-off-by: illyrius666 <fitimq@live.nl>

* [ci-skip] Simplify CI/CD deployment path by removing conditional logic for target directory.

Signed-off-by: illyrius666 <fitimq@live.nl>

* Remove all `.idea/libraries` entries as they are no longer required

Signed-off-by: illyrius666 <fitimq@live.nl>

* +

Signed-off-by: illyrius666 <fitimq@live.nl>

* Make `relocation` and `minimize` conditional for development builds; update module file to include `ADVENTURE` platform type.

Signed-off-by: illyrius666 <fitimq@live.nl>

* Remove `isDev` flag; always apply `relocation` and `minimize` in `shadowJar`.

Signed-off-by: illyrius666 <fitimq@live.nl>

* init

Signed-off-by: illyrius666 <fitimq@live.nl>

* Integrate FancyHolograms support with `SignModule` and add utility for creating player-based holograms.

Signed-off-by: illyrius666 <fitimq@live.nl>

* Add `PlayerOpenSignEvent` handling in `SignModule` to create holograms and cancel event

Signed-off-by: illyrius666 <fitimq@live.nl>

* Replace FancyHolograms integration with DecentHolograms in `SignModule` and dependencies; update repository and libraries

Signed-off-by: illyrius666 <fitimq@live.nl>

* removing holograms

Signed-off-by: illyrius666 <fitimq@live.nl>

* Add `BroadcastModule` and tips command; remove unused `fireFmt` dependencies and `PlayerOpenSignEvent` handling

Signed-off-by: illyrius666 <fitimq@live.nl>

* broadcast rc1

Signed-off-by: illyrius666 <fitimq@live.nl>

* cleanup

Signed-off-by: illyrius666 <fitimq@live.nl>

* added randomness

Signed-off-by: illyrius666 <fitimq@live.nl>

* opted out of broadcast to scoreboards

Signed-off-by: illyrius666 <fitimq@live.nl>

* opt out for scoreboard, since scores dont accept minimessage format

Signed-off-by: illyrius666 <fitimq@live.nl>

* up

Signed-off-by: illyrius666 <fitimq@live.nl>

* refactor

Signed-off-by: illyrius666 <fitimq@live.nl>

* +

Signed-off-by: illyrius666 <fitimq@live.nl>

---------

Signed-off-by: illyrius666 <fitimq@live.nl>
Signed-off-by: Illyrius <28700752+illyrius666@users.noreply.github.com>

* fmt

Signed-off-by: illyrius666 <fitimq@live.nl>

* refactored the config reload cmd

Signed-off-by: illyrius666 <fitimq@live.nl>

* oops

Signed-off-by: illyrius666 <fitimq@live.nl>

* error msg update

Signed-off-by: illyrius666 <fitimq@live.nl>

* no pre-releases in deploy

Signed-off-by: illyrius666 <fitimq@live.nl>

* refactoring modulemanager to make the reload cmd work

Signed-off-by: illyrius666 <fitimq@live.nl>

* [ci-skip] docs

Signed-off-by: illyrius666 <fitimq@live.nl>

* added checks to see if cmd executer is player

Signed-off-by: illyrius666 <fitimq@live.nl>

* converted a method to a fun extension

Signed-off-by: illyrius666 <fitimq@live.nl>

* refactor

Signed-off-by: illyrius666 <fitimq@live.nl>

* more refactoring

Signed-off-by: illyrius666 <fitimq@live.nl>

* more rf

Signed-off-by: illyrius666 <fitimq@live.nl>

* some refactoring

Signed-off-by: illyrius666 <fitimq@live.nl>

* Update plugin org.jetbrains.kotlin.jvm to v2.2.10 (#199)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* Update plugin com.gradleup.shadow to v9.0.2 (#200)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* Update softprops/action-gh-release digest to 126b1e7 (#201)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* Update gradle/actions digest to 70964b4 (#202)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* Update actions/setup-java action to v5 (#203)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* Update gradle/actions digest to 44b6df6 (#204)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* Update softprops/action-gh-release digest to fbadcc9 (#205)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* Update dependency com.sk89q.worldedit:worldedit-bukkit to v7.3.16 (#206)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* Migrate config .github/renovate.json (#207)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* Update gradle/actions digest to 83c124b (#210)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* Update dependency com.fasterxml.jackson.module:jackson-module-kotlin to v2.20.0 (#212)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* Update plugin com.gradleup.shadow to v9.1.0 (#213)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* Update dependency com.fasterxml.jackson.datatype:jackson-datatype-jsr310 to v2.20.0 (#211)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* Update appleboy/scp-action digest to eb443bd (#209)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* Update gradle/actions digest to 0a4f8b4 (#214)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* Update softprops/action-gh-release digest to 6cbd405 (#215)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* Update plugin xyz.jpenilla.run-paper to v3.0.0 (#216)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* Update gradle/actions digest to 76d3b99 (#217)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* Update softprops/action-gh-release digest to 5d1b0b1 (#218)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* +

Signed-off-by: illyrius666 <fitimq@live.nl>

* Update gradle/actions digest to ed40850 (#219)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* feat/ChatModule/DeletableMessages (#220)

* init

Signed-off-by: illyrius666 <fitimq@live.nl>

* refactor quitevent impl

Signed-off-by: illyrius666 <fitimq@live.nl>

* uses mc default joinmessage if not defined in plugin config

Signed-off-by: illyrius666 <fitimq@live.nl>

* added the check also for quitmessage

Signed-off-by: illyrius666 <fitimq@live.nl>

* woops

Signed-off-by: illyrius666 <fitimq@live.nl>

---------

Signed-off-by: illyrius666 <fitimq@live.nl>

* Update plugin org.jetbrains.kotlin.jvm to v2.2.20 (#222)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* Update gradle/actions digest to c04286a (#221)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* Update softprops/action-gh-release digest to 19cd0bc (#223)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* feat/SilkTouchModule (#224)

* init

Signed-off-by: illyrius666 <fitimq@live.nl>

* refactor

Signed-off-by: illyrius666 <fitimq@live.nl>

* woops

Signed-off-by: illyrius666 <fitimq@live.nl>

* added player == survival check

Signed-off-by: illyrius666 <fitimq@live.nl>

* finish

Signed-off-by: illyrius666 <fitimq@live.nl>

* cancel xp drop when mining with silk touch, to prevent infinite xp

Signed-off-by: illyrius666 <fitimq@live.nl>

* damnit

Signed-off-by: illyrius666 <fitimq@live.nl>

* +

Signed-off-by: illyrius666 <fitimq@live.nl>

* fix placing spawner losing type

* fixed

Signed-off-by: illyrius666 <fitimq@live.nl>

* finish

Signed-off-by: illyrius666 <fitimq@live.nl>

---------

Signed-off-by: illyrius666 <fitimq@live.nl>

* feat/WanderingTraderModule (#225)

* init

Signed-off-by: illyrius666 <fitimq@live.nl>

* added sound and changed the message a little bit

Signed-off-by: illyrius666 <fitimq@live.nl>

---------

Signed-off-by: illyrius666 <fitimq@live.nl>

* Update gradle/actions digest to 3ee0ca9 (#226)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* feat/CauldronModule (#227)

* init

Signed-off-by: illyrius666 <fitimq@live.nl>

* first attempt

Signed-off-by: illyrius666 <fitimq@live.nl>

* refactor and add dirt -> mud via cauldron

Signed-off-by: illyrius666 <fitimq@live.nl>

* v2

Signed-off-by: illyrius666 <fitimq@live.nl>

* take 2

Signed-off-by: illyrius666 <fitimq@live.nl>

* take 3

Signed-off-by: illyrius666 <fitimq@live.nl>

* take 4

Signed-off-by: illyrius666 <fitimq@live.nl>

* added kdocs

Signed-off-by: illyrius666 <fitimq@live.nl>

* fix cauldron error on water level 0

Signed-off-by: illyrius666 <fitimq@live.nl>

* added coarse dirt and rooted dirt

Signed-off-by: illyrius666 <fitimq@live.nl>

* refactor

Signed-off-by: illyrius666 <fitimq@live.nl>

* refactor

Signed-off-by: illyrius666 <fitimq@live.nl>

* refactor

Signed-off-by: illyrius666 <fitimq@live.nl>

---------

Signed-off-by: illyrius666 <fitimq@live.nl>

* Update gradle/actions digest to abc608c (#228)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* Update gradle/actions digest to 891d472 (#230)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* Update appleboy/scp-action digest to 7179e72 (#229)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* Update gradle/actions digest to f814022 (#231)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix/InvModule/UnloadBug (#234)

* +

Signed-off-by: illyrius666 <fitimq@live.nl>

* fix bug, plus laser in search now is based on proximity

Signed-off-by: illyrius666 <fitimq@live.nl>

* added so that if the item is in multiple chests it creates multiple lasers, double chests behave like a single chest when it comes to the laser, and fixed Block.center() to work with the new logic.

Signed-off-by: illyrius666 <fitimq@live.nl>

---------

Signed-off-by: illyrius666 <fitimq@live.nl>

* feat/PlayerModule (#233)

* init

Signed-off-by: illyrius666 <fitimq@live.nl>

* refactor

Signed-off-by: illyrius666 <fitimq@live.nl>

* +

Signed-off-by: illyrius666 <fitimq@live.nl>

* refactor

Signed-off-by: illyrius666 <fitimq@live.nl>

* added customname to skull

Signed-off-by: illyrius666 <fitimq@live.nl>

* added skull lore

Signed-off-by: illyrius666 <fitimq@live.nl>

* missing kdocs

Signed-off-by: illyrius666 <fitimq@live.nl>

* update gitignore

Signed-off-by: illyrius666 <fitimq@live.nl>

---------

Signed-off-by: illyrius666 <fitimq@live.nl>

* +

Signed-off-by: illyrius666 <fitimq@live.nl>

* +

Signed-off-by: illyrius666 <fitimq@live.nl>

* +

Signed-off-by: illyrius666 <fitimq@live.nl>

* [ci-skip] adjust search command to use a strong beam for the nearest chest and a faded beam for other matching item chests.

Signed-off-by: illyrius666 <fitimq@live.nl>

* [ci-skip] take 2

Signed-off-by: illyrius666 <fitimq@live.nl>

* [ci-skip] take 3

Signed-off-by: illyrius666 <fitimq@live.nl>

* [ci-skip] take 4

Signed-off-by: illyrius666 <fitimq@live.nl>

* [ci-skip] take 5

Signed-off-by: illyrius666 <fitimq@live.nl>

* [ci-skip] take 6

Signed-off-by: illyrius666 <fitimq@live.nl>

* [ci-skip] take 7

Signed-off-by: illyrius666 <fitimq@live.nl>

* [ci-skip] take 8

Signed-off-by: illyrius666 <fitimq@live.nl>

* [ci-skip] take 9

Signed-off-by: illyrius666 <fitimq@live.nl>

* Update gradle/actions digest to ef9c8ec (#237)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* Update Gradle to v9.1.0 (#238)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* [ci-skip] take 10

Signed-off-by: illyrius666 <fitimq@live.nl>

* [ci-skip] update renovate to skip ci when updating dependencies

Signed-off-by: illyrius666 <fitimq@live.nl>

* [ci-skip] take 11

Signed-off-by: illyrius666 <fitimq@live.nl>

* [ci-skip] take 12

Signed-off-by: illyrius666 <fitimq@live.nl>

* Update softprops/action-gh-release digest to 97d42c1 (#239)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* Update gradle/actions digest to 0e05276 (#240)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix particles

Signed-off-by: illyrius666 <fitimq@live.nl>

* refactor

Signed-off-by: illyrius666 <fitimq@live.nl>

* renaming

Signed-off-by: illyrius666 <fitimq@live.nl>

* added todos

Signed-off-by: illyrius666 <fitimq@live.nl>

* fix block centre()

Signed-off-by: illyrius666 <fitimq@live.nl>

* [ci-skip] naming fix

Signed-off-by: illyrius666 <fitimq@live.nl>

* [ci-skip] ig looks better?

Signed-off-by: illyrius666 <fitimq@live.nl>

* Update gradle/actions digest to 182e4d3 (#241)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* Update plugin com.gradleup.shadow to v9.2.1 (#242)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* Update gradle/actions digest to 748248d (#243)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* merged nickname module into playermodule

Signed-off-by: illyrius666 <fitimq@live.nl>

* refactor PlayerModule.kt

Signed-off-by: illyrius666 <fitimq@live.nl>

* swapped to using datacomponents instead of itemmeta

Signed-off-by: illyrius666 <fitimq@live.nl>

* l18n support

Signed-off-by: illyrius666 <fitimq@live.nl>

* removed WanderingTraderModule.kt

Signed-off-by: illyrius666 <fitimq@live.nl>

* Update plugin com.gradleup.shadow to v9.2.2 (#244)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* refactor/PlayerData (#245)

* init

Signed-off-by: illyrius666 <fitimq@live.nl>

* fix kotlinx

Signed-off-by: illyrius666 <fitimq@live.nl>

* revert

Signed-off-by: illyrius666 <fitimq@live.nl>

* making use of data interface

Signed-off-by: illyrius666 <fitimq@live.nl>

* +

Signed-off-by: illyrius666 <fitimq@live.nl>

* fix

Signed-off-by: illyrius666 <fitimq@live.nl>

* fix json structure

Signed-off-by: illyrius666 <fitimq@live.nl>

* lazy loading

Signed-off-by: illyrius666 <fitimq@live.nl>

* +

Signed-off-by: illyrius666 <fitimq@live.nl>

* fix preserving typeref

Signed-off-by: illyrius666 <fitimq@live.nl>

* fix conversion

Signed-off-by: illyrius666 <fitimq@live.nl>

* avoided unchecked cast

Signed-off-by: illyrius666 <fitimq@live.nl>

* creating custom UUIDModule() for jackson

Signed-off-by: illyrius666 <fitimq@live.nl>

* refactor

Signed-off-by: illyrius666 <fitimq@live.nl>

---------

Signed-off-by: illyrius666 <fitimq@live.nl>

* feat/ChatModule/ChatPlaceholders (#246)

* init

Signed-off-by: illyrius666 <fitimq@live.nl>

* woops

Signed-off-by: illyrius666 <fitimq@live.nl>

* +

Signed-off-by: illyrius666 <fitimq@live.nl>

---------

Signed-off-by: illyrius666 <fitimq@live.nl>

* Update gradle/actions digest to e60655a (#247)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* updated to mc 1.21.9-rc1, refactor main class and build script

Signed-off-by: illyrius666 <fitimq@live.nl>

* woops

Signed-off-by: illyrius666 <fitimq@live.nl>

* [ci-skip] replaced .replace() with Placeholder.component()

Signed-off-by: illyrius666 <fitimq@live.nl>

* Update gradle/actions digest to 4d9f0ba (#250)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* renamed l18n to i18n (oopsie), renamed WorldEditHook.kt to FAWEHook.kt

Signed-off-by: illyrius666 <fitimq@live.nl>

* [ci-skip] refactored so we dont need to suppress, also cleanup the plugin.yml

Signed-off-by: illyrius666 <fitimq@live.nl>

* moved prefix to extutils

Signed-off-by: illyrius666 <fitimq@live.nl>

* refactor

Signed-off-by: illyrius666 <fitimq@live.nl>

* using lateinit var instead of by lazy

Signed-off-by: illyrius666 <fitimq@live.nl>

* v+

Signed-off-by: illyrius666 <fitimq@live.nl>

* [ci-skip] make hooks automatically detect the class name based on where its called.

Signed-off-by: illyrius666 <fitimq@live.nl>

* cleanup + refactor getRandomRotation to allow for custom angle input

Signed-off-by: illyrius666 <fitimq@live.nl>

* refactor getRandomRotation

Signed-off-by: illyrius666 <fitimq@live.nl>

* refactor

Signed-off-by: illyrius666 <fitimq@live.nl>

* Update plugin xyz.jpenilla.run-paper to v3.0.1 (#251)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* custom advancementdone message

Signed-off-by: illyrius666 <fitimq@live.nl>

* more logic

Signed-off-by: illyrius666 <fitimq@live.nl>

* +

Signed-off-by: illyrius666 <fitimq@live.nl>

* Update softprops/action-gh-release digest to 62c96d0 (#253)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* Update gradle/actions digest to cd4b95f (#252)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* +

Signed-off-by: illyrius666 <fitimq@live.nl>

* feat/PlayerModule/XpInSkull (#249)

* init

Signed-off-by: illyrius666 <fitimq@live.nl>

* using parsed

Signed-off-by: illyrius666 <fitimq@live.nl>

* +

Signed-off-by: illyrius666 <fitimq@live.nl>

---------

Signed-off-by: illyrius666 <fitimq@live.nl>
Signed-off-by: Illyrius <28700752+illyrius666@users.noreply.github.com>

* fix merge

Signed-off-by: illyrius666 <fitimq@live.nl>

* feat/ScoreBoardModule (#254)

* init

Signed-off-by: illyrius666 <fitimq@live.nl>

* v-

Signed-off-by: illyrius666 <fitimq@live.nl>

* clearing scoreboard

Signed-off-by: illyrius666 <fitimq@live.nl>

* adjusted aliasses

Signed-off-by: illyrius666 <fitimq@live.nl>

* added toggle function

Signed-off-by: illyrius666 <fitimq@live.nl>

* logging improvements

Signed-off-by: illyrius666 <fitimq@live.nl>

* fixup some formatting

Signed-off-by: illyrius666 <fitimq@live.nl>

* take 2

Signed-off-by: illyrius666 <fitimq@live.nl>

* take 3

Signed-off-by: illyrius666 <fitimq@live.nl>

* made it consistent across restarts

Signed-off-by: illyrius666 <fitimq@live.nl>

* fix boolean

Signed-off-by: illyrius666 <fitimq@live.nl>

* fix boolean

Signed-off-by: illyrius666 <fitimq@live.nl>

* v+

Signed-off-by: illyrius666 <fitimq@live.nl>

---------

Signed-off-by: illyrius666 <fitimq@live.nl>

* updated to use pdc from data instead of legacy itemmeta, and added that the spawner item has the type in the lore if applicable.

Signed-off-by: illyrius666 <fitimq@live.nl>

* [ci-skip] added validation on the sleepPercentage

Signed-off-by: illyrius666 <fitimq@live.nl>

* [ci-skip] switched to jackson builder, and cleanedup some unused config values

Signed-off-by: illyrius666 <fitimq@live.nl>

* [ci-skip] refactored inRange check to take any kind of numbered type

Signed-off-by: illyrius666 <fitimq@live.nl>

* Update softprops/action-gh-release digest to f38efde (#255)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Illyrius <28700752+illyrius666@users.noreply.github.com>

* [ci-skip] refactor PlayerData.kt where we add helper methods to make things simpler in the implementation files

Signed-off-by: illyrius666 <fitimq@live.nl>

* +

Signed-off-by: illyrius666 <fitimq@live.nl>

* cleanup

Signed-off-by: illyrius666 <fitimq@live.nl>

* more cleanup

Signed-off-by: illyrius666 <fitimq@live.nl>

* more cleanup

Signed-off-by: illyrius666 <fitimq@live.nl>

* +

Signed-off-by: illyrius666 <fitimq@live.nl>

---------

Signed-off-by: illyrius666 <fitimq@live.nl>
Signed-off-by: Illyrius <28700752+illyrius666@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix missing perms

Signed-off-by: illyrius666 <fitimq@live.nl>

* remove ignoreStructureVoidBlocks for now till its fixed.

Signed-off-by: illyrius666 <fitimq@live.nl>

* feat/NPCModule (#266)

* +

Signed-off-by: illyrius666 <fitimq@live.nl>

* use jpenillas resource factory so the manual yml is unneeded.

Signed-off-by: illyrius666 <fitimq@live.nl>

* stdlib instead of stdlib-jdk8

Signed-off-by: illyrius666 <fitimq@live.nl>

* tweaking

Signed-off-by: illyrius666 <fitimq@live.nl>

* fix version and using JsonMapper instead

Signed-off-by: illyrius666 <fitimq@live.nl>

* making configmanager use datainterface and refactoring datainterface to be more generic

Signed-off-by: illyrius666 <fitimq@live.nl>

* woops

Signed-off-by: illyrius666 <fitimq@live.nl>

* added module.key() util

Signed-off-by: illyrius666 <fitimq@live.nl>

* [ci-skip] Update gradle/actions digest to 6a96db5 (#259)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* [ci-skip] Update plugin xyz.jpenilla.run-paper to v3.0.2 (#260)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fmt

Signed-off-by: illyrius666 <fitimq@live.nl>

* [ci-skip] Update softprops/action-gh-release digest to 6da8fa9 (#261)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* playerskull not displayname but name instead

Signed-off-by: illyrius666 <fitimq@live.nl>

* init

Signed-off-by: Illyrius <FitimQ@live.nl>

* +

Signed-off-by: Illyrius <FitimQ@live.nl>

* +

Signed-off-by: Illyrius <FitimQ@live.nl>

* +

* +

* edit var name

Signed-off-by: illyrius666 <fitimq@live.nl>

* +

Signed-off-by: illyrius666 <fitimq@live.nl>

* some check

Signed-off-by: illyrius666 <fitimq@live.nl>

* +

Signed-off-by: illyrius666 <fitimq@live.nl>

* fix config

Signed-off-by: illyrius666 <fitimq@live.nl>

* added head before name in chat

Signed-off-by: illyrius666 <fitimq@live.nl>

* rename

Signed-off-by: illyrius666 <fitimq@live.nl>

* fix sprite

Signed-off-by: illyrius666 <fitimq@live.nl>

* fix order

Signed-off-by: illyrius666 <fitimq@live.nl>

* fmt

Signed-off-by: illyrius666 <fitimq@live.nl>

* expressions and handling in config

Signed-off-by: illyrius666 <fitimq@live.nl>

* fmt

Signed-off-by: illyrius666 <fitimq@live.nl>

* refactor

Signed-off-by: illyrius666 <fitimq@live.nl>

* added sounds to the trade

Signed-off-by: illyrius666 <fitimq@live.nl>

---------

Signed-off-by: illyrius666 <fitimq@live.nl>
Signed-off-by: Illyrius <FitimQ@live.nl>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* [ci-skip] Update dependency org.mariuszgromada.math:MathParser.org-mXparser to v6 (#267)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* +

Signed-off-by: illyrius666 <fitimq@live.nl>

* [ci-skip] Update actions/checkout digest to ff7abcd (#268)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix

Signed-off-by: illyrius666 <fitimq@live.nl>

* fmt

Signed-off-by: illyrius666 <fitimq@live.nl>

* moving of npcmodule to mobsmodule and rename of mobsmodule to entitymodule

Signed-off-by: illyrius666 <fitimq@live.nl>

* refactor and fix ConfigManager.kt

Signed-off-by: illyrius666 <fitimq@live.nl>

* [ci-skip] fix config take 1

Signed-off-by: illyrius666 <fitimq@live.nl>

* finally fixed

Signed-off-by: illyrius666 <fitimq@live.nl>

* removed SleepModule as there is a built in gamerule

Signed-off-by: illyrius666 <fitimq@live.nl>

* [ci-skip] Update softprops/action-gh-release digest to 5434409 (#278)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix/#280 (#281)

* Update ci_cd.yml

Signed-off-by: Illyrius <28700752+illyrius666@users.noreply.github.com>

* Update ci_cd.yml

Signed-off-by: Illyrius <28700752+illyrius666@users.noreply.github.com>

* Update feature.yml

Signed-off-by: Illyrius <28700752+illyrius666@users.noreply.github.com>

* Update feature.yml

Signed-off-by: Illyrius <28700752+illyrius666@users.noreply.github.com>

* Update bug.yml

Signed-off-by: Illyrius <28700752+illyrius666@users.noreply.github.com>

* Update config.yml

Signed-off-by: Illyrius <28700752+illyrius666@users.noreply.github.com>

* Update renovate.json

Signed-off-by: Illyrius <28700752+illyrius666@users.noreply.github.com>

* Update bug.yml

Signed-off-by: Illyrius <28700752+illyrius666@users.noreply.github.com>

* Update bug.yml

Signed-off-by: Illyrius <28700752+illyrius666@users.noreply.github.com>

* Update feature.yml

Signed-off-by: Illyrius <28700752+illyrius666@users.noreply.github.com>

* swapped from checking if air to isCollidable

Signed-off-by: illyrius666 <fitimq@live.nl>

---------

Signed-off-by: Illyrius <28700752+illyrius666@users.noreply.github.com>
Signed-off-by: illyrius666 <fitimq@live.nl>

* fix enderchest open duplication

Signed-off-by: Illyrius <FitimQ@live.nl>

* [ci-skip] Update gradle/actions digest to f106089 (#282)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* attempt to fix the enderchest mouse glitch

Signed-off-by: illyrius666 <fitimq@live.nl>

* removing sign module, keeping formatting vanilla.

Signed-off-by: illyrius666 <fitimq@live.nl>

* refactor

Signed-off-by: illyrius666 <fitimq@live.nl>

* config refactor

Signed-off-by: illyrius666 <fitimq@live.nl>

* added msg tell tellraw to aliases so their formatting gets fixed. we can now also remove the permissions blocking those for it.

Signed-off-by: illyrius666 <fitimq@live.nl>

* switch back to worldedit

Signed-off-by: Illyrius <FitimQ@live.nl>

* [ci-skip] Update gradle/actions digest to a009669 (#284)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* [ci-skip] Update plugin org.jetbrains.kotlin.jvm to v2.2.21 (#285)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* [ci-skip] Update softprops/action-gh-release digest to aa05f9d (#286)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* [ci-skip] Update GitHub Artifact Actions (#287)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* feat/SignModule (#288)

* init

Signed-off-by: Illyrius <FitimQ@live.nl>

* fixed "" needed for normal text (still needed for MM) suggestion for line now shows 1..4 as suggestion

Signed-off-by: Illyrius <FitimQ@live.nl>

---------

Signed-off-by: Illyrius <FitimQ@live.nl>

* [ci-skip] Update dependency com.sk89q.worldedit:worldedit-bukkit to v7.3.17 (#289)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* added customizing respawn point setting message

Signed-off-by: Illyrius <FitimQ@live.nl>

* cleanup ExtUtils.kt

Signed-off-by: Illyrius <FitimQ@live.nl>

* +

Signed-off-by: illyrius666 <fitimq@live.nl>

* removal of unnecessary suppress

Signed-off-by: Illyrius <FitimQ@live.nl>

* +

Signed-off-by: Illyrius <FitimQ@live.nl>

* +

Signed-off-by: illyrius666 <fitimq@live.nl>

* feat/ArmorStandModule (#290)

* +

Signed-off-by: illyrius666 <fitimq@live.nl>

* init

Signed-off-by: illyrius666 <fitimq@live.nl>

* mainhand armorstand functionality setting and getting

Signed-off-by: illyrius666 <fitimq@live.nl>

* v+

Signed-off-by: illyrius666 <fitimq@live.nl>

* +

Signed-off-by: illyrius666 <fitimq@live.nl>

* added gui deps

Signed-off-by: illyrius666 <fitimq@live.nl>

* added init gui

Signed-off-by: illyrius666 <fitimq@live.nl>

* oops

Signed-off-by: illyrius666 <fitimq@live.nl>

* oppa

Signed-off-by: illyrius666 <fitimq@live.nl>

* added armorstand arms toggling

Signed-off-by: illyrius666 <fitimq@live.nl>

* blub

Signed-off-by: illyrius666 <fitimq@live.nl>

* cleanup

Signed-off-by: illyrius666 <fitimq@live.nl>

* equipment swap handling

Signed-off-by: illyrius666 <fitimq@live.nl>

* cleanup

Signed-off-by: illyrius666 <fitimq@live.nl>

* todo

Signed-off-by: illyrius666 <fitimq@live.nl>

* from stateless to rendered component due to itemstack updates needed.

Signed-off-by: illyrius666 <fitimq@live.nl>

* +

Signed-off-by: illyrius666 <fitimq@live.nl>

* some refactorign

Signed-off-by: illyrius666 <fitimq@live.nl>

* locs

Signed-off-by: illyrius666 <fitimq@live.nl>

* ref

Signed-off-by: illyrius666 <fitimq@live.nl>

* attempt 1 into fixing the click handling

Signed-off-by: illyrius666 <fitimq@live.nl>

* todo

Signed-off-by: illyrius666 <fitimq@live.nl>

* take 2

Signed-off-by: illyrius666 <fitimq@live.nl>

* refactor

Signed-off-by: illyrius666 <fitimq@live.nl>

* i think iam doing something wrong

Signed-off-by: illyrius666 <fitimq@live.nl>

* +

Signed-off-by: illyrius666 <fitimq@live.nl>

* refactor

Signed-off-by: illyrius666 <fitimq@live.nl>

* use jpenillas resource factory so the manual yml is unneeded.

Signed-off-by: illyrius666 <fitimq@live.nl>

* stdlib instead of stdlib-jdk8

Signed-off-by: illyrius666 <fitimq@live.nl>

* tweaking

Signed-off-by: illyrius666 <fitimq@live.nl>

* +

Signed-off-by: illyrius666 <fitimq@live.nl>

* different gui library

Signed-off-by: illyrius666 <fitimq@live.nl>

* buba

Signed-off-by: illyrius666 <fitimq@live.nl>

* baseplate toggling

Signed-off-by: illyrius666 <fitimq@live.nl>

* added size toggling

Signed-off-by: illyrius666 <fitimq@live.nl>

* added more options slot

Signed-off-by: illyrius666 <fitimq@live.nl>

* refactor

Signed-off-by: illyrius666 <fitimq@live.nl>

* take 1

Signed-off-by: illyrius666 <fitimq@live.nl>

* take 2

Signed-off-by: illyrius666 <fitimq@live.nl>

* take 3

Signed-off-by: illyrius666 <fitimq@live.nl>

* +

Signed-off-by: illyrius666 <fitimq@live.nl>

* fix version and using JsonMapper instead

Signed-off-by: illyrius666 <fitimq@live.nl>

* making configmanager use datainterface and refactoring datainterface to be more generic

Signed-off-by: illyrius666 <fitimq@live.nl>

* woops

Signed-off-by: illyrius666 <fitimq@live.nl>

* added module.key() util

Signed-off-by: illyrius666 <fitimq@live.nl>

* [ci-skip] Update gradle/actions digest to 6a96db5 (#259)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* [ci-skip] Update plugin xyz.jpenilla.run-paper to v3.0.2 (#260)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fmt

Signed-off-by: illyrius666 <fitimq@live.nl>

* [ci-skip] Update softprops/action-gh-release digest to 6da8fa9 (#261)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* playerskull not displayname but name instead

Signed-off-by: illyrius666 <fitimq@live.nl>

* setting item in armostand works now kinda, still need to nullify the player holding the item (now duplicates)

Signed-off-by: illyrius666 <fitimq@live.nl>

* +

Signed-off-by: illyrius666 <fitimq@live.nl>

* setting/getting part 1

Signed-off-by: illyrius666 <fitimq@live.nl>

* fix merge conflicts

Signed-off-by: illyrius666 <fitimq@live.nl>

* +

Signed-off-by: illyrius666 <fitimq@live.nl>

* using built in inventory handling instead of third party library

Signed-off-by: Illyrius <FitimQ@live.nl>

* bloop

Signed-off-by: Illyrius <FitimQ@live.nl>

* bumbum

Signed-off-by: Illyrius <FitimQ@live.nl>

* +

Signed-off-by: Illyrius <FitimQ@live.nl>

* fix lang stuff

Signed-off-by: illyrius666 <fitimq@live.nl>

* refactor ExtUtils.kt

Signed-off-by: illyrius666 <fitimq@live.nl>

* some fmt

Signed-off-by: illyrius666 <fitimq@live.nl>

* slot fix for extra options button

Signed-off-by: illyrius666 <fitimq@live.nl>

* added kdocs

Signed-off-by: illyrius666 <fitimq@live.nl>

* fix equipment slot filter

Signed-off-by: illyrius666 <fitimq@live.nl>

* blub

Signed-off-by: illyrius666 <fitimq@live.nl>

* +

Signed-off-by: illyrius666 <fitimq@live.nl>

* forgot enabled check in event

Signed-off-by: illyrius666 <fitimq@live.nl>

* fix shifting

Signed-off-by: illyrius666 <fitimq@live.nl>

* some refactor

Signed-off-by: illyrius666 <fitimq@live.nl>

---------

Signed-off-by: illyrius666 <fitimq@live.nl>
Signed-off-by: Illyrius <FitimQ@live.nl>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* [ci-skip] Update plugin xyz.jpenilla.run-paper to v3.0.2 (#293)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* remove unused keys

Signed-off-by: illyrius666 <fitimq@live.nl>

* init (#297)

Signed-off-by: illyrius666 <fitimq@live.nl>

* moving to circleci

Signed-off-by: illyrius666 <fitimq@live.nl>

* beeb boob

Signed-off-by: Illyrius <28700752+illyrius666@users.noreply.github.com>

* [ci-skip] Update Gradle to v9.2.0 (#300)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* feat/ArmorStandModule/V2 (#299)

* init

Signed-off-by: Illyrius <28700752+illyrius666@users.noreply.github.com>

* move to MenuType API

Signed-off-by: Illyrius <f.qerimi@xodium.org>

* tracking inv - armorstand

Signed-off-by: Illyrius <f.qerimi@xodium.org>

* refactor

Signed-off-by: Illyrius <f.qerimi@xodium.org>

* more refactor

Signed-off-by: Illyrius <f.qerimi@xodium.org>

* more ref

Signed-off-by: Illyrius <f.qerimi@xodium.org>

* added todo

Signed-off-by: Illyrius <f.qerimi@xodium.org>

* refactor

Signed-off-by: Illyrius <FitimQ@live.nl>

* seperating view from inventory and adding poseGUi init

Signed-off-by: Illyrius <FitimQ@live.nl>

* lub

Signed-off-by: Illyrius <FitimQ@live.nl>

* +

Signed-off-by: Illyrius <FitimQ@live.nl>

* implement rotations

Signed-off-by: Illyrius <f.qerimi@xodium.org>

* init using mod for easier gui

Signed-off-by: Illyrius <f.qerimi@xodium.org>

* init

Signed-off-by: Illyrius <f.qerimi@xodium.org>

* fix all issues

Signed-off-by: Illyrius <f.qerimi@xodium.org>

* oops

Signed-off-by: Illyrius <f.qerimi@xodium.org>

* kdocs

Signed-off-by: Illyrius <f.qerimi@xodium.org>

---------

Signed-off-by: Illyrius <28700752+illyrius666@users.noreply.github.com>
Signed-off-by: Illyrius <f.qerimi@xodium.org>
Signed-off-by: Illyrius <FitimQ@live.nl>

* rename

Signed-off-by: Illyrius <f.qerimi@xodium.org>

* remove skull xp stuff

Signed-off-by: Illyrius <f.qerimi@xodium.org>

* added drop chance to player skull

Signed-off-by: Illyrius <f.qerimi@xodium.org>

* [ci-skip] Update dependency com.fasterxml.jackson.datatype:jackson-datatype-jsr310 to v2.20.1 (#302)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* [ci-skip] Update dependency com.fasterxml.jackson.module:jackson-module-kotlin to v2.20.1 (#303)

Signed-off-by: Illyrius <28700752+illyrius666@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Illyrius <28700752+illyrius666@users.noreply.github.com>

* feat/PlayerModule/xpToBottle (#301)

* init

Signed-off-by: Illyrius <f.qerimi@xodium.org>

* +

Signed-off-by: Illyrius <f.qerimi@xodium.org>

* finish

Signed-off-by: Illyrius <f.qerimi@xodium.org>

---------

Signed-off-by: Illyrius <f.qerimi@xodium.org>

* +

Signed-off-by: Illyrius <fitimq@live.nl>

* small fix

Signed-off-by: Illyrius <fitimq@live.nl>

* oopsie

Signed-off-by: Illyrius <fitimq@live.nl>

* cleanup

Signed-off-by: Illyrius <fitimq@live.nl>

* remove wandering trading horse

Signed-off-by: Illyrius <FitimQ@live.nl>

* feat/EntityModule/MobEggDrop (#308)

* init

Signed-off-by: Illyrius <FitimQ@live.nl>

* docs(pr): update pull request template

Signed-off-by: Illyrius <FitimQ@live.nl>

---------

Signed-off-by: Illyrius <FitimQ@live.nl>

* dismount sitting on entity attack.

Signed-off-by: Illyrius <FitimQ@live.nl>

* fix/InvModule/SearchCmd (#309)

* init

Signed-off-by: Illyrius <FitimQ@live.nl>

* init

Signed-off-by: Illyrius <FitimQ@live.nl>

* use utils in module

Signed-off-by: Illyrius <FitimQ@live.nl>

* refactor: update particle effects and clean up unused code in InvModule

Signed-off-by: Illyrius <fitimq@live.nl>

* refactor: simplify block utility functions and improve property access

Signed-off-by: Illyrius <fitimq@live.nl>

* refactor: convert nickname and scoreboard visibility functions to properties for improved access

Signed-off-by: Illyrius <fitimq@live.nl>

* refactor: add extension property to check container block accessibility

Signed-off-by: Illyrius <fitimq@live.nl>

* added todo

Signed-off-by: Illyrius <fitimq@live.nl>

* refactor: simplify BookData initialization by setting default values for title and author

Signed-off-by: Illyrius <fitimq@live.nl>

* refactor: enhance command utility functions for improved hover text and command execution

Signed-off-by: Illyrius <fitimq@live.nl>

* refactor: update delete cross-component to use SignedMessage for improved message handling

Signed-off-by: Illyrius <fitimq@live.nl>

* refactor: remove isContainerAccessible check from inventory module for cleaner code

Signed-off-by: Illyrius <fitimq@live.nl>

* refactor: move hasMatchingEnchantments logic to ItemStackUtils for better modularity

Signed-off-by: Illyrius <fitimq@live.nl>

* refactor: remove lastUnloads map and simplify player quit handling

Signed-off-by: Illyrius <fitimq@live.nl>

* woops

Signed-off-by: Illyrius <fitimq@live.nl>

* cleanup

Signed-off-by: Illyrius <fitimq@live.nl>

* refactor: simplify item transfer logic and remove unused performUnload method

Signed-off-by: Illyrius <fitimq@live.nl>

* refactor: improve container handling in inventory transfer logic

Signed-off-by: Illyrius <fitimq@live.nl>

* add todo

Signed-off-by: Illyrius <fitimq@live.nl>

* fix legacy material usage

Signed-off-by: Illyrius <fitimq@live.nl>

* confused

Signed-off-by: Illyrius <fitimq@live.nl>

* feat: add agent migration state configuration and optimize item stack comparison logic

Signed-off-by: Illyrius <fitimq@live.nl>

* Update src/main/kotlin/org/xodium/vanillaplus/utils/ItemStackUtils.kt

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Illyrius <28700752+illyrius666@users.noreply.github.com>

* Update src/main/kotlin/org/xodium/vanillaplus/modules/ChatModule.kt

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Illyrius <28700752+illyrius666@users.noreply.github.com>

---------

Signed-off-by: Illyrius <FitimQ@live.nl>
Signed-off-by: Illyrius <fitimq@live.nl>
Signed-off-by: Illyrius <28700752+illyrius666@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* refactor: optimize chunk processing and clean up action bar message

Signed-off-by: Illyrius <fitimq@live.nl>

* +

Signed-off-by: Illyrius <fitimq@live.nl>

* Refactor/armor stand module (#311)

* removed RenameHandler.kt as you can rename easily with nametag

Signed-off-by: Illyrius <fitimq@live.nl>

* refactor SwapHandler to use DataInputStream for packet processing and improve error handling

Signed-off-by: Illyrius <fitimq@live.nl>

* refactor SwapHandler to simplify item swapping logic for ArmorStand

Signed-off-by: Illyrius <fitimq@live.nl>

---------

Signed-off-by: Illyrius <fitimq@live.nl>

* oops

Signed-off-by: Illyrius <fitimq@live.nl>

* oops

Signed-off-by: Illyrius <fitimq@live.nl>

* Remove MathParser dependency and update project configuration for Paper API

Signed-off-by: Illyrius <fitimq@live.nl>

* Remove redundant 'enabled' property from module configurations

Signed-off-by: Illyrius <fitimq@live.nl>

* Refactor module classes to use a unified configuration interface

Signed-off-by: Illyrius <fitimq@live.nl>

* Update treeMask to include additional materials for enhanced tree generation

Signed-off-by: Illyrius <fitimq@live.nl>

* Refactor SAPLING_LINKS to use a single string for directory paths

Signed-off-by: Illyrius <fitimq@live.nl>

* Refactor SilkTouchModule to simplify spawner handling and remove unused code

Signed-off-by: Illyrius <fitimq@live.nl>

* feat/PlayerModule/ReplantEnchantment (#312)

* init

Signed-off-by: Illyrius <fitimq@live.nl>

* setup

Signed-off-by: Illyrius <fitimq@live.nl>

* Add automatic crop replanting on block break in PlayerModule

Signed-off-by: Illyrius <fitimq@live.nl>

* Implement replanting functionality with ReplantEnchantment in PlayerModule

Signed-off-by: Illyrius <fitimq@live.nl>

---------

Signed-off-by: Illyrius <fitimq@live.nl>

* Feat/player module/pickup enchant (#313)

* init

Signed-off-by: Illyrius <FitimQ@live.nl>

* feat: implement pickup functionality and refactor replant logic

Signed-off-by: Illyrius <FitimQ@live.nl>

* feat: implement pickup functionality in PickupEnchantment and update replant logic

Signed-off-by: Illyrius <FitimQ@live.nl>

* feat: update PickupEnchantment to use PICKUP constant and register tools tag

Signed-off-by: Illyrius <FitimQ@live.nl>

---------

Signed-off-by: Illyrius <FitimQ@live.nl>

* feat: add support for additional source roots in Gradle configuration and update item type keys

Signed-off-by: Illyrius <fitimq@live.nl>

* feat: add support for brush item type in VanillaPlusBootstrap

Signed-off-by: Illyrius <fitimq@live.nl>

* feat: add support for fishing rod item type in VanillaPlusBootstrap

Signed-off-by: Illyrius <fitimq@live.nl>

* feat: update description handling in PickupEnchantment and ReplantEnchantment

Signed-off-by: Illyrius <fitimq@live.nl>

* feat: streamline event handler for Replant and Pickup enchantments

Signed-off-by: Illyrius <fitimq@live.nl>

* feat/Enchantment/NightVision (#314)

* init

Signed-off-by: Illyrius <fitimq@live.nl>

* feat: refactor enchantment key generation in EnchantmentInterface and related classes

Signed-off-by: Illyrius <fitimq@live.nl>

* feat: implement night vision effect handling for helmet enchantment

Signed-off-by: Illyrius <fitimq@live.nl>

* feat: add event handler for night vision enchantment equipment changes

Signed-off-by: Illyrius <fitimq@live.nl>

* feat: update enchantment costs and levels for Night Vision, Pickup, and Replant enchantments

Signed-off-by: Illyrius <FitimQ@live.nl>

* feat: improve night vision enchantment handling and null safety

Signed-off-by: Illyrius <FitimQ@live.nl>

---------

Signed-off-by: Illyrius <fitimq@live.nl>
Signed-off-by: Illyrius <FitimQ@live.nl>

* feat: add weapons and tools_weapons tags in VanillaPlusBootstrap

Signed-off-by: Illyrius <FitimQ@live.nl>

* feat: add mace item type support in VanillaPlusBootstrap

Signed-off-by: Illyrius <FitimQ@live.nl>

* feat: rename builder method to invoke in enchantment implementations

Signed-off-by: Illyrius <FitimQ@live.nl>

* feat: refactor enchantment registration to use direct keys instead of constants

Signed-off-by: Illyrius <FitimQ@live.nl>

* feat: update pickup enchantment to use block location for item drops

Signed-off-by: Illyrius <FitimQ@live.nl>

* feat: update Pickup enchantment to handle block drop events for item pickups

Signed-off-by: Illyrius <FitimQ@live.nl>

* feat: enhance Pickup enchantment to track preferred tool usage during block breaks

Signed-off-by: Illyrius <FitimQ@live.nl>

* feat: simplify Pickup enchantment by removing preferred tool check and unused location tracking

Signed-off-by: Illyrius <FitimQ@live.nl>

* feat/Enchantment/NimbusEnchantment? (#315)

* init

Signed-off-by: Illyrius <FitimQ@live.nl>

* impl

Signed-off-by: Illyrius <FitimQ@live.nl>

* feat: adjust Nimbus enchantment flying speed and add TODO for maxLevel implementation

Signed-off-by: Illyrius <FitimQ@live.nl>

* feat: remove unused DEFAULTS object and streamline Nimbus enchantment flying speed logic

Signed-off-by: Illyrius <FitimQ@live.nl>

* feat: enhance Nimbus enchantment flying speed logic with level-based multipliers

Signed-off-by: Illyrius <FitimQ@live.nl>

* feat: update Nimbus enchantment speed multipliers for improved level scaling

Signed-off-by: Illyrius <FitimQ@live.nl>

---------

Signed-off-by: Illyrius <FitimQ@live.nl>

* refactor: remove unused KClass references in ConfigManager and DataInterface

Signed-off-by: Illyrius <FitimQ@live.nl>

* refactor: replace KClass.simpleName with Class.simpleName for consistency

Signed-off-by: Illyrius <FitimQ@live.nl>

* refactor: update argument type retrieval to use String().javaClass for consistency

Signed-off-by: Illyrius <FitimQ@live.nl>

* [ci-skip] Update Gradle to v9.2.1 (#318)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* feat: implement Silk Touch enchantment with block handling and configuration (moving away from a module)

Signed-off-by: Illyrius <fitimq@live.nl>

* feat: implement Feather Falling enchantment handling in the system

Signed-off-by: Illyrius <fitimq@live.nl>

* feat: add handling for PlayerInteractEvent to prevent farmland trampling with Feather Falling boots

Signed-off-by: Illyrius <fitimq@live.nl>

* feat: refactor ender chest handling in InventoryClickEvent for improved readability and maintainability

Signed-off-by: Illyrius <fitimq@live.nl>

* feat: refactor PlayerModule to remove dependency on TabListModule and improve encapsulation

Signed-off-by: Illyrius <fitimq@live.nl>

* feat: remove RecipiesModule from ModuleManager and add recipe discovery handling in PlayerModule

Signed-off-by: Illyrius <fitimq@live.nl>

* should stay vanilla

Signed-off-by: Illyrius <fitimq@live.nl>

* cleanup

Signed-off-by: Illyrius <fitimq@live.nl>

* fmt

Signed-off-by: Illyrius <fitimq@live.nl>

* fmt 2

Signed-off-by: Illyrius <fitimq@live.nl>

* feat/Enchantment/VeinMine (#316)

* init

Signed-off-by: Illyrius <FitimQ@live.nl>

* feat: implement VeinMine enchantment functionality

Signed-off-by: Illyrius <FitimQ@live.nl>

* Implement Vein Mine enchantment functionality and clean up imports

Signed-off-by: Illyrius <fitimq@live.nl>

* Implement vein mining logic and connected block detection in VeinMineEnchantment

Signed-off-by: Illyrius <fitimq@live.nl>

* Prevent vein mining in creative mode

Signed-off-by: Illyrius <fitimq@live.nl>

* Refactor enchantment description handling to use proper display names

Signed-off-by: Illyrius <fitimq@live.nl>

* Enhance vein mining to support item pickup and drop handling

Signed-off-by: Illyrius <fitimq@live.nl>

* Add item transfer functionality to PickupEnchantment for improved item handling

Signed-off-by: Illyrius <fitimq@live.nl>

* added todo

Signed-off-by: Illyrius <fitimq@live.nl>

* Implement ore validation for vein mining to restrict functionality to valid ores

Signed-off-by: Illyrius <fitimq@live.nl>

* Refactor vein mining enchantment to use level-based block limits and adjust cost parameters

Signed-off-by: Illyrius <fitimq@live.nl>

* Refactor NimbusEnchantment to use a speed modifier map and enhance ore validation in VeinMineEnchantment

Signed-off-by: Illyrius <fitimq@live.nl>

---------

Signed-off-by: Illyrius <FitimQ@live.nl>
Signed-off-by: Illyrius <28700752+illyrius666@users.noreply.github.com>
Signed-off-by: Illyrius <fitimq@live.nl>

* Feat/rotten flesh recipe (#319)

* init

Signed-off-by: Illyrius <FitimQ@live.nl>

* feat: add RecipeModule to handle recipe mechanics and register RottenFleshRecipe

Signed-off-by: Illyrius <FitimQ@live.nl>

---------

Signed-off-by: Illyrius <FitimQ@live.nl>

* refactor: rename getRecipes to recipes in RecipeInterface and RottenFleshRecipe

Signed-off-by: Illyrius <FitimQ@live.nl>

* init (#320)

Signed-off-by: Illyrius <FitimQ@live.nl>

* refactor: correct spelling of 'recipes' in package names

Signed-off-by: Illyrius <fitimq@live.nl>

* Add CI/CD workflow for building the application

Signed-off-by: Illyrius <fitimq@live.nl>

* [ci-skip] Update gradle/actions digest to 261794a (#321)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* fix/InvModule/SearchCmd (#323)

* init

Signed-off-by: Illyrius <fitimq@live.nl>

* Refactor chat formatting and introduce custom MiniMessage tag resolvers

Signed-off-by: Illyrius <fitimq@live.nl>

* Update BookData to use inline fire formatting for title

Signed-off-by: Illyrius <fitimq@live.nl>

* Add scheduling functionality for particle effects in InvModule

Signed-off-by: Illyrius <fitimq@live.nl>

* Refactor scheduling logic by introducing ScheduleUtils for particle tasks

Signed-off-by: Illyrius <fitimq@live.nl>

* Introduce FmtUtils for custom MiniMessage tag resolvers

Signed-off-by: Illyrius <fitimq@live.nl>

* Refactor FmtUtils to use Component for placeholder styling

Signed-off-by: Illyrius <fitimq@live.nl>

* Add closing gradient placeholders to FmtUtils for enhanced formatting

Signed-off-by: Illyrius <fitimq@live.nl>

* Enhance chat and action bar formatting with gradients for improved visual appeal

Signed-off-by: Illyrius <fitimq@live.nl>

* Update chat and tab list formatting with gradient transitions for enhanced visual consistency

Signed-off-by: Illyrius <fitimq@live.nl>

* Enhance action bar message with gradient formatting for improved visual appeal

Signed-off-by: Illyrius <fitimq@live.nl>

* Enhance search command feedback with gradient action bar messages and particle effects for found chests

Signed-off-by: Illyrius <fitimq@live.nl>

* +

Signed-off-by: Illyrius <fitimq@live.nl>

* some todos

Signed-off-by: Illyrius <fitimq@live.nl>

---------

Signed-off-by: Illyrius <fitimq@live.nl>

* fix/InvModule/UnloadCmd (#324)

* inti

Signed-off-by: Illyrius <fitimq@live.nl>

* Refactor unload function to improve item transfer logic and particle effects

Signed-off-by: Illyrius <fitimq@live.nl>

* Update particle effect location and color in unload function

Signed-off-by: Illyrius <fitimq@live.nl>

* Reduce unload delay duration in inventory unload function

Signed-off-by: Illyrius <fitimq@live.nl>

---------

Signed-off-by: Illyrius <fitimq@live.nl>

* [ci-skip] Update actions/checkout action to v6 (#325)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* Restrict pull request target event types to 'opened'

Signed-off-by: Illyrius <fitimq@live.nl>

* refactor/ModulesToFeatures (#327)

* init

Signed-off-by: Illyrius <fitimq@live.nl>

* Implement cauldron mechanics feature and event listener

Signed-off-by: Illyrius <fitimq@live.nl>

* Add cauldron interaction event handling and register feature as listener

Signed-off-by: Illyrius <fitimq@live.nl>

* Refactor cauldron interaction handling and improve event registration logging

Signed-off-by: Illyrius <fitimq@live.nl>

* Enhance recipe registration logging with execution time measurement

Signed-off-by: Illyrius <fitimq@live.nl>

* Refactor module management and add MOTD feature implementation

Signed-off-by: Illyrius <fitimq@live.nl>

* Add BooksFeature implementation for handling book mechanics and commands

Signed-off-by: Illyrius <fitimq@live.nl>

* Add ChatFeature implementation for handling chat mechanics and whisper command

Signed-off-by: Illyrius <fitimq@live.nl>

* Refactor feature imports to use companion instance and add DimensionsFeature implementation

Signed-off-by: Illyrius <fitimq@live.nl>

* Refactor modules to features and update package structure for entity, inventory, locator, openable, pet, player, scoreboard, sign, sit, tab list, and trees mechanics

Signed-off-by: Illyrius <fitimq@live.nl>

* cleanup

Signed-off-by: Illyrius <fitimq@live.nl>

* Refactor SitFeature event handling for improved readability

Signed-off-by: Illyrius <fitimq@live.nl>

* Enhance TreesFeature to log a warning when WorldEdit is not found

Signed-off-by: Illyrius <fitimq@live.nl>

* cleanup

Signed-off-by: Illyrius <fitimq@live.nl>

* Refactor SoundData to prepare for kotlinx.serialization and update project configuration

Signed-off-by: Illyrius <fitimq@live.nl>

* Refactor FeatureInterface to simplify command alias handling

Signed-off-by: Illyrius <fitimq@live.nl>

* Add kotlinx.serialization plugin and dependencies to build configuration

Signed-off-by: Illyrius <fitimq@live.nl>

* Implement kotlinx.serialization for BookData and SoundData, and add SoundTypeSerializer

Signed-off-by: Illyrius <fitimq@live.nl>

* Add @Serializable annotation to Config data classes across multiple features

Signed-off-by: Illyrius <fitimq@live.nl>

* init DataInterface.kt

Signed-off-by: Illyrius <fitimq@live.nl>

* Expose config properties in feature objects and add CentralConfigData for centralized configuration management

Signed-off-by: Illyrius <fitimq@live.nl>

* Refactor configuration handling to use mutable properties and centralize config data loading and saving

Signed-off-by: Illyrius <fitimq@live.nl>

* Refactor CentralConfigData to use non-default constructor parameters for feature configurations

Signed-off-by: Illyrius <fitimq@live.nl>

* Refactor DataInterface to support dynamic feature configuration loading and saving

Signed-off-by: Illyrius <fitimq@live.nl>

* Refactor TreesFeature to conditionally register based on WorldEdit availability

Signed-off-by: Illyrius <fitimq@live.nl>

* Refactor WorldEditHook to improve logging for missing WorldEdit dependency

Signed-off-by: Illyrius <fitimq@live.nl>

* Refactor DataInterface to improve JSON serialization handling for feature configurations

Signed-off-by: Illyrius <fitimq@live.nl>

* sadge

Signed-off-by: Illyrius <fitimq@live.nl>

* Refactor features to remove kotlinx.serialization dependency and improve config encapsulation

Signed-off-by: Illyrius <fitimq@live.nl>

* Refactor features to integrate kotlinx.serialization for improved data handling and configuration management

Signed-off-by: Illyrius <fitimq@live.nl>

* Refactor SilkTouchEnchantment to integrate configuration from ConfigData and improve encapsulation

Signed-off-by: Illyrius <fitimq@live.nl>

* Refactor EnchantmentInterface and FeatureInterface to use shared configData for improved configuration management

Signed-off-by: Illyrius <fitimq@live.nl>

* Refactor configuration management by introducing ConfigManager for loading and saving config data

Signed-off-by: Illyrius <fitimq@live.nl>

* Refactor ConfigManager to improve configuration loading and error handling

Signed-off-by: Illyrius <fitimq@live.nl>

* Refactor ConfigManager to streamline configuration loading and improve logging

Signed-off-by: Illyrius <fitimq@live.nl>

* Refactor ConfigManager to return loaded configuration data and improve file handling

Signed-off-by: Illyrius <fitimq@live.nl>

* Refactor ConfigManager to optimize configuration loading with timing metrics and improve logging

Signed-off-by: Illyrius <fitimq@live.nl>

* Refactor ConfigManager to load configuration asynchronously and add kotlinx.coroutines dependency

Signed-off-by: Illyrius <fitimq@live.nl>

* Refactor ConfigManager to remove asynchronous loading and update configuration file handling

Signed-off-by: Illyrius <fitimq@live.nl>

---------

Signed-off-by: Illyrius <fitimq@live.nl>

* Refactor configuration loading logic for clarity and efficiency

Signed-off-by: Illyrius <fitimq@live.nl>

* Refactor data classes for improved property accessibility and clarity

Signed-off-by: Illyrius <fitimq@live.nl>

* Refactor SoundData to use string names for sound types and update related configurations

Signed-off-by: Illyrius <fitimq@live.nl>

* added todo

Signed-off-by: Illyrius <fitimq@live.nl>

* Add reload command and permission for VanillaPlus plugin

Signed-off-by: Illyrius <fitimq@live.nl>

* Refactor feature commands and permissions to use properties for improved readability

Signed-off-by: Illyrius <fitimq@live.nl>

* Refactor SitFeature to improve event handling and readability

Signed-off-by: Illyrius <fitimq@live.nl>

* Refactor TreesFeature to improve event handling and readability

Signed-off-by: Illyrius <fitimq@live.nl>

* Refactor ScoreBoardFeature to improve event handling and readability

Signed-off-by: Illyrius <fitimq@live.nl>

* Refactor PetFeature to improve event handling and readability

Signed-off-by: Illyrius <fitimq@live.nl>

* Refactor OpenableFeature to improve event handling and readability

Signed-off-by: Illyrius <fitimq@live.nl>

* Refactor MotdFeature to improve event handling and readability

Signed-off-by: Illyrius <fitimq@live.nl>

* fix

Signed-off-by: Illyrius <fitimq@live.nl>

* Fix double execution of load() in VanillaPlus.kt

Signed-off-by: Illyrius <fitimq@live.nl>

* Refactor RecipeInterface to use property for recipes

Signed-off-by: Illyrius <fitimq@live.nl>

* [ci-skip] Update actions/checkout action to v6 (#329)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* [ci-skip] Update actions/checkout action to v6.0.1 (#330)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* Remove CauldronFeature registration from VanillaPlus.kt

Signed-off-by: Illyrius <fitimq@live.nl>

* feat/TorchArrowRecipe (#332)

* init

Signed-off-by: Illyrius <fitimq@live.nl>

* Enhance TorchArrowRecipe to utilize persistent data for arrow crafting

Signed-off-by: Illyrius <fitimq@live.nl>

* Add custom name to Torch Arrow in recipe implementation

Signed-off-by: Illyrius <fitimq@live.nl>

* Implement TorchArrowFeature to handle mechanics for torch arrows on impact

Signed-off-by: Illyrius <fitimq@live.nl>

* Refactor TorchArrowFeature to improve torch placement logic on impact

Signed-off-by: Illyrius <fitimq@live.nl>

* Refactor TorchArrowFeature to separate launch and hit logic for torch arrows

Signed-off-by: Illyrius <fitimq@live.nl>

* Refactor TorchArrowFeature to improve torch arrow identification logic

Signed-off-by: Illyrius <fitimq@live.nl>

* Refactor TorchArrowFeature to unify launch and hit event handling for torch arrows

Signed-off-by: Illyrius <fitimq@live.nl>

* Refactor TorchArrowFeature to streamline torch arrow item handling and improve drop logic

Signed-off-by: Illyrius <fitimq@live.nl>

* Refactor TorchArrowFeature to add entity damage handling for torch arrows

Signed-off-by: Illyrius <fitimq@live.nl>

* Refactor TorchArrowFeature to remove redundant arrow drop logic and enhance entity damage handling

Signed-off-by: Illyrius <fitimq@live.nl>

* Refactor TorchArrowFeature to remove projectile launch handling for torch arrows

Signed-off-by: Illyrius <fitimq@live.nl>

* Refactor features to modules for improved organization and consistency

Signed-off-by: Illyrius <fitimq@live.nl>

---------

Signed-off-by: Illyrius <fitimq@live.nl>

* refactor: streamline configuration and command retrieval in interfaces

Signed-off-by: Illyrius <fitimq@live.nl>

* refactor: change command data return type from List to Collection in ModuleInterface

Signed-off-by: Illyrius <fitimq@live.nl>

* refactor: change config data initialization to nullable in ConfigManager

Signed-off-by: Illyrius <fitimq@live.nl>

* refactor: update config data handling in ConfigManager and VanillaPlus

Signed-off-by: Illyrius <fitimq@live.nl>

* refactor: update getOrCreateConfig to return existing configData if file does not exist

Signed-off-by: Illyrius <fitimq@live.nl>

* refactor: modify getOrCreateConfig to return a new instance of ConfigData when the file does not exist

Signed-off-by: Illyrius <fitimq@live.nl>

* refactor: replace tryCatch with executesCatching for standardized command error handling

Signed-off-by: Illyrius <fitimq@live.nl>

* refactor: rename feature to module in configuration data and update related references

Signed-off-by: Illyrius <fitimq@live.nl>

* refactor: add @SerialName annotations to modules in ConfigData for improved serialization

Signed-off-by: Illyrius <fitimq@live.nl>

* refactor: remove unused CONTAINER_TYPES from MaterialRegistry and change WorldEditHook to internal

Signed-off-by: Illyrius <fitimq@live.nl>

* refactor: add projectile launch event handler to apply visual effects for torch arrows

Signed-off-by: Illyrius <fitimq@live.nl>

* +

Signed-off-by: Illyrius <fitimq@live.nl>

* refactor: rename TorchArrowModule to ArrowModule for clarity and consistency

Signed-off-by: Illyrius <fitimq@live.nl>

* refactor: add @Serializable annotations to module configurations for improved serialization

Signed-off-by: Illyrius <fitimq@live.nl>

* refactor: implement CapitalizedStrategy for JSON property naming in configuration

Signed-off-by: Illyrius <fitimq@live.nl>

* refactor: apply OptIn annotation for ExperimentalSerializationApi in CapitalizedStrategy and ConfigManager

Signed-off-by: Illyrius <fitimq@live.nl>

* [ci-skip] Update plugin com.gradleup.shadow to v9.3.0 (#333)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* [ci-skip] Update gradle/actions digest to 9bc3ffb (#334)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* refactor: enhance message formatting in VanillaPlus.prefix with gradient colors

Signed-off-by: Illyrius <FitimQ@live.nl>

* refactor: move executesCatching function to CommandUtils for better organization

Signed-off-by: Illyrius <FitimQ@live.nl>

* refactor: relocate executesCatching import to CommandUtils for improved structure

Signed-off-by: Illyrius <FitimQ@live.nl>

* refactor: set default value for aliases in CommandData to improve usability

Signed-off-by: Illyrius <FitimQ@live.nl>

* refactor: replace executesCatching with playerExecuted for improved command handling

Signed-off-by: Illyrius <FitimQ@live.nl>

* refactor: extract portal event handling into separate functions for improved readability

Signed-off-by: Illyrius <FitimQ@live.nl>

* refactor: remove unused suppressions and update source paths for improved clarity

Signed-off-by: Illyrius <fitimq@live.nl>

* cleanup

Signed-off-by: Illyrius <fitimq@live.nl>

* oops

Signed-off-by: Illyrius <fitimq@live.nl>

* chore: add .editorconfig for consistent coding styles and update .gitignore

Signed-off-by: Illyrius <fitimq@live.nl>

* chore: update .gitignore to include modules.xml for better file management

Signed-off-by: Illyrius <fitimq@live.nl>

* refactor: remove wildcard import suppression for cleaner code

Signed-off-by: Illyrius <fitimq@live.nl>

* feat: add AdventureWebUiEditorAPI for session management and interaction

Signed-off-by: Illyrius <fitimq@live.nl>

* oops

Signed-off-by: Illyrius <fitimq@live.nl>

* [ci-skip] Update gradle/actions digest to 63b23c4 (#336)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* Feat/1.21.11 (#328)

* init

Signed-off-by: Illyrius <fitimq@live.nl>

* v+ pre4

Signed-off-by: Illyrius <fitimq@live.nl>

* v+ pre5

Signed-off-by: Illyrius <fitimq@live.nl>

* v+ rc1

Signed-off-by: Illyrius <fitimq@live.nl>

* v+ rc3

Signed-off-by: Illyrius <fitimq@live.nl>

* v+

Signed-off-by: Illyrius <fitimq@live.nl>

* Remove unused suppressions and format function signatures for better readability

Signed-off-by: Illyrius <fitimq@live.nl>

* +

Signed-off-by: Illyrius <fitimq@live.nl>

---------

Signed-off-by: Illyrius <fitimq@live.nl>

* feat: enhance torch arrow mechanics with dynamic properties and improved handling

Signed-off-by: Illyrius <fitimq@live.nl>

---------

Signed-off-by: illyrius666 <fitimq@live.nl>
Signed-off-by: Illyrius <28700752+illyrius666@users.noreply.github.com>
Signed-off-by: Illyrius <FitimQ@live.nl>
Signed-off-by: Illyrius <f.qerimi@xodium.org>
Signed-off-by: Illyrius <fitimq@live.nl>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants