Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
41cb41d
start config.yml work add prefix and minimessage
Referix Dec 18, 2024
5ee918c
reload config.yml
Referix Dec 19, 2024
4e1112d
Merge remote-tracking branch 'origin/master'
Referix Dec 19, 2024
e6bf0a7
test auto release
Referix Dec 19, 2024
3dafee7
test 2 auto release
Referix Dec 19, 2024
175e9ed
test 3
Referix Dec 19, 2024
4804cbb
auto release try 4....
Referix Dec 19, 2024
0ec76e9
ryt 5.... ;(
Referix Dec 19, 2024
761dd56
try 6................
Referix Dec 19, 2024
2dcd313
this is work yeeeeeee XD
Referix Dec 19, 2024
e0b8ced
last update auto release :D
Referix Dec 19, 2024
b06fcdf
add support Oraxen, Nexo, ItemAdder for prefix
Referix Dec 19, 2024
89e295c
Merge remote-tracking branch 'origin/dev' into dev
Referix Dec 19, 2024
23ae1d8
Add present system && First DEV test
Referix Dec 19, 2024
f0077c4
feature: discord init
MRX580 Dec 20, 2024
cb3194c
new system gift present
Referix Dec 21, 2024
cc4c8a3
fix present name
Referix Dec 21, 2024
541c928
add format date MM.dd & yyyy.MM.dd
Referix Dec 27, 2024
f364302
add LuckPerm depend
Referix Dec 28, 2024
149c178
FIX
Referix Dec 28, 2024
d78a3ad
fix permission
Referix Dec 28, 2024
aa3c95e
fix LuckPerms
Referix Dec 28, 2024
d14358e
Birthday [v1.0.1-DEV_BUILD]
Referix Dec 29, 2024
12d9bab
Birthday [v1.0.1-DEV_BUILD]
Referix Dec 29, 2024
64aa3b0
Birthday [v1.0.1-DEV_BUILD]
Referix Dec 29, 2024
3997714
Birthday [v1.0.1-DEV_BUILD]
Referix Dec 29, 2024
238d4f2
Birthday [v1.0.1-DEV_BUILD]
Referix Dec 29, 2024
2f99810
Birthday [v1.0.2-DEV_BUILD]
Referix Dec 29, 2024
6ce2c6c
Birthday [v1.0.2] DEV_BUILD
Referix Dec 29, 2024
c602a18
Reduced file size
MRX580 Dec 29, 2024
741657e
Birthday [v1.0.2.1] DEV_BUILD
Referix Dec 29, 2024
692e758
Birthday [v1.0.2.2] DEV_BUILD
Referix Dec 29, 2024
f42595f
Birthday [v1.0.2.3] DEV_BUILD
MRX580 Dec 30, 2024
d2558fa
Merge remote-tracking branch 'origin/dev' into dev
MRX580 Dec 30, 2024
4e73520
Update gradle-publish.yml
Referix Dec 30, 2024
8042760
discord start rebuild && rebuild support all version custom head
Referix Dec 31, 2024
52dab99
discord start rebuild && rebuild support all version custom head
Referix Dec 31, 2024
f82c386
feat:Discord rebuild && Skull Fix
Referix Jan 7, 2025
08ff9ee
Create README.md
Referix Jan 8, 2025
bf2bed4
Update README.md
Referix Jan 8, 2025
b36ae83
fix:Discord fix && add enable massage
Referix Jan 9, 2025
f84d761
Merge remote-tracking branch 'origin/dev' into dev
Referix Jan 9, 2025
63fbfc0
Update gradle-publish.yml
Referix Jan 9, 2025
0b30904
Update gradle-publish.yml
Referix Jan 9, 2025
6158c01
Update gradle-publish.yml
Referix Jan 9, 2025
1ee9829
Update gradle-publish.yml
Referix Jan 9, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
133 changes: 113 additions & 20 deletions .github/workflows/gradle-publish.yml
Original file line number Diff line number Diff line change
@@ -1,53 +1,146 @@
name: Build and Release Plugin
name: Build and Release with Semantic Version

on:
push:
branches:
- dev # Виконується тільки для гілки dev
- dev
- main

jobs:
build:
build-and-release:
runs-on: ubuntu-latest

steps:
# Клонування репозиторію
- name: Checkout repository
# ------------------------------------------------
# 1. Клонуємо репозиторій
# ------------------------------------------------
- name: Checkout
uses: actions/checkout@v3

# Налаштування JDK
# ------------------------------------------------
# 2. Встановлюємо Java (для Gradle)
# ------------------------------------------------
- name: Set up JDK
uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: '17' # Відповідає конфігурації Gradle
java-version: '17'

# ------------------------------------------------
# 3. Semantic Versioning (PaulHatch/semantic-version)
# ------------------------------------------------
- name: Determine Version
id: version
uses: PaulHatch/[email protected]
with:
tag_prefix: v
major_pattern: /BREAKING CHANGE|feat!/ # Патерн для основного збільшення версії
minor_pattern: /feat:/ # Патерн для незначного збільшення версії
default_version: '0.1.0'
search_commit_body: true
bump_version: true # Автоматичне збільшення версії

# ------------------------------------------------
# 4. Формуємо тег і назву JAR (залежно від гілки)
# ------------------------------------------------
- name: Prepare Tag Variables
id: prepare_tag
run: |
BRANCH_NAME="${GITHUB_REF_NAME}" # "dev" або "main"
RAW_VERSION="${{ steps.version.outputs.version }}" # Напр.: "1.2.3"
TAG_PREFIX="v" # Префікс для тегу, який визначили вище.

# Збірка проєкту Gradle
if [ "$BRANCH_NAME" = "dev" ]; then
# Пререліз для dev
NEW_TAG="${TAG_PREFIX}${RAW_VERSION}-dev"
IS_PRERELEASE="true"
JAR_NAME="BirthDay-${RAW_VERSION}-dev.jar"
RELEASE_NAME="Dev Release BirthDay ${RAW_VERSION}"
else
# Стабільна версія (main)
NEW_TAG="${TAG_PREFIX}${RAW_VERSION}"
IS_PRERELEASE="false"
JAR_NAME="BirthDay-${RAW_VERSION}.jar"
RELEASE_NAME="Release BirthDay ${RAW_VERSION}"
fi

echo "new_tag=$NEW_TAG" >> $GITHUB_OUTPUT
echo "is_prerelease=$IS_PRERELEASE" >> $GITHUB_OUTPUT
echo "jar_name=$JAR_NAME" >> $GITHUB_OUTPUT
echo "release_name=$RELEASE_NAME" >> $GITHUB_OUTPUT

# ------------------------------------------------
# 5. Збираємо проєкт (Gradle)
# ------------------------------------------------
- name: Build with Gradle
run: ./gradlew shadowJar

# Перевірка створення JAR
- name: Verify JAR file
run: ls build/libs/*.jar
# ------------------------------------------------
# 6. Перейменовуємо JAR
# ------------------------------------------------
- name: Rename JAR
run: |
FILE=$(find build/libs -name '*.jar' | head -n 1)
if [ -z "$FILE" ]; then
echo "No JAR file found!"
exit 1
fi
mv "$FILE" "build/libs/${{ steps.prepare_tag.outputs.jar_name }}"
echo "Renamed to ${{ steps.prepare_tag.outputs.jar_name }}"

# ------------------------------------------------
# 7. Створюємо і пушимо тег
# ------------------------------------------------
- name: Create and Push Tag
run: |
NEW_TAG="${{ steps.prepare_tag.outputs.new_tag }}"
echo "Creating and pushing tag: $NEW_TAG"

# Створення релізу
# Перевіряємо чи існує вже тег
git fetch --tags
if git rev-parse "$NEW_TAG" >/dev/null 2>&1; then
echo "Tag $NEW_TAG already exists, deleting..."
git tag -d "$NEW_TAG"
git push origin --delete "$NEW_TAG"
fi

git config user.name "github-actions"
git config user.email "[email protected]"

git tag "$NEW_TAG" -m "Auto-bumped to $NEW_TAG"
git push origin "$NEW_TAG"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

# ------------------------------------------------
# 8. Створюємо GitHub Release
# ------------------------------------------------
- name: Create GitHub Release
id: create_release
uses: actions/create-release@v1
with:
tag_name: dev-${{ github.run_number }} # Унікальний тег для dev
release_name: Development Release ${{ github.run_number }}
tag_name: ${{ steps.prepare_tag.outputs.new_tag }}
release_name: ${{ steps.prepare_tag.outputs.release_name }}
body: |
Це автоматичний реліз для гілки dev.
**Автоматичний реліз** з гілки `${{ github.ref_name }}`

Версія: `${{ steps.version.outputs.version }}`
(за версією semantic-version): `${{ steps.version.outputs.version_type }}`

JAR: `${{ steps.prepare_tag.outputs.jar_name }}`
draft: false
prerelease: true
prerelease: ${{ steps.prepare_tag.outputs.is_prerelease }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

# Завантаження JAR у реліз
# ------------------------------------------------
# 9. Завантажуємо JAR у реліз
# ------------------------------------------------
- name: Upload Plugin JAR
uses: actions/upload-release-asset@v1
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: build/libs/*-all.jar # Файл із залежностями, зібраний ShadowJar
asset_name: ${{ github.repository }}-dev.jar # Назва репозиторію + "dev"
asset_path: build/libs/${{ steps.prepare_tag.outputs.jar_name }}
asset_name: ${{ steps.prepare_tag.outputs.jar_name }}
asset_content_type: application/java-archive
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
77 changes: 77 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
# Birthday Plugin

A Minecraft plugin to celebrate players' birthdays with customizable features and integrations.

---

## Features

1. **Placeholders**
- Use `%birthday_prefix%` and `%birthday_date%` placeholders in other plugins to display a player's birthday prefix and date.

2. **Integration with Oraxen and ItemAdder**
- Customize the birthday prefix using Oraxen or ItemAdder glyphs.
- Example: Use `(%oraxen_id%)` or directly insert a glyph symbol in the prefix.

3. **Birthday Presents**
- Configure special gifts for players, delivered automatically on their birthdays.
- Gifts can include custom items, materials, or other rewards.

4. **LuckPerms Integration**
- Assign temporary permissions or perks as birthday rewards.
- Example: Grant a donation rank or special privileges for a limited time.

5. **Discord Support**
- Connect a Discord channel to receive birthday notifications.
- Example message: "🎉 Happy Birthday to [Player]! 🎂"

---

## Commands and Permissions

### Commands:
- **/birthday**
View and interact with your birthday data.
**Permission:** `birthday.use`

- **/birthday reload**
Reload the plugin’s configuration files.
**Permission:** `birthday.reload`

- **/birthday delete**
Delete a player's birthday data.
**Permission:** `birthday.delete`

- **/birthday list**
List all stored birthday data on the server.
**Permission:** `birthday.list`

- **/birthday present**
Manage the birthday present system.
**Permission:** `birthday.present`

- **/birthday present open**
Add items to the birthday present configuration.
**Permission:** `birthday.present.open`

- **/birthday present give [player]**
Give the configured birthday present to a player.
**Permission:** `birthday.present.give`

---

## Integration Tips

- **Placeholders:** Use placeholders with scoreboard or chat formatting plugins to dynamically display birthday-related information.
- **Oraxen/ItemAdder:** Add custom glyphs to make birthday prefixes unique and visually appealing.
- **LuckPerms:** Automatically grant temporary perks such as XP boosts, ranks, or permissions as part of the birthday celebration.
- **Discord Notifications:** Share birthday announcements with your community in a linked Discord channel.

---

## Support

For assistance, feature requests, or bug reports, please reach out to us on Discord. Bring joy to your server with the Birthday Plugin! 🎉


DISCORD: https://discord.gg/eA4YhNQRJM
20 changes: 14 additions & 6 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
plugins {
id 'java'
id 'com.github.johnrengelman.shadow' version '7.1.0' // Плагін для shading
id 'com.github.johnrengelman.shadow' version '8.1.1' // Плагін для shading
}

group = 'org.referix'
version = '1.0-SNAPSHOT'
version = '1.0.0'

repositories {
mavenCentral()
Expand All @@ -23,22 +23,24 @@ repositories {
maven {
url = 'https://repo.extendedclip.com/content/repositories/placeholderapi/'
}
maven { url 'https://repo.luckperms.net/' }
}

dependencies {
compileOnly "io.papermc.paper:paper-api:1.20.1-R0.1-SNAPSHOT"
implementation 'org.bstats:bstats-bukkit:3.0.0'
implementation 'com.mojang:authlib:1.5.21'

compileOnly 'net.luckperms:api:5.4'
compileOnly 'me.clip:placeholderapi:2.11.6'
// JDBI Core
implementation 'org.jdbi:jdbi3-core:3.38.0'

// SQLite JDBC драйвер
implementation 'org.xerial:sqlite-jdbc:3.45.1.0'
implementation 'com.squareup.okhttp3:okhttp:4.12.0'

// Логування для JDBI (опціонально, для налагодження)
implementation 'org.jdbi:jdbi3-sqlobject:3.38.0'
runtimeOnly 'org.slf4j:slf4j-api:2.0.7'


}

Expand Down Expand Up @@ -70,11 +72,17 @@ processResources {

// ShadowJar конфігурація
shadowJar {
archiveClassifier.set('') // Замінює стандартний JAR
archiveBaseName.set('BIRTHDAY') // Назва файлу
archiveVersion.set('1.0.0-DEV') // Версія файлу
archiveClassifier.set('') // Без класифікатора
mergeServiceFiles()
minimize()
exclude 'org/sqlite/native/**'

// Переносим все зависимости в пространство имен org.referix.libs
relocate 'org.jdbi', 'org.referix.libs.jdbi'
relocate 'org.sqlite', 'org.referix.libs.sqlite'
relocate 'org.bstats', 'org.referix.libs.bstats'
}


Expand Down
Loading
Loading