Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
106 commits
Select commit Hold shift + click to select a range
3aace4f
added creaking backwards compatibility until 1.21.4
MaksyKun Oct 13, 2025
043c943
fixed #1715
MaksyKun Oct 13, 2025
5f62449
follow owner approaches for a fix
MaksyKun Oct 17, 2025
64df24f
fixed #1684 by simply failing the procedure instead of bypassing
MaksyKun Oct 17, 2025
449c693
fix #1716 (villager data loss on 1.21+)
MaksyKun Oct 17, 2025
c220ba0
Merge branch 'master' into bulked-issue-fix
MaksyKun Oct 19, 2025
7fa3cd2
Merge branch 'master' into bulked-issue-fix
MaksyKun Oct 19, 2025
ecb77c8
fixes from fetched master branch
MaksyKun Oct 19, 2025
f9ee8b8
revert back version from testing
MaksyKun Oct 19, 2025
10209a5
Merge pull request #1733 from MyPetORG/bulked-issue-fix
MaksyKun Oct 19, 2025
e9e3325
Rename job from bump_build_release to release
MaksyKun Oct 19, 2025
0cf2055
chore(release): bump MyPet to 3.13.6
github-actions[bot] Oct 19, 2025
62a6935
updates pipeline
MaksyKun Oct 19, 2025
90ff069
Bump MyPet dev-release to 3.13.7
github-actions[bot] Oct 19, 2025
706658c
Downgrade version from 3.13.7 to 3.13.5
MaksyKun Oct 19, 2025
af7b035
Enhance release workflow with concurrency and xmlstarlet
MaksyKun Oct 19, 2025
8b07020
Update release.yml
MaksyKun Oct 19, 2025
3146402
Refactor release workflow for better version management
MaksyKun Oct 19, 2025
b1596b4
Refactor Maven build step in release workflow
MaksyKun Oct 19, 2025
0715821
[skip ci] Bump dev-release to 1..1
github-actions[bot] Oct 19, 2025
3603b1a
Update release.yml
MaksyKun Oct 19, 2025
7015d5e
Replace version bump step with tag bump step
MaksyKun Oct 19, 2025
262e7dd
Update release workflow for version bump and branch
MaksyKun Oct 19, 2025
dc40738
Change release branch from 'release' to 'development'
MaksyKun Oct 19, 2025
b5644ab
Update release workflow to compute next PATCH tag
MaksyKun Oct 19, 2025
db4fa8a
chore(release): bump version to 2.0.2
github-actions[bot] Oct 19, 2025
a9de3cf
Refactor release workflow for version bumping
MaksyKun Oct 19, 2025
c5f2bf3
chore(release): bump MyPet to 2.0.3
github-actions[bot] Oct 19, 2025
a7b6051
Update version from 2.0.3 to 3.13.5
MaksyKun Oct 19, 2025
ca9ac5a
chore(release): bump MyPet to 3.13.6
github-actions[bot] Oct 19, 2025
a52b325
Update release workflow to cache Maven and refine steps
MaksyKun Oct 19, 2025
fba30ec
Downgrade version from 3.13.6 to 3.13.5
MaksyKun Oct 19, 2025
529ef51
chore(release): bump MyPet to 3.13.6
github-actions[bot] Oct 19, 2025
7f74675
Downgrade version from 3.13.6 to 3.13.5
MaksyKun Oct 19, 2025
9e0fea1
Update release workflow for MyPet versioning
MaksyKun Oct 19, 2025
f52a0f8
Bump MyPet dev-release to 3.13.6
github-actions[bot] Oct 19, 2025
96a60e2
Downgrade version from 3.13.6 to 3.13.5
MaksyKun Oct 19, 2025
d4a37ea
Update jar finding logic in release workflow
MaksyKun Oct 20, 2025
d2795f0
Bump MyPet dev-release to 3.13.6
github-actions[bot] Oct 20, 2025
d556402
Fix file search path in release workflow
MaksyKun Oct 20, 2025
5a66ca7
Bump MyPet dev-release to 3.13.7
github-actions[bot] Oct 20, 2025
d89dd38
Downgrade version from 3.13.7 to 3.13.5
MaksyKun Oct 20, 2025
3ac8e19
Bump MyPet dev-release to 3.13.6
github-actions[bot] Oct 20, 2025
e0570ad
Switch build system to Gradle (#1737)
UserDerezzed Oct 26, 2025
52ca8ae
Fix plugin versioning (#1740)
UserDerezzed Oct 26, 2025
6b76c5c
Enable automatic snapshot production (#1742)
UserDerezzed Oct 27, 2025
bac4797
Create dependabot.yml
UserDerezzed Oct 27, 2025
f2f2dc2
Remove Sentry bug reporting (#1749)
UserDerezzed Oct 27, 2025
4c90ff1
Reduce reliance on NMS modules (#1750)
UserDerezzed Nov 1, 2025
dc6a7a9
Fix build.gradle.kts
UserDerezzed Nov 1, 2025
8125fce
Actually fix build.gradle.kts
UserDerezzed Nov 1, 2025
13352d8
Actually fix build.gradle.kts
UserDerezzed Nov 1, 2025
8625556
GitHub Actions fix
UserDerezzed Nov 1, 2025
ca61099
GitHub Actions fix
UserDerezzed Nov 1, 2025
89d94a1
Merge remote-tracking branch 'origin/development' into development
UserDerezzed Nov 1, 2025
b5ba33c
GitHub Actions fix
UserDerezzed Nov 1, 2025
75cfd18
GitHub Actions fix
UserDerezzed Nov 1, 2025
077eb65
GitHub Actions fix
UserDerezzed Nov 1, 2025
80dd50d
GitHub Actions fix
UserDerezzed Nov 1, 2025
17d164c
GitHub Actions fix
UserDerezzed Nov 3, 2025
c7476c4
GitHub Actions fix
UserDerezzed Nov 3, 2025
cd48c0b
GitHub Actions fix (actually)
UserDerezzed Nov 4, 2025
523a2ce
Attempted GH Actions fix
UserDerezzed Nov 4, 2025
bd9fd44
Attempted GH Actions fix (again)
UserDerezzed Nov 4, 2025
4126636
Resolve crash if behavior modes aren't active when user switches to Pet
UserDerezzed Nov 6, 2025
10d2f2b
Adjust updater to work with new releases; remove NMS reader logs
Jakllp Oct 23, 2025
e1bb4bb
Remove petlist /pl alias
UserDerezzed Nov 8, 2025
1303763
Resolve inventory GUI issues
UserDerezzed Nov 10, 2025
85d2f7a
Fix 1.21-1.21.3 compatibility by fixing Creaking minimum version
UserDerezzed Nov 10, 2025
1c5198a
Replace System.out.println calls with MyPet Logger calls
UserDerezzed Nov 10, 2025
8437d1f
Always register callback to resolve inventory issues
UserDerezzed Nov 12, 2025
e09b800
Revert addition of Adventure API (waiting until 4.0)
UserDerezzed Nov 17, 2025
ce226f7
Warn and provide solution in console if old NBT format is used on 1.2…
UserDerezzed Nov 18, 2025
010fd54
Resolve error when Pet tries to eat out of an inventory it doesn't have
UserDerezzed Nov 18, 2025
b108bae
Resolve Pet inventory related shutdown error
UserDerezzed Nov 18, 2025
e023acd
Add support for Salmon variants (sizes)
UserDerezzed Nov 18, 2025
a9a2687
Add support for baby Dolphins
UserDerezzed Nov 18, 2025
c85fbe8
Add support for baby Glow Squids
UserDerezzed Nov 18, 2025
6d22f59
Add support for baby Squids
UserDerezzed Nov 18, 2025
e760a61
Open skilltree editor in web browser if jar is executed
UserDerezzed Nov 18, 2025
b0a98fd
Compact file
UserDerezzed Nov 18, 2025
02f10cd
Fix brown mooshroom crash on 1.21.10
UserDerezzed Nov 18, 2025
d9ce40f
Drop Apache Commons dependency
UserDerezzed Nov 19, 2025
b2a2e60
Make MyPet entity spawn in exact location of despawned Bukkit entity
UserDerezzed Nov 19, 2025
a0147bc
Modify makeSound logic to cover NoSuchElementException
UserDerezzed Nov 19, 2025
94d1357
Add support for Copper Golems, oxidation, and waxing
UserDerezzed Nov 19, 2025
393dcfa
Annotate ReflectionUtil
UserDerezzed Nov 21, 2025
e349750
Fix bad reflection call that was resulting in issues with Multiverse …
UserDerezzed Nov 21, 2025
95cf1d4
Update Discord webhook warning
UserDerezzed Dec 3, 2025
7feffdf
Remove old source
UserDerezzed Dec 3, 2025
71a1ae3
Accept Maven local as a source
UserDerezzed Dec 3, 2025
ba8f677
Revert NMS changes to fix inventory issues until v4
UserDerezzed Dec 3, 2025
47ab694
Fix Javascript exp accumulation
UserDerezzed Dec 4, 2025
15878ff
Reintroduce Sentry analytics until v4 rewrite
UserDerezzed Dec 4, 2025
c1809bd
Update exp.js
UserDerezzed Dec 4, 2025
ebd1b27
Gracefully ignore invalid entity names instead of dropping the entire…
UserDerezzed Dec 18, 2025
966d3a2
Fix pathfinding TPS/crash issues (1.17+, lower versions unaffected)
UserDerezzed Dec 19, 2025
a63dc88
Fix cat variants not saving properly
UserDerezzed Dec 19, 2025
495e01b
Fix cats losing tamed status on capture and release, making collar no…
UserDerezzed Dec 19, 2025
cd28ba7
Add support for Minecraft 1.21.11
UserDerezzed Dec 25, 2025
55bd6ab
Add Bleed skill
UserDerezzed Dec 25, 2025
2f01cb0
Make Copper Golem Pet oxidation timer persist when stored
UserDerezzed Dec 26, 2025
45b5c0b
Prevent selecting a skilltree if a Pet's level exceeds the skilltree'…
Haeherfeder Dec 26, 2025
a5b002e
[skip ci] Update release workflow
UserDerezzed Dec 27, 2025
94b3ac9
Merge master into development: resolve conflicts
UserDerezzed Dec 27, 2025
e22eeac
[skip ci] Update pull request workflow
UserDerezzed Dec 27, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
70 changes: 70 additions & 0 deletions .github/changelogs/3.14.0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
![MyPet 3.14 Logo](https://cdn.modrinth.com/data/cached_images/499e09a335ab395cb066e31a4ea424fbeb9c7021.png)

Merry Christmas and Happy Holidays from MyPet! Consider this a holiday gift - a new version of MyPet has released.

**MyPet 3.14.0 supports the following Minecraft versions**: 1.8.8, 1.12.2, 1.16.5, 1.17.1, 1.18.2, 1.19.2, 1.19.3, 1.19.4, 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11

The MyPet 3.14 series will be the **last MyPet version series to support Minecraft 1.8.8, 1.12.2, 1.16.5, and 1.17.1**. MyPet 4.0 will not support these versions. Additional bugfixes may be released for 3.14 prior to MyPet 4.0’s release.

Additionally, the MyPet 3.14 series will be the **last MyPet version series to support base Spigot server software**. Paper is the superior and most widely used server software, with over 82% of Minecraft Java servers today running Paper or offshoots of Paper. Making the switch is as easy as swapping your server jar. Switch to Paper today: https://papermc.io

Currently, MyPet is primarily developed by one person - me! All of these updates are produced for free in my spare time. If you or your players appreciate MyPet, please consider buying me a coffee or lunch (it means a lot): https://ko-fi.com/UserDerezzed

**This update was also made possible by MaksyKun, haeherfader, and coleslydn, who each contributed their own time to this project. Thank you!**

Now, onto the changes!
## MyPet Skilltree Creator
[![MyPet Skilltree Creator Image](https://cdn.modrinth.com/data/cached_images/de487855be21385e3494dc74e446556d8fb58cf0_0.webp)](https://skilltree.mypet-plugin.de)
The skilltree creator has been completely redesigned and is now available through the web. Visit it here: https://skilltree.mypet-plugin.de

You can also double-click on the plugin jar to have the skilltree creator open in your browser.
## New Minecraft versions and new Pets
Minecraft 1.21.11 is now supported. Additionally, you can now capture Copper Golems, Creakings, Baby Dolphins, Baby Glow Squids, and Baby Squids as Pets. Salmon Pets will now retain their correct size when captured and released, and Cat Pets will remain tamed and retain their correct fur pattern when captured and released. This also means you can now dye your Cat Pet’s collar!

Copper Golems have oxidation mechanics similar to vanilla Minecraft:
- Right-click with Axe → strip oxidation
- Right-click with Honeycomb → wax to prevent oxidation
Unique to MyPet:
- Right-click with Poppy → place flower on head
- Right-click with Shears → remove poppy

Additionally, server owners can modify the Copper Golem Pet oxidation interval, or disable oxidation outright.

![MyPet 3.14.0 Mobs](https://cdn.modrinth.com/data/cached_images/f06c1204cf889a8107b0eb3007b5a06e963ab650.jpeg)
## Bleed Skill
Pets can now learn to make their opponents bleed! This Skill allows you to customize the amount of damage, the interval at which the opponent will bleed, how long the opponent will bleed for, and the chance that the opponent will bleed. Additionally, the bleeding opponent will drop blood particles every time it loses health. This Skill is already implemented into the MyPet Skilltree Creator and can be added to your existing skilltrees.

![Bleed Skill](https://cdn.modrinth.com/data/cached_images/f1d6f82b41b99b2b4e991a0dfa9056313442efda.gif)
## Bugfixes
Pets have learned how to follow their owner more naturally. Additionally, airborne Pets no longer zoom off into the distance and despawn when their owner is going faster than default speed.

Notably, many server crashes have been fixed, including a common crash when Pets would teleport towards the player when far away from the origin point of the world. MyPet no longer prevents Multiverse from creating worlds on 1.21.8-1.21.10, and many edge case client and server crashes have been fixed.

### Full changelog:
- Added support for Minecraft 1.21.11
- Added support for Creaking Pets
- Added support for Baby Dolphin Pets
- Added support for Baby Glow Squid Pets
- Added support for Baby Squid Pets
- Added support for Copper Golem Pets with oxidation, waxing, and configuration options related to oxidation
- Added Bleed skill
- Added warning and attempt conversion for 1.20.5 and above if an old item NBT data format is detected
- Prevent player from assigning a skilltree to a Pet if the Pet’s level is higher than the maximum level of the skilltree
- Rewrote default Javascript exp accumulation script
- Skilltrees will continue loading and display a warning in console if an invalid Pet type is listed as an Eligible Pet, instead of rejecting the entire skilltree
- Switched build system from Maven to Gradle, paving the way for MyPet 4.0
- Fixed /bukkit:reload resulting in a server crash (please do not use reload regardless - restart your server always!)
- Rewrote Pet following, swimming, and flying logic to feel more like vanilla
- As a result, resolved server crash/lag when Pets teleported to the player when at a far distance from the world origin
- Fixed Mooshroom Cow Pets being able to duplicate bowls
- Fixed villager data loss on capture/release on 1.21+
- Switched to Bukkit API from NMS for lightning strikes
- Fixed crash when behavior modes aren’t active when a player switches to a different Pet
- Fixed issues regarding inventory GUIs
- Replaced usage of System.out.println logging with MyPet Logger calls, preventing a warning from Spigot
- Fixed Brown Mooshroom Pet crash on 1.21.10
- Fixed Pets teleporting to the center of the block they are standing in when being captured/released
- Fixed bad reflection call in 1.21.8 that was resulting in issues with Multiverse world creation, among other plugins
- Fixed Javascript exp accumulation method
- Fixed Cat Pet variants not saving upon capture/release
- Fixed Cat Pet losing their tamed status upon capture/release
- Removed /petlist alias, /pl, as it overrode the /plugins alias from Bukkit/Spigot
- Removed built-in Skilltree Creator in favor of web-based creator. Double clicking on the server jar will open the new skilltree creator in your browser.
11 changes: 11 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# To get started with Dependabot version updates, you'll need to specify which
# package ecosystems to update and where the package manifests are located.
# Please see the documentation for all configuration options:
# https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file

version: 2
updates:
- package-ecosystem: "gradle" # See documentation for possible values
directory: "/" # Location of package manifests
schedule:
interval: "weekly"
Binary file removed .github/readme-images/devbuilds.png
Binary file not shown.
Binary file removed .github/readme-images/discord_new.png
Binary file not shown.
Binary file removed .github/readme-images/faq.png
Binary file not shown.
Binary file modified .github/readme-images/logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed .github/readme-images/metrics.png
Binary file not shown.
Binary file removed .github/readme-images/source.png
Binary file not shown.
175 changes: 175 additions & 0 deletions .github/workflows/build-release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,175 @@
name: Build Release

on:
workflow_dispatch:

permissions:
contents: write

concurrency:
group: build-release-${{ github.ref }}
cancel-in-progress: true

jobs:
release:
runs-on: ubuntu-latest
timeout-minutes: 30

env:
JAVA_VERSION: '21'
PROJECT_VERSION: ""
WEBHOOK_URL: ${{ secrets.WEBHOOK_URL }}
GH_TOKEN: ${{ secrets.TOKEN_GITHUB }}
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
HANGAR_TOKEN: ${{ secrets.HANGAR_TOKEN }}
MODRINTH_TOKEN: ${{ secrets.MODRINTH_TOKEN }}
POLYMART_TOKEN: ${{ secrets.POLYMART_TOKEN }}

steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Set up Java ${{ env.JAVA_VERSION }}
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: ${{ env.JAVA_VERSION }}
cache: gradle

- name: Set up Gradle
uses: gradle/actions/setup-gradle@v3

- name: Read version from build.gradle.kts
id: ver
shell: bash
run: |
VERSION=$(grep -Po 'version\s*=\s*"([^"]+)' build.gradle.kts | cut -d'"' -f2)
echo "PROJECT_VERSION=$VERSION"
echo "PROJECT_VERSION=$VERSION" >> "$GITHUB_ENV"

- name: Build MyPet
run: |
./gradlew --no-daemon build -PbuildType=release -PSENTRY_AUTH_TOKEN=${SENTRY_AUTH_TOKEN}

- name: Find shaded JAR
id: findjar
shell: bash
run: |
set -euo pipefail
shopt -s nullglob
CANDIDATES=(build/libs/MyPet-*.jar)
# Filter out sources/javadoc/plain jars
FILTERED=()
for j in "${CANDIDATES[@]}"; do
[[ "$j" =~ -(sources|javadoc|plain)\.jar$ ]] || FILTERED+=("$j")
done
if (( ${#FILTERED[@]} == 0 )); then
echo "No candidate jar found in build/libs" >&2
ls -la build/libs || true
exit 1
fi
JAR="${FILTERED[0]}"
echo "jar=$JAR" >> "$GITHUB_OUTPUT"
echo "filename=$(basename "$JAR")" >> "$GITHUB_OUTPUT"
echo "Found: $JAR"

- name: Upload workflow artifact (jar)
uses: actions/upload-artifact@v4
with:
name: mypet-release-jar
path: ${{ steps.findjar.outputs.jar }}
if-no-files-found: error
retention-days: 180

- name: Read changelog
id: changelog
shell: bash
run: |
CHANGELOG_FILE=".github/changelogs/${PROJECT_VERSION}.md"
if [[ -f "$CHANGELOG_FILE" ]]; then
echo "Found changelog: $CHANGELOG_FILE"
{
echo 'content<<EOF'
cat "$CHANGELOG_FILE"
echo 'EOF'
} >> "$GITHUB_OUTPUT"
else
echo "No changelog found at $CHANGELOG_FILE"
echo "content=A changelog has not yet been uploaded. Please consider checking Discord!" >> "$GITHUB_OUTPUT"
fi

- name: Create GitHub Release
uses: softprops/action-gh-release@v2
with:
tag_name: ${{ env.PROJECT_VERSION }}
name: v${{ env.PROJECT_VERSION }}
prerelease: false
overwrite_files: false
files: ${{ steps.findjar.outputs.jar }}
body: ${{ steps.changelog.outputs.content }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name: Publish to Modrinth
uses: cloudnode-pro/modrinth-publish@v2
with:
token: ${{ env.MODRINTH_TOKEN }}
project: SnE2iTno
version: ${{ env.PROJECT_VERSION }}
name: v${{ env.PROJECT_VERSION }}
changelog: ${{ steps.changelog.outputs.content }}
channel: release
featured: true
loaders: paper, spigot
game-versions: 1.8.8, 1.12.2, 1.16.5, 1.17.1, 1.18.2, 1.19.x, 1.20.x, 1.21.x
files: ${{ steps.findjar.outputs.jar }}

- name: Publish to Hangar
uses: benwoo1110/hangar-upload-action@v1
with:
api_token: ${{ env.HANGAR_TOKEN }}
slug: MyPet
version: ${{ env.PROJECT_VERSION }}
channel: Release
description: ${{ steps.changelog.outputs.content }}
files: |
[
{
"path": "${{ steps.findjar.outputs.jar }}",
"platforms": ["PAPER"]
}
]
platform_dependencies: |
{
"PAPER": ["1.8.8", "1.12.2", "1.16.5", "1.17.1", "1.18.2", "1.19.x", "1.20.x", "1.21.x"]
}

- name: Publish to Polymart
run: ./gradlew createPolymartRelease --no-daemon -PPOLYMART_VERSION=${PROJECT_VERSION} -PPOLYMART_FILE=${{ steps.findjar.outputs.jar }}

- name: Send a Discord webhook notification
run: |
RESPONSE=$(curl -H "Content-Type: application/json" -X POST -d '{
"username": "MyPet Release",
"content": "<@&1428362555084116131>",
"embeds": [
{
"type": "rich",
"title": "${{ env.PROJECT_VERSION }}",
"description": "**A new version of MyPet has released!**",
"color": 439741,
"thumbnail": {
"url": "https://raw.githubusercontent.com/MyPetORG/MyPet/master/.github/readme-images/logo.png"
},
"author": {
"name": "${{ github.actor }}",
"url": "https://github.com/${{ github.actor_id }}",
"icon_url": "https://avatars.githubusercontent.com/u/${{ github.actor_id }}?v=4"
},
"url": "https://modrinth.com/plugin/mypet/version/${{ env.PROJECT_VERSION }}"
}
]
}' ${{ secrets.WEBHOOK_URL }})
echo "Webhook server response: $RESPONSE"
Loading