Orestack | ⛏️ MMO Resources & Gathering Mechanics ✨ [1.16-1.21] icon

Orestack | ⛏️ MMO Resources & Gathering Mechanics ✨ [1.16-1.21] -----

Custom Structures | Harvesting & Growth Stages | YAML Scripting System | Must-have For RPG Servers!




- Hopefully fixed a bug where generators would disappear randomly

- Fixed a bug where players without command permission could still see command suggestions

- Fixed command usage message
----------, May 22, 2025

- Added dropExp, dropExpAtPlayer and dropExpAtBlock actions

- Added exp_tutorial.yml
- Added experience_ore.yml

- Added support for coral blocks to be used as generators
----------, May 20, 2025

This update breaks a lot of stuff, config.yml, language files, and internal placeholders (Format changed from %id% to {id}).

- Major changes to internal code
- Reworked language file
- Removed fr.yml and zh.yml for now
- Changed placeholder format from %id% to {id} for all internal placeholders
- Fixed 1.21.5 compatibility issues
- Updated NBTAPI and xSeries to the latest versions
- Updated bamboo.yml with latest scripting features
- More preparation for guis
----------, May 17, 2025

- Fixed a Leaf compatibility issue

- Fixed a bug where players without permission would still be able to place blocks when trying to place a generator

- Internal code refactoring in preparation for the upcoming GUI system
----------, May 15, 2025

- Fixed WorldGuard support, generator blocks can be broken inside protected regions. They will be broken normally like normal blocks increasing compatibility with other plugins that rely on breaking blocks such as: MMO Core and Aura Skills for skills exp.

- Added /orestack generator get-group <generator-group> command, the generator group is based on the folders in which the generator is located:
Code (Text):
/generators/crops -> crops
/generators/trees/vanilla -> trees_vanilla
With increasing number of generators this should make it easier to stay organized.
I also started developing a basic gui system to make the plugin easier to use.
----------, May 6, 2025

- Added 7 rock pile generators and 70 structures

[​IMG]

- Fixed dropItemsAtBlock spawning items inside the block

- Improved logic in magic_wheat.yml

- Improved backwards compability, copper.yml and copper_pile.yml examples only generate on 1.17+
----------, May 4, 2025

- Added 'goto' action
Code (YAML):
testGotoLine:
  - do
: goto 2

  - do
: chatMessage <This function will be skipped! >

  - do
: chatMessage <You skipped function 1 and are now on function 2>
- Reworked return and stop actions, stop ends all execution everywhere, return if used inside a function it will only end execution in the current function
Code (YAML):
on-break :
  - giveIronIfPerm
  - giveGoldIfPerm
  - chatMessage <This will not be sent because stop was used >

giveIronIfPerm
:
  - if-not
: hasPermission orestack.iron
    do
: return
  - do
: giveItemToPlayer IRON_INGOT

giveGoldIfPerm
:
  - if-not
: hasPermission orestack.gold
    do
: stop
  - do
: giveItemToPlayer GOLD_INGOT
 
- Yaml library now uses case sensitive keys

- functions.yml was removed and replaced with a folder

- Added misc.yml, tools.yml and trees.yml inside /functions/ folder

- Modified trees/vanilla/ generators, now if leaves are broken the generator remains unaltered

- Added resetGenerator action, it can be used in on-break

- Fixed 3 compability issues with 1.16.5
----------, Apr 30, 2025

- Fixed a bug where breaking blocks very fast would cause the generator to break

- Added 6 vanilla trees with over 50 new structures
----------, Apr 29, 2025

Dropped ItemsAdder/Nexo/Oraxen/etc.. support, I will not support any custom blocks plugins. I'll only add support for custom blocks if Mojang ever decides to get onto it.

- renamed items/items.yml to items/misc.yml
- renamed sounds/sounds.yml to sounds/misc.yml
- renamed messages/messages.yml to messages/misc.yml
- refactoring and code cleanup
----------, Apr 28, 2025

Warning: This release is unsuitable for servers in production, it should only be used for testing purposes

I do not own ItemsAdder so I cannot test the plugins together at the moment.

