Skip to content

Releases: Gh0s777tt/Nemesis

v0.8.0 — daylight detector, bone-meal crops, hostile mob damage

Choose a tag to compare

@Gh0s777tt Gh0s777tt released this 17 Jun 20:29

Gameplay depth: a redstone toggle, broader bone-meal farming, and hostile mobs that actually fight back. Each change was bot-verified at the protocol level. Built on the Kotlin 2.4.0 + KSP2 toolchain.

Added

  • Daylight detector toggle — right-clicking a daylight detector flips its inverted blockstate (day-sensing ↔ night-sensing), completing the redstone right-click family (lever, button, note block, repeater, comparator).
  • Bone meal on the remaining crops — bone meal now matures beetroot & sweet berry bush (age 0..3) and cocoa (0..2), not just the wheat-family; adds the beetroot_seeds → beetroots placement override so beetroot can be planted.
  • Hostile mobs deal contact damage — monsters now bite the player in melee reach (~1.5 blocks) for 3 damage plus knockback on a ~1s cooldown, instead of chasing harmlessly. Death at 0 HP reuses the existing death/respawn flow.

Run: java -jar Nemesis-0.8.0.jar (listens on the configured port; JDK 21+).

Full notes: see CHANGELOG.md.

v0.7.0

Choose a tag to compare

@github-actions github-actions released this 17 Jun 19:26

Toolchain modernization to Kotlin 2.4.0 and KSP2. The shaded server jar builds on the new toolchain, boots,
and was bot-verified against a live server (mcbot_waterlog.py: login → spawn → place → waterlog all succeeded).

Changed

  • Kotlin 2.2.212.4.0 and KSP 2.2.21-2.0.52.3.9. KSP has moved to KSP2, which versions
    independently of the Kotlin release (the old <kotlin>-<ksp> scheme is gone), so the catalog now tracks a
    standalone KSP version. This supersedes Dependabot PR #12 (which bumped only Kotlin and would have broken KSP
    resolution on its own).
  • BookMeta.pages no longer carries @get:JvmName("pages"); its JVM getter is now getPages(). Kotlin callers
    (meta.pages) are unaffected. This removes a JVM-signature collision with the pages() method WrittenBookMeta
    declares to satisfy Adventure's Book, which Kotlin 2.4 now rejects as an accidental override.

Fixed

  • Kotlin 2.4 source compatibility in the internal downcastApiType helper: removed the reified I : A upper bound.
    Kotlin 2.4 inferred I to the intersection I & A at call sites and refused to reify it. I is now pinned by
    each caller's declared return type, keeping the runtime this is I check precise.

v0.6.0

Choose a tag to compare

@github-actions github-actions released this 17 Jun 18:44

More interactions (pumpkin carving, waterlogging, pig saddling), each implemented and bot-verified against a live server.

Added

  • Pumpkin carving — right-clicking an uncarved pumpkin with shears turns it into a carved pumpkin and drops pumpkin
    seeds. Verified (mcbot_pumpkin.py): a placed pumpkin becomes a carved pumpkin on shear use and drops a seed item.
  • Waterlogging — a water bucket on a waterloggable block (slab, stairs, fence, …) fills it with water (WATERLOGGED)
    and empties the bucket. Verified (mcbot_waterlog.py): an oak slab changes state on water-bucket use and the held item
    becomes an empty bucket. Placement now also forces waterloggable blocks to place dry.
  • Saddle a pig — right-clicking a pig with a saddle makes it rideable (saddle metadata). Verified
    (mcbot_saddle.py): after the interact the pig's metadata sets the saddle flag.

v0.5.0

Choose a tag to compare

@github-actions github-actions released this 17 Jun 18:12

Block interactions (jukebox, lectern, bell), each implemented and bot-verified against a live server.

Added

  • Jukebox — right-clicking an empty jukebox with a music disc loads it (HAS_RECORD) and plays the disc. Verified
    (mcbot_jukebox.py): a placed jukebox changes state on disc insertion and emits the play-recording world event.
  • Lectern — right-clicking an empty lectern with a writable or written book places the book on it (HAS_BOOK).
    Verified (mcbot_lectern.py): a placed lectern changes state when a writable book is placed on it.
  • Bell — right-clicking a bell rings it (plays the bell sound to nearby players). Verified (mcbot_bell.py): the
    bot receives a bell Sound Effect at the bell's position after the interaction.

v0.4.0

Choose a tag to compare

@github-actions github-actions released this 17 Jun 17:01

More block and tool interactions, each implemented and bot-verified against a live server.

