▶️ ЗАБЕРИ СВОИ 8 ПОДАРКОВ 🎁 ПРИ СОЗДАНИИ СВОЕГО МАЙНКРАФТ СЕРВЕРА
Моды/AcidIsland - Toxic SkyBlock
AcidIsland - Toxic SkyBlock

AcidIsland - Toxic SkyBlock

SkyBlock with a deadly twist: the ocean is acid. Survive on your island, but don't fall in the water.

761
5

1.22.0

Releaseвчера

Список изменений

Highlights

  • ⚙️ 🔡 Purified water mechanic — acid water can now be purified by smelting a water bucket in a furnace. Drinking acid water bottles damages the player; drinking purified water bottles heals. Fixes #163.

New Features

⚙️ 🔡 Purified Water

The ocean is acid. Until now, that meant every drop of water around your island was a hazard — you couldn't drink it, couldn't farm with it, couldn't even keep it in a bottle without hurting yourself. This release changes that: acid water is still dangerous, but you can now purify it, and there are several cool ways to do it.

Every water item in the acid world is tagged behind the scenes and labelled with coloured lore so you always know what you're holding:

  • Acid Water — the default. Bottles are brewed as a Poison potion, so drinking one damages you via Minecraft's vanilla Poison effect. Buckets emptied out still behave like normal water in the world, but the item itself carries the red lore tag.
  • Purified Water — safe to drink, heals you, and stays purified when you move it between bottles, buckets, and cauldrons.

Drinking

  • Acid water bottle — drinking it applies the vanilla Poison effect. No config knob for the damage amount; it's whatever vanilla Poison does. Simple and familiar.
  • Purified water bottle — drinking it restores health, up to your maximum. The amount is configurable via acid.purified-water.heal-amount (default: 4.0 half-hearts, i.e. 2 hearts).

How to make purified water