When Orestack is enabled you should see this message if ItemsAdder was found:
Code (Text):
[Orestack] ItemsAdder Hook: created successfully
To use a block from items adder in a generator or structure use:
Code (YAML):
items-adder-block : block_id
Or select a region and use the /orestack structure save <file-name> <structure-name> command

If you find any problems please report them in my discord.
----------, Apr 27, 2025

Warning: This release is unsuitable for servers in production, it should only be used for testing purposes

I do not own ItemsAdder so I cannot test the plugins together at the moment.

When Orestack is enabled you should see this message if ItemsAdder was found:
Code (Text):
[Orestack] ItemsAdder Hook: created successfully
To use a block from items adder in a generator or structure use:
Code (YAML):
items-adder-block : block_id
Or select a region and use the /orestack structure save <file-name> <structure-name> command

If you find any problems please report them in my discord.
----------, Apr 27, 2025

How to update

1. Update YAML configuration files

- Shut down the server

- Make a copy of the plugin folder

- Delete the plugin folder

- Start up the server; the plugin will generate new files

- Add the YAML files you want from the backup (generators, items, particles, sounds, and functions)

- Use the /orestack reload command and fix any issues with your configurations

2. Update the database (generators placed in your world)

- Delete the database file (data.mv.db)

- Place the old database back into the plugin folder


- Start the server and check the console for warnings to make sure no generators have been removed due to a mistake


- Added magic_wheat.yml

[​IMG]

- Added 'interval' option for functions and particles:
Code (YAML):
rain_cloud:
  - { particle
: cloud, count : 15, offset.y : 1.5, range : { x : 0.3, z : 0.3 }, repetitions : 8, interval : 2 }
  - { particle
: falling_water, count : 15, offset.y : 1.5, range : { x : 0.2, z : 0.2 }, repetitions : 12, interval : 2 }
- Added new particles in files misc.yml and flame.yml
----------, Apr 22, 2025

if you're interested in examples regenerate the following files: functions.yml, great_oak_tree.yml, and function_tutorial.yml

- Added 'if-any' function

- Added blockTypeEquals condition

- Added toolHasCustomModel condition

- renaming of conditions/actions

- refactoring and bug fixes
----------, Apr 8, 2025

- Added global functions that can be reused across all generators

- Added functions.yml

- Updated function_tutorial.yml

- Balanced ore generators growth timers

- Added generators/ores/emerald.yml

- Added generators/tutorials/drops_tutorial.yml
----------, Apr 6, 2025

- Added "generators/tutorials/flag_tutorial.yml"

- Renamed generators "examples" folder to "tutorials", remove the old folder to avoid duplicates
----------, Apr 5, 2025

- Added generators/examples/function_tutorial.yml
- Added spigot persistent data support for items.

Supported Datatypes: byte, short, string, integer, long, float, double, byte_array, integer_array, (untested) tag_container_array, (untested) tag_container.

It can be added with '/orestack item add <file> <item>' command or manually:
Code (YAML):
diamond:
  type
: DIAMOND
  persistent-data
:
    - key
: orestack:name
      type
: string
      value
: Hello monos!
    - key
: orestack:id
      type
: integer
      value
: 001
----------, Apr 3, 2025

- Added 1.21.5 support
- Added examples/hologram_tutorial.yml, an example generator used to learn how to use holograms.
----------, Apr 1, 2025

- added toolTypeIsEqual condition

- toolIsSimilar and toolTypeIsEqual now accept a list of valid materials/items

Code (Text):
on-break:
  - if-not:
      - toolTypeIsEqual <IRON_PICKAXE, GOLD_PICKAXE, DIAMOND_PICKAXE, NETHERITE_PICKAXE>
     #- toolIsSimilar <IRON_PICKAXE, GOLD_PICKAXE, DIAMOND_PICKAXE, NETHERITE_PICKAXE>
    do:
      - chatMessage <&4You need at least an iron pickaxe to mine this generator>
      - cancelEvent
      - stop

- Refactoring of example.yml and great_oak_tree.yml
----------, Mar 27, 2025

- added metrics option in config.yml to enable/disable bstats
Code (YAML):
metrics : true or false
- added hologram message, a hologram that spawns and despawns after a set duration.
Code (YAML):
hologram-message:
  type
