Repository navigation
Releases: VampireAchao/mmSupernaturals
Release list
1.5.1
This is a community fork, not the original author's release. mmSupernaturals continues
Supernatural Players, a Bukkit plugin published in 2011 by Matterz. The original repository,
the author's GitHub account and its dev.bukkit.org page all return 404 today; this build is
maintained by VampireAchao on top of FaeyUmbrea's archived
fork. It is not affiliated with, authorised by, or
endorsed by the original authors, who do not support it — please report issues here.
mmSupernaturals 1.5.1 — fixes, and a default that was too narrow.
Built for Paper 26.3 (api-version: 26.3) and Java 25. Nothing to migrate: the set of
configuration keys is exactly what 1.5.0 had (172), plugin.yml is untouched, and data.yml is read
and written as before. Drop the jar in and restart.
What is in this build
A grapple that did not move anybody. The witch hunter's pull wrote a velocity the server had
already resolved for that tick, so the arrow flew and the player stayed. The pull moves him now —
and the four arrows keep their own cooldowns, where one arrow's wait used to apply to all five.
A price you could not pay with exact change. An ability compared the bar to its cost with >, so
a player holding exactly five thousand could not cast a spell that costs five thousand. It is >=.
The enderborn's pearl, judged on one hand. The guard looked at the swinging hand only, so a pearl
in the other hand was not seen. It looks at both.
A grave with holes in it. A ghoul has been at peace with six mobs since 2012 — all of them
zombies, which meant a skeleton's arrow, a phantom's dive and a creeper's blast all landed. The list
is nineteen now: the zombie family and the skeleton family, each complete, plus the phantom and the
two that were always there. Because the file is the truth in this plugin, a config.yml that still
holds exactly the old six-mob default is upgraded and saved once on the next start; a list you have
customised is left alone.
Rules about materials, asking about the material. A rule written as a list of items is really a
rule about a tier and a kind, and a list is always one item short — a netherite axe where a diamond
sword was listed, a tier with no entry. Material rules now ask the tier and the kind. The rules
themselves have not changed, but a few items may be accepted or refused where the old lists and the
rules disagreed, so it is worth checking anything you rely on a specific material for.
The rest of this release is not in the jar
The test hall again: the conversion room says which of two things happened — a race that rolled and
lost, or one that turned; every board answers the left button as well as the right; the demon's
stand-in carries the netherrack his race actually converts with; and a hint that repeated on every
click now says its piece once.
A release is a tag now
Pushing a v* tag builds the jar and publishes this page. The workflow refuses a tag that disagrees
with the version in pom.xml, so the two cannot drift apart.
Verification
mvn verify -Pit from the tag: twelve unit cases and four scenario cases, green. The jar's
plugin.yml reports 1.5.1 and api-version: 26.3, and it was built and published by the release
workflow itself (run #1).
sha256 8ac703f84ae84d5de39dcc0a27152487a1a6170f81021739d4459d8e2d2526da
The changelog for this version, and for the two before it, is in
CHANGELOG.md.
1.5.0
mmSupernaturals 1.5.0 — bug fixes, and two numbers that used to live inside the plugin.
Built for Paper 26.3 (api-version: 26.3) and Java 25. Nothing to migrate: every change
below is backwards compatible, and the one new setting has a default, so a server that never touches
it behaves exactly as it did in 1.4.1.
What is in this build
A hand-edited save file can no longer bring in a power nobody can earn. A save carries the power
twice — power, which goes through the plugin's own bound, and superPower, the field behind it,
which was written onto the player exactly as the file had it. The file lists the second one last, so
it won: 999999999 arrived as 999999999, and .NaN arrived as a non-number, which is never
greater than any price and so waived every cost at once. Both are now held to 0–10000 as the file is
read, and a file that had to be corrected says so in the log, once per player.
The enderborn's conversion chance is a setting — EnderBorn.Convert.Chance, default 0.10. It
was the one turning in the plugin with no setting behind it: a tenth written inside
EnderBornManager, which a server could not tune and the test hall could not hold open.
A demon's netherrack can hurt a demon. Converting somebody who was already a demon charged the
full price, cancelled the blow the spell rode in on, and changed nothing — a weapon that reads as
broken. A demon now refuses the conversion, and the swing lands as the ordinary hit it looks like.
An angel's summoning spends its offering. A cow costs the beef, a wolf the bone, a pig the
porkchop. The summoning spent only power and left the food sitting in the hand it was cast with.
A banish with no banish point costs nothing, and says so. It used to spend four thousand power
to teleport somebody to the world origin, in the air; and it now tells both players where the victim
went, which is a place neither of them could see before or after.
A bow with no arrows says so. Every other way shooting can fail announced itself; the one with no
arrow was silent, so a bow that drew and loosed and produced nothing looked like a broken ability.
A bond that ends no longer throws. When it was the bonded side that ended it — a convert, a cure,
a revert — the plugin asked the bond map for that player as a key, got null, and asked the null
for a name.
Power that cannot go down now says why, once per player per run, instead of leaving an operator
to work out that their costs were being refused.
A grapple ends instead of throwing when its player and its target have been parted by a world.
The rest of this release is not in the jar
Most of what changed on this branch is the test harness: a hall of rooms on a real server, one per
step, where each race's rules can be walked through by hand. This round added the four questions
every summon answers before it is put down (inside the player's own room, somewhere a body fits,
reachable by walking, in sight); rooms that give back what they let out when nobody is standing in
them; stand-in names that follow a conversion; a respawn anchor that follows the room; boards that
hand out only weapons the player's own race may swing; and a truce room sized for the forty monsters
it is about.
Upgrading
Drop the jar into plugins/ and restart. config.yml gains EnderBorn.Convert.Chance (default
0.10) — leave it alone and the enderborn turns people exactly as often as it did in 1.4.1. There
is no change to data.yml.
1.4.1
mmSupernaturals 1.4.1 — the first published build.
A Paper plugin that adds eight supernatural races to Minecraft, each with its own abilities,
its own way of turning people, and its own counters. Built for Paper 26.3 (api-version: 26.3)
and Java 25.
What is in this build
The plugin change in 1.4.1 is in how time is kept:
- The plugin's clock advanced once per player instead of once per tick. Every timed rule —
regeneration, power gained over time, the truce timer, the daylight rules — ran faster the more
people were online, and every duration in the plugin was therefore a lie on a busy server. The
clock is now advanced once per tick, by the task timer, and players read it.
The rest of this release is the test harness
Most of what changed on this branch is not in the jar. The repository also carries a test harness
that builds a hall of rooms on a real server so each race's rules can be exercised by hand and by
integration tests, and this release rebuilds it:
- The hall is a grid of separate rooms, one per step, in each race's own world. Rooms do not connect.
The entry room offers the two ways into a race — the shrine, or being killed by one — and the same
three ways out as every other room. - Every action is a board a player right-clicks. The only button left in the building is the exit's,
on the red wool. Nothing hangs at the player's feet; boards sit two to four blocks over the floor. - A room that kills you takes the stand-in away, puts you back on the mark you fell on and gives you
three seconds. The stand-in is removed two ticks after the kill rather than during it, because the
plugin reads the killer off the damage event. - Stand-ins wear the race they are playing, from eleven real accounts' signed textures frozen into
the source, and every room has a guide who repeats the long version of the room in chat. - Fixed along the way: boards that rewrote themselves every two seconds for ever; a hall world where
it never rained, which silently switched off a ghoul's regeneration; stand-ins placed on the far
side of the wall the player had just clicked; and an entrance whose two ways in pointed at each
other's rooms.
Full account in pull request #6.
Installing
Drop mmSupernaturals-1.4.1.jar into your server's plugins/ directory. Requires Paper 26.3 and
Java 25. The plugin writes its own config.yml on first start; there is no command needed to begin
playing — a player is an ordinary person until something turns them.
Known limitations
- A player must have a supernatural race before most of the plugin's rules apply to them; being turned
is the way in, and the ways in are per race. - Two of the harness's nether corridors still carry long teaching text and no guide, and the harness
lobby has no guide. - A harness stand-in whose race is changed keeps the sparring master's skin — a skin is part of the
profile a player is built from and cannot be swapped afterwards.
Verification
The build is mvn -Pit package from the tag, with the jar's plugin.yml reporting 1.4.1 and
api-version: 26.3. The integration suite last ran green before the newest harness work (the
in-place respawn, the guides, and the race-of-target change); the harness carries probes for exactly
those — mmp signage, mmp buttons, mmp guides, mmp talk, mmp grace — and running
mvn verify -Pit is the first thing to do before trusting them.
sha256 532ba3dbcccaa89720c228db6e013c3ea044e2d408c75012eae35ed2f28ba63e