There are four different ways to purify water, each with its own flavour. Use whichever fits your playstyle or what you've got lying around:

  1. Smelt a water bottle in a furnace. Pop a water bottle (plain vanilla or one of your red acid bottles) into a furnace with any fuel. After the normal 10-second cook time, out comes a purified water bottle. Simple, cheap, and the entry-level option.

  2. Brew water bottles with coal. Put up to three water bottles in a brewing stand and use coal as the ingredient. When the brew finishes, every water bottle in the stand is converted to purified water. Great when you need a batch. (Note: only water bottles are converted — coal won't turn your splash potions of Strength into anything weird.)

  3. Smelt a water bucket in a furnace. Drop a full water bucket into a furnace and it slowly "boils" for 100 seconds (2000 ticks — five times longer than a bottle, to reflect the effort of purifying a whole bucketful). Out pops a purified water bucket. This one is toggleable: set acid.purified-water.bucket-furnace-enabled: false in config to disable it if it feels too easy for your server's balance.

  4. Catch dripstone drippings in a cauldron. This is the survival-flavour method and arguably the coolest: build a cauldron, place a downward-pointing dripstone stalactite up to 12 blocks directly above it, and wait. As the dripstone slowly fills the cauldron, the water inside is tracked as purified. A purified cauldron lets you scoop out purified bottles or a purified bucket directly.

Cauldrons: the full story

Cauldrons have their own personality in this system. Each cauldron in the acid world remembers whether its water is acid or purified, and that memory persists across server restarts (stored in the addon's cauldrons.yml).

How a cauldron's purity is decided:

  • Rain fills it → acid (rain on an acid island is still acid — of course it is).
  • A dripstone stalactite drips into it → purified. The game looks up to 12 blocks above the cauldron for a downward-pointing dripstone tip; if one's there, drips go in as purified water.
  • A player pours a water bucket into it → the cauldron inherits the bucket's tag. Purified bucket in, purified cauldron. Acid bucket in, acid cauldron.
  • A player empties a bottle into it → same rule: the cauldron takes on whatever the bottle was.
  • A dispenser or anything else fills it → treated as acid (safe default — if the game can't tell, it assumes the worst).

Drawing water back out:

  • Fill a glass bottle from a purified cauldron → you get a purified water bottle and the cauldron level drops by one, just like vanilla.
  • Fill a bucket from a purified cauldron → you get a purified water bucket.
  • Fill from an acid cauldron → you get the acid version of whatever you were filling.

When a cauldron is emptied out completely, it forgets its purity and starts fresh.

Buckets & bottles in detail

  • Filling a glass bottle from ocean water gives you an acid bottle (red lore). This is the 99% case — the whole ocean is acid.
  • Filling a bucket from ocean water gives you an acid water bucket. You can still place it as a water source — it's water, mechanically — but the item in your hand carries the red lore so you won't confuse it with something safe to drink.
  • Filling from a cauldron follows the cauldron's purity (see above).
  • Tags stick to the item. Move a purified bucket between chests, hoppers, your inventory, another dimension — it stays purified. Only pouring it out or drinking it ends its life as a purified item.

Edge cases & things to know

  • Where the mechanic runs. It always runs in the AcidIsland overworld. It also runs in the addon's Nether and End worlds — whether those are island or vanilla — when the per-dimension toggles acid.purified-water.nether-enabled and acid.purified-water.end-enabled are true (both default on). Flip either to false to keep that dimension out of the system. Other worlds on your server (not managed by the addon) are untouched.
  • Other potions are protected from the furnace. If you try to smelt, say, a Potion of Strength, the furnace cancels the smelt instead of converting it — so you won't accidentally turn valuable potions into water.
  • Brewing only converts water bottles. Coal + Strength potion = nothing happens; only plain/acid water bottles get purified.
  • Plain vanilla water bottles (e.g. from creative mode or another plugin) drink as vanilla water — they do nothing, no heal and no damage. For brewing with coal and for furnace smelting, however, they are accepted as valid water input and turn into purified water, so they slot cleanly into the purification recipes.
  • Disabling the feature entirely is a single switch: set acid.purified-water.enabled: false in config.yml and the whole system goes dormant — no tagging, no furnace/brewing interception, no cauldron tracking.
  • Two new Bukkit events are fired so other plugins can hook in: ItemFillWithAcidEvent (cancellable, before a player gets an acid bucket/bottle) and PlayerDrinkPurifiedWaterEvent (cancellable, with a mutable heal amount).

New config keys

acid:
  purified-water:
    enabled: true                # master switch for the whole feature
    heal-amount: 4.0             # half-hearts restored by drinking purified water
    bucket-furnace-enabled: true # allow smelting water buckets into purified buckets
    nether-enabled: true         # run in the addon's Nether (island or vanilla)
    end-enabled: true            # run in the addon's End (island or vanilla)

New locale keys

acidisland:
  purified-water:
    lore-acid: "<red>Acid Water"
    lore-purified: "<green>Purified Water"

All 18 translated locales have been synced with these new keys.

⚙️ Config note: a new acid.purified-water block is added to config.yml. Existing installs should regenerate or merge the new keys.

🔡 Locale note: the two new acidisland.purified-water.* keys have been added to en-US.yml and all 18 translations. Translators — feel free to polish the wording for your language if you'd like.

Other Improvements

  • Guarded playSound location against null in AcidEffect (S2637).
  • Modernised AcidEffect with putIfAbsent and Math.clamp (S3824, S6885).
  • Used pattern-matching instanceof in AcidTask and removed spurious throws (S6201, S1130).
  • Reduced cognitive complexity of onPlayerMove(), getWorld(), findEntities(), and makeNetherRoof() by extracting helpers.
  • Added since/forRemoval to @Deprecated annotations (S6355, S1123).
  • Test hygiene: removed unnecessary public modifiers, replaced assertTrue(x == y) with assertEquals (S5785), used assertDoesNotThrow for no-assertion tests, removed unused imports and eq() wrappers on concrete values (S1128, S6068), renamed shadowing locals (S1117), and added explanations to @Disabled annotations (S1607).
  • Translated new purified-water lore keys into all 18 non-English locales.
  • Updated project graphic.
  • Documentation: refreshed CLAUDE.md with current testing rules and SonarCloud conventions.

Compatibility

✔️ BentoBox API 3.14.0 ✔️ Minecraft 1.21.11 (Paper) - 26.1.2 ✔️ Java 21

Upgrading

  1. Stop the server.
  2. Replace the old AcidIsland jar in plugins/BentoBox/addons/ with the new one.
  3. Start the server.
  4. ⚙️ (Optional) Review config.yml — see the new acid.purified-water section.
  5. 🔡 (Optional) Review the translations for the acid/purified water.

Legend

  • ⚙️ — config changes
  • 🔡 — locale changes

What's Changed

  • ⚙️ 🔡 Add purified water mechanic (issue #163) by @tastybento
  • Refine purified water mechanics by @tastybento
  • Guard playSound location against null in AcidEffect (S2637) by @tastybento
  • Remove unused import and eq() wrappers in AcidEffectTest (S1128, S6068) by @tastybento
  • Remove unused imports and eq() wrappers in test files (S1128, S6068) by @tastybento
  • Use pattern-matching instanceof in AcidTask; remove spurious throws (S6201, S1130) by @tastybento
  • Replace assertTrue(x == y) with assertEquals in AcidEffectTest (S5785) by @tastybento
  • Modernise AcidEffect: putIfAbsent and Math.clamp (S3824, S6885) by @tastybento
  • Rename local l to loc to avoid hiding field in AcidTaskTest (S1117) by @tastybento
  • Add explanation to @Disabled annotation in AISettingsTest (S1607) by @tastybento
  • Replace assertTrue(x == y) with assertEquals in AcidRainEventTest (S5785) by @tastybento
  • Add since/forRemoval to @Deprecated annotations (S6355, S1123) by @tastybento
  • Reduce complexity of onPlayerMove() and getWorld() by extracting helpers by @tastybento
  • Reduce complexity of findEntities() by extracting helper methods by @tastybento
  • Reduce complexity of makeNetherRoof() by extracting helper methods by @tastybento
  • Use assertDoesNotThrow for no-assertion tests in AcidIslandTest by @tastybento
  • Remove unnecessary public modifiers from JUnit 5 test methods by @tastybento
  • Change graphic by @tastybento
  • Update CLAUDE.md with testing rules and SonarCloud conventions by @tastybento

Full Changelog: https://github.com/BentoBoxWorld/AcidIsland/compare/1.21.0...1.22.0

Файлы

AcidIsland-1.22.0.jar(118.89 KiB)
Основной
Скачать

Метаданные

Канал релиза

Release

Номер версии

1.22.0

Загрузчики

Paper
Purpur

Версии игры

1.21.5–26.1.2

Загрузок

2

Дата публикации

вчера

Загрузил

ID версии

Главная