: hologram
  hologram
:
    text
: '&a&l+1 Emerald'
    offset
: { y : 0.5 }
  duration
: 30
  radius
: { x : 1, y : 1, z : 1 }
----------, Mar 4, 2025

- fixed bug where attached blocks would drop items sometimes (like buttons)

- Added 'directions' option for blocks like fences which can face multiple directions

- Removed flags.yml
----------, Feb 25, 2025

This update breaks some things:
- Stage is now saved to the database so that it sticks across server restarts ( WARNING: You will need to delete data.mv.db, doing so will delete all placed generators in your world)

- Sugar canes can now only be placed near water (Like in vanilla)

- Cactus can only be placed on sand (Like in vanilla)

- Sugar cane and cactus are now subject to physics.

- Crops can only be placed on tilted soil. (Like in vanilla)

- Cocoa can only be placed on jungle wood/logs (Like in vanilla)

- Generators are now removed if broken by water/lava, before fluid flow was interrupted.

Fixed bamboo not behaving properly

Fixed 'idle' option and renamed it to 'regrow' (if regrow is false when mined the block will not regenerate and you will have to do so manually using setStage, nextStage or previousStage in on-break trigger)

This update might seem like a downgrade but it is necessary to make a more solid and less buggy system. I hope to compensate with more interesting features in the future.
----------, Feb 23, 2025

- Added "languages/zh.yml"
- Added "languages/fr.yml"
----------, Feb 21, 2025

- Added leaves option for bamboo:
Code (YAML):
bamboo-leaves : small, large, none
- Added idle option for generator stages:
Code (YAML):
idle : true or false
WARNING when an idle generator is mined you must set a new stage manually with setStage, nextStage or previousStage

- Fixed generator stage chance logic

- You can now set the chance on the last stage

- Fixed setStage, nextStage, and previousStage actions not being registered

- Added "generators/crops/bamboo.yml" example
----------, Feb 18, 2025

Slabs are now supported with parameter:
Code (Text):
slab-type: bottom, double or top
or with command /orestack structure save name.yml

Reduced jar size by around 1.3mb
----------, Feb 8, 2025

New block options:
Code (YAML):
open : true or false   # for doors, trapdoors etc...
half
: top or bottom   # for blocks that are 2 blocks tall and stairs facing up/down
stair-shape
: straight, inner left, inner right, outer left or outer right
door-hinge
: left or right
bed-part
: head or foot
All of these can be added manually or with the command /orestack structure save name.yml after having selected the area.
----------, Feb 7, 2025

- Fixed a small bug where it would say world not found with name: 'world' which would crash the plugin
- If you're updating from <3.20 read the last changelog
----------, Feb 7, 2025

This update completely changes how you write functions and actions, it also adds some new actions like: 'return|stop' and 'cancel-event'.

How to update:
- Backup your generators and everything you want to save.
- Delete generators in folder and regenerate examples.
- Update your old generator functions to use the new system, and put them back in the folder.

I am sorry for the inconvenience, this should be the last time when an update breaks older versions so severely.

I will update the wiki completely later today, in the meantime here is an example of the changes:
Code (YAML):
# BEFORE
on-break
:
  - if
:
     - [ has permission, orestack.generator.harvest ]
    do
:
     - [ give item, emerald ]
      - [ spawn particle at block, fire_ring ]
      - [ chat message, "You mined emerald!" ]
    or
:
     - [ cancel-event ]   # This action was only added in 3.21.0
      - [ chat message, "&4You don't have permission to mine this block!" ]
     
# AFTER
on-break
:
  - if
: hasPermission orestack.generator.harvest
    do
:
     - giveItem emerald
      - spawnParticleAtBlock fire_ring
      - chatMessage <You mined emerald!>
    or
:
     - cancelEvent
      - chatMessage <&4You don't have permission to mine this block! >

# AFTER, Another Example
on-break
:
  do
:   # These examples are for actions, but it is exactly the same with conditions
    - <chat message> <&aHere have an emerald!>   # if there is spaces you need to enclose it in <> brackets
    - chat_message NO!   # No spaces in the message so no need for brackets
    - chatMessage <Hello Everyone!>   # This is the preferred format but others are also viable