Added

  • Flower pot — right-clicking an empty flower pot with a pottable plant (flower, sapling, fern, …) fills it with
    that plant. Verified (mcbot_flowerpot.py): a placed flower pot becomes a potted poppy (block state 8389 → 16386).
  • Cake — right-clicking a cake takes a bite (the BITES state climbs 0→6) and the final bite eats it away.
    Verified (mcbot_cake.py): seven right-clicks step the cake through its bite states (3321 → 3327) then remove it.
  • Repeater delay — right-clicking a repeater cycles its delay (1→2→3→4→1 ticks). Verified
    (mcbot_repeaterdelay.py): four right-clicks step the repeater through four distinct delay states and wrap back.

v0.3.0

Choose a tag to compare

@github-actions github-actions released this 17 Jun 15:52

Tool and farming interactions, each implemented and bot-verified against a live server.

Added

  • Bone meal on grass — right-clicking a grass block with bone meal scatters short grass (and the occasional flower)
    on the air above nearby grass blocks. Verified (mcbot_bonemealgrass.py): bone-mealing a placed grass block grows a
    plant block in the air directly above it.
  • Tilling — right-clicking grass or dirt with a hoe turns it into farmland. Verified (mcbot_till.py): a placed
    grass block becomes farmland (block state 9009 → 7854) on hoe use.
  • Dirt path — right-clicking grass or dirt with a shovel turns it into a dirt path. Verified (mcbot_path.py): a
    placed grass block becomes a dirt path (block state 9009 → 7279) on shovel use.
  • Stripping logs — right-clicking a log, wood, stem or hyphae with an axe converts it to its stripped variant
    (keeping the axis); works for every wood type. Verified (mcbot_strip.py): a placed oak log becomes a stripped oak
    log (block state 14199 → 21733) on axe use.

v0.2.0

Choose a tag to compare

@github-actions github-actions released this 17 Jun 08:15

Gameplay additions, each implemented and bot-verified against a live server.

Added

  • Composter — right-clicking a composter with a compostable item raises its fill level (0 → 8) and plays the fill
    effect; right-clicking a full composter yields bone meal and empties it back to level 0. Verified
    (mcbot_composter.py): the block state climbs exactly one level per compost and resets on harvest, with the held item
    becoming bone meal.
  • Shearing a sheep — right-clicking a sheep with shears marks it sheared (entity metadata) and drops 1–3 wool of its
    colour. Verified (mcbot_shear.py): after the interact the sheep's flags metadata sets the sheared bit (0x10) and a
    wool item entity spawns.
  • Dyeing a sheep — right-clicking a sheep with any dye recolours its wool to that dye's colour. Verified
    (mcbot_dye.py): dyeing a white sheep with red dye sets its flags-metadata colour bits to RED (14).
  • Cauldron fill/empty — right-clicking an empty cauldron with a water bucket fills it (→ water cauldron + empty
    bucket); right-clicking a water cauldron with an empty bucket empties it (→ empty cauldron + water bucket). Verified
    (mcbot_cauldron.py): the cauldron's block state round-trips empty → full → empty, with the matching bucket swaps.

Nemesis v0.1.0

Choose a tag to compare

@Gh0s777tt Gh0s777tt released this 17 Jun 06:19

Nemesis v0.1.0 — the first public release of a from-scratch Minecraft 1.19.3 (protocol 761) server core in Kotlin, revived and extended from Krypton.

⚠️ Experimental / alpha — a hobby & research project, not hardened for production. Runs in offline mode (no authentication). See SECURITY.md.

📦 Quick start

  1. Install Java 21 (e.g. Temurin 21).
  2. Download Nemesis-0.1.0.jar from the Assets below.
  3. Run it:
    java -jar Nemesis-0.1.0.jar
    
  4. Connect a Minecraft 1.19.3 client to localhost (the listen port is configurable in config.conf).

This is a standalone server, not a plugin — run it directly; do not place it in a plugins/ folder.

✨ Highlights

  • Stable networking / session, core gameplay, and full inventory interactions
  • Containers (chests / furnace / hopper / brewing), crafting, and XP
  • Mobs with A* pathfinding AI, natural spawning, and PvP
  • Redstone — wire / repeater / comparator / pistons, with cross-chunk propagation
  • Full procedural world generation — terrain, caves, ores, trees, lakes, four biomes, villages & structures
  • Fluids, crops, fishing, TNT, enchanting, potions & status effects
  • Day-night cycle, sleeping, and block sounds & particles
  • World / player / chest / XP persistence across restarts

See the full CHANGELOG for the complete list.

🛠 Build from source

Requires JDK 21:

./gradlew :jar:shadowJar    # -> jar/build/libs/Krypton.jar

📜 License

AGPL-3.0. Derived from Krypton (Apache-2.0, © KryptonMC and contributors) — see NOTICE.