Skip to content

Commit abf77b7

Browse files
github-actions[bot]MaksyKunUserDerezzedJakllpHaeherfeder
authored
Release (3.14.0) (#1743)
* added creaking backwards compatibility until 1.21.4 * fixed #1715 * follow owner approaches for a fix * fixed #1684 by simply failing the procedure instead of bypassing * fix #1716 (villager data loss on 1.21+) * fixes from fetched master branch * revert back version from testing * Rename job from bump_build_release to release * chore(release): bump MyPet to 3.13.6 * updates pipeline * Bump MyPet dev-release to 3.13.7 * Downgrade version from 3.13.7 to 3.13.5 * Enhance release workflow with concurrency and xmlstarlet Updated release workflow to improve efficiency and version handling. * Update release.yml * Refactor release workflow for better version management Updated the release workflow to improve efficiency and consistency in versioning across modules. * Refactor Maven build step in release workflow * [skip ci] Bump dev-release to 1..1 * Update release.yml * Replace version bump step with tag bump step * Update release workflow for version bump and branch * Change release branch from 'release' to 'development' * Update release workflow to compute next PATCH tag * chore(release): bump version to 2.0.2 * Refactor release workflow for version bumping * chore(release): bump MyPet to 2.0.3 * Update version from 2.0.3 to 3.13.5 * chore(release): bump MyPet to 3.13.6 * Update release workflow to cache Maven and refine steps * Downgrade version from 3.13.6 to 3.13.5 * chore(release): bump MyPet to 3.13.6 * Downgrade version from 3.13.6 to 3.13.5 * Update release workflow for MyPet versioning * Bump MyPet dev-release to 3.13.6 * Downgrade version from 3.13.6 to 3.13.5 * Update jar finding logic in release workflow * Bump MyPet dev-release to 3.13.6 * Fix file search path in release workflow * Bump MyPet dev-release to 3.13.7 * Downgrade version from 3.13.7 to 3.13.5 * Bump MyPet dev-release to 3.13.6 * Switch build system to Gradle (#1737) * Initial gradle conversion * Remove Maven files * Restore Java 8+ functionality * Re-add v1_20_R1 * Update README.md * Fixes for GitHub Action * Disable unused tasks to reduce build times * Fix plugin versioning (#1740) * Enable automatic snapshot production (#1742) * Fix plugin versioning * Fix build naming * Add GitHub Actions features * Create dependabot.yml * Remove Sentry bug reporting (#1749) * Reduce reliance on NMS modules (#1750) * Move action bar messaging out of NMS modules using Adventure * Move lightning strikes out of NMS modules using Bukkit API * Use temporary build of adventure-platform-bukkit to restore actionbar support for 1.21.7+ Temporary build is hosted on GitHub Packages in this repository. This is only necessary because we are still supporting Bukkit/Spigot environments. If we targeted Paper and downstream forks then we could use Paper's native Adventure libraries. * Move language check calls out of version modules where possible * Refactor v1_19_R1 module * Remove all NMS calls in IconMenuInventory * Remove majority of EggIconService classes Most icons are successfully grabbed with the API and don't need NMS classes * Remove reliance on NMS for CustomInventory May require override methods for 1.12. Tested 1.8.8, 1.16.5, 1.21.10 * Fix build.gradle.kts * GitHub Actions fix * Resolve crash if behavior modes aren't active when user switches to Pet Annotated all methods Fixed typos * Adjust updater to work with new releases; remove NMS reader logs * Remove petlist /pl alias * Resolve inventory GUI issues * Fix 1.21-1.21.3 compatibility by fixing Creaking minimum version * Replace System.out.println calls with MyPet Logger calls * Always register callback to resolve inventory issues * Revert addition of Adventure API (waiting until 4.0) * Warn and provide solution in console if old NBT format is used on 1.20.5+ * Resolve error when Pet tries to eat out of an inventory it doesn't have * Resolve Pet inventory related shutdown error * Add support for Salmon variants (sizes) * Add support for baby Dolphins * Add support for baby Glow Squids * Add support for baby Squids * Open skilltree editor in web browser if jar is executed * Compact file * Fix brown mooshroom crash on 1.21.10 * Drop Apache Commons dependency Necessary to fix issues with updating Spigot API * Make MyPet entity spawn in exact location of despawned Bukkit entity * Modify makeSound logic to cover NoSuchElementException * Add support for Copper Golems, oxidation, and waxing Right click on a Copper Golem Pet with an Axe to strip a layer of oxidation. Right click on a Copper Golem Pet with Honeycomb to prevent it from oxidizing. Right click on a Copper Golem Pet with a Poppy to have it place the poppy on its head. Right click a Copper Golem Pet with Shears to remove the Poppy from its head. Adds two config options for Copper Golems in pet-config.yml: CanOxidize: (default true), enables or disables oxidation of Copper Golem Pets OxidationTime: (default 2400), time in ticks between each oxidation state Copper Golem Pets do not turn into Statues, but could be possible in a future update * Annotate ReflectionUtil * Fix bad reflection call that was resulting in issues with Multiverse and EliteMobs, etc * Update Discord webhook warning * Remove old source * Accept Maven local as a source * Revert NMS changes to fix inventory issues until v4 Paper provides a better way to store nbt data, will switch to this in v4 * Fix Javascript exp accumulation * Reintroduce Sentry analytics until v4 rewrite * Update exp.js * Gracefully ignore invalid entity names instead of dropping the entire skilltree * Fix pathfinding TPS/crash issues (1.17+, lower versions unaffected) Rewrite owner following logic with variables for future tuning (1.20+) * Fix cat variants not saving properly * Fix cats losing tamed status on capture and release, making collar not display * Add support for Minecraft 1.21.11 * Add Bleed skill * Make Copper Golem Pet oxidation timer persist when stored * Prevent selecting a skilltree if a Pet's level exceeds the skilltree's max level (#1758) * Added a Maxlevel check * added the same change to command use * fixed wrong names * Cleanup --------- Co-authored-by: UserDerezzed <me@userderezzed.dev> * [skip ci] Update release workflow * [skip ci] Update pull request workflow --------- Co-authored-by: MaksyKun <77341370+MaksyKun@users.noreply.github.com> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: UserDerezzed <me@userderezzed.dev> Co-authored-by: Jakl <57708725+jakllp@users.noreply.github.com> Co-authored-by: Haeherfeder <colony@fcch.de>
1 parent dca2b21 commit abf77b7

3,636 files changed

Lines changed: 113845 additions & 108520 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/changelogs/3.14.0.md

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
![MyPet 3.14 Logo](https://cdn.modrinth.com/data/cached_images/499e09a335ab395cb066e31a4ea424fbeb9c7021.png)
2+
3+
Merry Christmas and Happy Holidays from MyPet! Consider this a holiday gift - a new version of MyPet has released.
4+
5+
**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
6+
7+
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.
8+
9+
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
10+
11+
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
12+
13+
**This update was also made possible by MaksyKun, haeherfader, and coleslydn, who each contributed their own time to this project. Thank you!**
14+
15+
Now, onto the changes!
16+
## MyPet Skilltree Creator
17+
[![MyPet Skilltree Creator Image](https://cdn.modrinth.com/data/cached_images/de487855be21385e3494dc74e446556d8fb58cf0_0.webp)](https://skilltree.mypet-plugin.de)
18+
The skilltree creator has been completely redesigned and is now available through the web. Visit it here: https://skilltree.mypet-plugin.de
19+
20+
You can also double-click on the plugin jar to have the skilltree creator open in your browser.
21+
## New Minecraft versions and new Pets
22+
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:
23+
- Right-click with Axe → strip oxidation
24+
- Right-click with Honeycomb → wax to prevent oxidation
25+
Unique to MyPet:
26+
- Right-click with Poppy → place flower on head
27+
- Right-click with Shears → remove poppy
28+
29+
Additionally, server owners can modify the Copper Golem Pet oxidation interval, or disable oxidation outright.
30+
31+
![MyPet 3.14.0 Mobs](https://cdn.modrinth.com/data/cached_images/f06c1204cf889a8107b0eb3007b5a06e963ab650.jpeg)
32+
## Bleed Skill
33+
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.
34+
35+
![Bleed Skill](https://cdn.modrinth.com/data/cached_images/f1d6f82b41b99b2b4e991a0dfa9056313442efda.gif)
36+
## Bugfixes
37+
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.
38+
39+
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.
40+
41+
### Full changelog:
42+
- Added support for Minecraft 1.21.11
43+
- Added support for Creaking Pets
44+
- Added support for Baby Dolphin Pets
45+
- Added support for Baby Glow Squid Pets
46+
- Added support for Baby Squid Pets
47+
- Added support for Copper Golem Pets with oxidation, waxing, and configuration options related to oxidation
48+
- Added Bleed skill
49+
- Added warning and attempt conversion for 1.20.5 and above if an old item NBT data format is detected
50+
- Prevent player from assigning a skilltree to a Pet if the Pet’s level is higher than the maximum level of the skilltree
51+
- Rewrote default Javascript exp accumulation script
52+
- 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
53+
- Switched build system from Maven to Gradle, paving the way for MyPet 4.0
54+
- Fixed /bukkit:reload resulting in a server crash (please do not use reload regardless - restart your server always!)
55+
- Rewrote Pet following, swimming, and flying logic to feel more like vanilla
56+
- As a result, resolved server crash/lag when Pets teleported to the player when at a far distance from the world origin
57+
- Fixed Mooshroom Cow Pets being able to duplicate bowls
58+
- Fixed villager data loss on capture/release on 1.21+
59+
- Switched to Bukkit API from NMS for lightning strikes
60+
- Fixed crash when behavior modes aren’t active when a player switches to a different Pet
61+
- Fixed issues regarding inventory GUIs
62+
- Replaced usage of System.out.println logging with MyPet Logger calls, preventing a warning from Spigot
63+
- Fixed Brown Mooshroom Pet crash on 1.21.10
64+
- Fixed Pets teleporting to the center of the block they are standing in when being captured/released
65+
- Fixed bad reflection call in 1.21.8 that was resulting in issues with Multiverse world creation, among other plugins
66+
- Fixed Javascript exp accumulation method
67+
- Fixed Cat Pet variants not saving upon capture/release
68+
- Fixed Cat Pet losing their tamed status upon capture/release
69+
- Removed /petlist alias, /pl, as it overrode the /plugins alias from Bukkit/Spigot
70+
- 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.

.github/dependabot.yml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# To get started with Dependabot version updates, you'll need to specify which
2+
# package ecosystems to update and where the package manifests are located.
3+
# Please see the documentation for all configuration options:
4+
# https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file
5+
6+
version: 2
7+
updates:
8+
- package-ecosystem: "gradle" # See documentation for possible values
9+
directory: "/" # Location of package manifests
10+
schedule:
11+
interval: "weekly"
-2.11 KB
Binary file not shown.
-1.77 KB
Binary file not shown.

.github/readme-images/faq.png

-1.48 KB
Binary file not shown.

.github/readme-images/logo.png

6.5 KB
Loading

.github/readme-images/metrics.png

-2.17 KB
Binary file not shown.

.github/readme-images/source.png

-2.69 KB
Binary file not shown.
Lines changed: 175 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,175 @@
1+
name: Build Release
2+
3+
on:
4+
workflow_dispatch:
5+
6+
permissions:
7+
contents: write
8+
9+
concurrency:
10+
group: build-release-${{ github.ref }}
11+
cancel-in-progress: true
12+
13+
jobs:
14+
release:
15+
runs-on: ubuntu-latest
16+
timeout-minutes: 30
17+
18+
env:
19+
JAVA_VERSION: '21'
20+
PROJECT_VERSION: ""
21+
WEBHOOK_URL: ${{ secrets.WEBHOOK_URL }}
22+
GH_TOKEN: ${{ secrets.TOKEN_GITHUB }}
23+
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
24+
HANGAR_TOKEN: ${{ secrets.HANGAR_TOKEN }}
25+
MODRINTH_TOKEN: ${{ secrets.MODRINTH_TOKEN }}
26+
POLYMART_TOKEN: ${{ secrets.POLYMART_TOKEN }}
27+
28+
steps:
29+
- name: Checkout
30+
uses: actions/checkout@v4
31+
with:
32+
fetch-depth: 0
33+
34+
- name: Set up Java ${{ env.JAVA_VERSION }}
35+
uses: actions/setup-java@v4
36+
with:
37+
distribution: temurin
38+
java-version: ${{ env.JAVA_VERSION }}
39+
cache: gradle
40+
41+
- name: Set up Gradle
42+
uses: gradle/actions/setup-gradle@v3
43+
44+
- name: Read version from build.gradle.kts
45+
id: ver
46+
shell: bash
47+
run: |
48+
VERSION=$(grep -Po 'version\s*=\s*"([^"]+)' build.gradle.kts | cut -d'"' -f2)
49+
echo "PROJECT_VERSION=$VERSION"
50+
echo "PROJECT_VERSION=$VERSION" >> "$GITHUB_ENV"
51+
52+
- name: Build MyPet
53+
run: |
54+
./gradlew --no-daemon build -PbuildType=release -PSENTRY_AUTH_TOKEN=${SENTRY_AUTH_TOKEN}
55+
56+
- name: Find shaded JAR
57+
id: findjar
58+
shell: bash
59+
run: |
60+
set -euo pipefail
61+
shopt -s nullglob
62+
CANDIDATES=(build/libs/MyPet-*.jar)
63+
# Filter out sources/javadoc/plain jars
64+
FILTERED=()
65+
for j in "${CANDIDATES[@]}"; do
66+
[[ "$j" =~ -(sources|javadoc|plain)\.jar$ ]] || FILTERED+=("$j")
67+
done
68+
if (( ${#FILTERED[@]} == 0 )); then
69+
echo "No candidate jar found in build/libs" >&2
70+
ls -la build/libs || true
71+
exit 1
72+
fi
73+
JAR="${FILTERED[0]}"
74+
echo "jar=$JAR" >> "$GITHUB_OUTPUT"
75+
echo "filename=$(basename "$JAR")" >> "$GITHUB_OUTPUT"
76+
echo "Found: $JAR"
77+
78+
- name: Upload workflow artifact (jar)
79+
uses: actions/upload-artifact@v4
80+
with:
81+
name: mypet-release-jar
82+
path: ${{ steps.findjar.outputs.jar }}
83+
if-no-files-found: error
84+
retention-days: 180
85+
86+
- name: Read changelog
87+
id: changelog
88+
shell: bash
89+
run: |
90+
CHANGELOG_FILE=".github/changelogs/${PROJECT_VERSION}.md"
91+
if [[ -f "$CHANGELOG_FILE" ]]; then
92+
echo "Found changelog: $CHANGELOG_FILE"
93+
{
94+
echo 'content<<EOF'
95+
cat "$CHANGELOG_FILE"
96+
echo 'EOF'
97+
} >> "$GITHUB_OUTPUT"
98+
else
99+
echo "No changelog found at $CHANGELOG_FILE"
100+
echo "content=A changelog has not yet been uploaded. Please consider checking Discord!" >> "$GITHUB_OUTPUT"
101+
fi
102+
103+
- name: Create GitHub Release
104+
uses: softprops/action-gh-release@v2
105+
with:
106+
tag_name: ${{ env.PROJECT_VERSION }}
107+
name: v${{ env.PROJECT_VERSION }}
108+
prerelease: false
109+
overwrite_files: false
110+
files: ${{ steps.findjar.outputs.jar }}
111+
body: ${{ steps.changelog.outputs.content }}
112+
env:
113+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
114+
115+
- name: Publish to Modrinth
116+
uses: cloudnode-pro/modrinth-publish@v2
117+
with:
118+
token: ${{ env.MODRINTH_TOKEN }}
119+
project: SnE2iTno
120+
version: ${{ env.PROJECT_VERSION }}
121+
name: v${{ env.PROJECT_VERSION }}
122+
changelog: ${{ steps.changelog.outputs.content }}
123+
channel: release
124+
featured: true
125+
loaders: paper, spigot
126+
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
127+
files: ${{ steps.findjar.outputs.jar }}
128+
129+
- name: Publish to Hangar
130+
uses: benwoo1110/hangar-upload-action@v1
131+
with:
132+
api_token: ${{ env.HANGAR_TOKEN }}
133+
slug: MyPet
134+
version: ${{ env.PROJECT_VERSION }}
135+
channel: Release
136+
description: ${{ steps.changelog.outputs.content }}
137+
files: |
138+
[
139+
{
140+
"path": "${{ steps.findjar.outputs.jar }}",
141+
"platforms": ["PAPER"]
142+
}
143+
]
144+
platform_dependencies: |
145+
{
146+
"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"]
147+
}
148+
149+
- name: Publish to Polymart
150+
run: ./gradlew createPolymartRelease --no-daemon -PPOLYMART_VERSION=${PROJECT_VERSION} -PPOLYMART_FILE=${{ steps.findjar.outputs.jar }}
151+
152+
- name: Send a Discord webhook notification
153+
run: |
154+
RESPONSE=$(curl -H "Content-Type: application/json" -X POST -d '{
155+
"username": "MyPet Release",
156+
"content": "<@&1428362555084116131>",
157+
"embeds": [
158+
{
159+
"type": "rich",
160+
"title": "${{ env.PROJECT_VERSION }}",
161+
"description": "**A new version of MyPet has released!**",
162+
"color": 439741,
163+
"thumbnail": {
164+
"url": "https://raw.githubusercontent.com/MyPetORG/MyPet/master/.github/readme-images/logo.png"
165+
},
166+
"author": {
167+
"name": "${{ github.actor }}",
168+
"url": "https://github.com/${{ github.actor_id }}",
169+
"icon_url": "https://avatars.githubusercontent.com/u/${{ github.actor_id }}?v=4"
170+
},
171+
"url": "https://modrinth.com/plugin/mypet/version/${{ env.PROJECT_VERSION }}"
172+
}
173+
]
174+
}' ${{ secrets.WEBHOOK_URL }})
175+
echo "Webhook server response: $RESPONSE"

0 commit comments

Comments
 (0)