----------, Feb 5, 2025

- added support for sugar cane & cactus crops with examples (experimental but should work fine)
- fixed item enchantments not working in 1.21
- changed to an update checker compatible versioning
- fixed a visual glitch in structures (blocks are only updated if they change from one stage to the other, this reduces blocks changed as well)
- when you place a generator, if the first stage is just air/empty it will still spawn on the last stage not on the first.
- moved /orestack generator wand to /orestack wand since the wand is also used in /orestack structure
- wand now has two actions instead of one: left-click for first position and right-click for second position, this should make it faster to use
- added options in config.yml for generator-tool and wand-tool
- removed old options in en.yml for generator item and generator wand
----------, Feb 3, 2025

- added structure rotation, you can now rotate structure with item before placement
- structure rotation was added to the database, if you get any errors you might need to delete the data.mv.dk file (this will delete all placed generators in your world)
- fixed 'drop-items' which wouldn't work and added an alias: 'drop-item'
----------, Jan 31, 2025

- Fixed compability with 1.21
- Reduced jar size by almost 2mb
----------, Jan 30, 2025

Removed 'op command' action because it poses a security risk, you can find other plugins that allow you to make players execute commands as op safely.
----------, Jan 29, 2025

- added 2 commands:
/orestack structure save <file-path>
/orestack structure place
- bug fixes and other improvements
- added great_oak_tree.yml example
- you can now set the orientation of the block with 'orientation' parameter which can be set to: x, y or z.
- Since some blocks don't use direction but orientation. (like oak log)
----------, Jan 29, 2025

- For some reason config.yml wouldn't load correctly while enabling if the directories and files where absent. An exception would be thrown saying the language field was not set. (In reality the field was set but not loaded in memory) This would disable the plugin.
- Temporarly fixed with redundancy now calling OrestackPlugin#getConfiguration will load the data before returning. This is a temporary fix, I will look into the issue.
----------, Jan 28, 2025

- improved error messages
- improved logging in console
- added debug option in config.yml
- fixed language option in config.yml not working
- reworked how language system works internally
- InvalidConfigurationExceptions now look cleaner and are easier to read
- you will no longer get LangNotFoundExceptions, instead a warning will be sent in console and the default value will be used. The exception will only be thrown if a default value does not exist for that language tag. i.e. 'en'
----------, Jan 28, 2025

- added a structure system, now each stage may have a structure or a single block
- added placeholder support to: command, op_command, and console_command
- fixed a bug where reloading wouldn't regenerate missing folders, and files
- added 'generator-overlap' to language file (error message sent when two generators overlap since now you can have multi block generators)
- refactoring
----------, Jan 27, 2025

- Improved Database Performance:
- Switched to H2Database for better performance.
- Please note: generator data will be lost when updating to this version. This means any generators you had placed before will stop working. Sorry.
- You can safely delete the old `data.db` file and keep the `data.mv.db` file.
- Language File: - Added new language messages. Please regenerate your language file
- New Commands:
- `/orestack message send`
- `/orestack message broadcast`
- `/orestack sound play`
- `/orestack sound play-to`
- Other Improvements:
- Various fixes and improvements to the plugin.
- Fixed titles: the subtitle would be equal to the title and colors would not work
- added 'is_placeholder' condition
----------, Jan 26, 2025

- changes to certain condition/action names for better readability
- added the following conditions: has_exp, has_exp_level, has_item, has_played_before, is_flying, is_sneaking, tool_is_similar
- added action: take_item
- added fire_ring and fire_spiral in particles.yml
- You can now use range in certain conditions/actions i.e 'amount: 1-10'
----------, Jan 26, 2025

- for older versions check free resource page
- Compiled in java 16 and added support for 1.16.5
- No error message when mining generator in world guard region
- auto-save option added to config.yml
- added exp-to-drop option in generator stage configuration
- holograms don't spawn if chunk is not loaded
----------, Jan 25, 2025

Resource Information
Author:
----------
Total Downloads: 33
First Release: Jan 25, 2025
Last Update: May 22, 2025
Category: ---------------
All-Time Rating:
5 ratings
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings