Skip to content

Commit 28eae48

Browse files
feat: add GitHub Actions workflow for publishing, enhance Redis event handling, and update dependencies
1 parent ff064d5 commit 28eae48

File tree

11 files changed

+153
-10
lines changed

11 files changed

+153
-10
lines changed

.github/workflows/publish.yml

Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
name: Publish to Maven & Create GitHub Release
2+
3+
on:
4+
push:
5+
branches:
6+
- 'version/*'
7+
workflow_dispatch:
8+
9+
env:
10+
SLNE_SNAPSHOTS_REPO_USERNAME: ${{ secrets.SLNE_SNAPSHOTS_REPO_USERNAME }}
11+
SLNE_SNAPSHOTS_REPO_PASSWORD: ${{ secrets.SLNE_SNAPSHOTS_REPO_PASSWORD }}
12+
SLNE_RELEASES_REPO_USERNAME: ${{ secrets.SLNE_RELEASES_REPO_USERNAME }}
13+
SLNE_RELEASES_REPO_PASSWORD: ${{ secrets.SLNE_RELEASES_REPO_PASSWORD }}
14+
MODULE_REGEX: "surf-tab-api.*-all\\.jar$|surf-tab-velocity.*-all\\.jar$"
15+
DEFAULT_BRANCH: ${{ github.event.repository.default_branch }}
16+
17+
jobs:
18+
build:
19+
runs-on: ubuntu-latest
20+
environment: production
21+
steps:
22+
- name: Collect Workflow Telemetry
23+
uses: catchpoint/workflow-telemetry-action@v2
24+
25+
- name: Checkout Repository
26+
uses: actions/checkout@v4
27+
with:
28+
fetch-depth: 0
29+
30+
- name: Cache Gradle packages
31+
uses: actions/cache@v3
32+
with:
33+
path: |
34+
~/.gradle/caches
35+
~/.gradle/wrapper
36+
key: gradle-${{ runner.os }}-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
37+
restore-keys: gradle-${{ runner.os }}-
38+
39+
- name: Setup JDK
40+
uses: actions/setup-java@v4
41+
with:
42+
distribution: 'graalvm'
43+
java-version: '24'
44+
45+
- name: Build all modules with Gradle
46+
run: ./gradlew build shadowJar --parallel --no-scan
47+
48+
- name: Publish all modules to Maven
49+
run: ./gradlew publish --parallel --no-scan
50+
51+
- name: Extract Project Version and Snapshot Flag from Gradle
52+
id: get_version
53+
run: |
54+
VERSION=$(./gradlew properties --no-daemon \
55+
| grep '^version:' \
56+
| awk '{print $2}')
57+
SNAPSHOT_FLAG=$(./gradlew properties --no-daemon \
58+
| grep '^snapshot:' \
59+
| awk '{print $2}')
60+
if [ "$SNAPSHOT_FLAG" = "true" ]; then
61+
VERSION="${VERSION}-SNAPSHOT"
62+
fi
63+
echo "VERSION=$VERSION" >> $GITHUB_ENV
64+
echo "SNAPSHOT_FLAG=$SNAPSHOT_FLAG" >> $GITHUB_ENV
65+
66+
- name: Determine release flags
67+
run: |
68+
CURRENT_BRANCH=${GITHUB_REF#refs/heads/}
69+
# prerelease only for snapshots
70+
if [ "${SNAPSHOT_FLAG}" = "true" ]; then
71+
echo "PRERELEASE=true" >> $GITHUB_ENV
72+
else
73+
echo "PRERELEASE=false" >> $GITHUB_ENV
74+
fi
75+
# make_latest false for snapshots or non-default branches
76+
if [ "${SNAPSHOT_FLAG}" = "true" ] || [ "${CURRENT_BRANCH}" != "${DEFAULT_BRANCH}" ]; then
77+
echo "MAKE_LATEST=false" >> $GITHUB_ENV
78+
else
79+
echo "MAKE_LATEST=true" >> $GITHUB_ENV
80+
fi
81+
82+
- name: Find and filter JAR files
83+
id: find_jars
84+
run: |
85+
echo "JAR_FILES<<EOF" >> $GITHUB_ENV
86+
find . -path "**/build/libs/*.jar" \
87+
| grep -E "${{ env.MODULE_REGEX }}" \
88+
>> $GITHUB_ENV
89+
echo "EOF" >> $GITHUB_ENV
90+
91+
- name: Create GitHub Release
92+
uses: softprops/action-gh-release@v2
93+
with:
94+
tag_name: v${{ env.VERSION }}
95+
name: Release ${{ env.VERSION }}
96+
draft: false
97+
prerelease: ${{ env.PRERELEASE }}
98+
make_latest: ${{ env.MAKE_LATEST }}
99+
files: ${{ env.JAR_FILES }}
100+
generate_release_notes: true
101+
env:
102+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
kotlin.code.style=official
22
kotlin.stdlib.default.dependency=false
33
org.gradle.parallel=true
4-
version=1.21.11-1.0.0-SNAPSHOT
4+
version=1.21.11-1.0.1-SNAPSHOT

surf-tab-api/build.gradle.kts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
11
plugins {
2-
id("dev.slne.surf.surfapi.gradle.velocity")
2+
id("dev.slne.surf.surfapi.gradle.core")
3+
}
4+
5+
dependencies {
6+
api("dev.slne.surf:surf-redis:1.0.0-SNAPSHOT")
37
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package dev.slne.surf.tab.api.redis
2+
3+
import kotlinx.serialization.Contextual
4+
import kotlinx.serialization.Serializable
5+
import java.util.*
6+
7+
@Serializable
8+
data class TabHideRedisEvent(
9+
val player: @Contextual UUID,
10+
val toHide: @Contextual UUID
11+
)
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package dev.slne.surf.tab.api.redis
2+
3+
import kotlinx.serialization.Contextual
4+
import kotlinx.serialization.Serializable
5+
import java.util.*
6+
7+
@Serializable
8+
data class TabShowRedisEvent(
9+
val player: @Contextual UUID,
10+
val toShow: @Contextual UUID
11+
)

surf-tab-velocity/build.gradle.kts

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,5 @@ dependencies {
2020
compileOnly(libs.mini.placeholders)
2121
compileOnly(libs.mini.placeholders.kotlin)
2222
compileOnly(libs.luckperms.api)
23-
24-
implementation("dev.slne:surf-redis:1.0.0-20251223.105653-21")
25-
2623
api(project(":surf-tab-api"))
2724
}

surf-tab-velocity/src/main/kotlin/dev/slne/surf/tab/velocity/VelocityMain.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import com.velocitypowered.api.event.proxy.ProxyShutdownEvent
88
import com.velocitypowered.api.plugin.PluginContainer
99
import com.velocitypowered.api.plugin.annotation.DataDirectory
1010
import com.velocitypowered.api.proxy.ProxyServer
11-
import dev.slne.redis.RedisApi
11+
import dev.slne.surf.redis.RedisApi
1212
import dev.slne.surf.tab.velocity.command.surfTabCommand
1313
import dev.slne.surf.tab.velocity.config.TablistConfigProvider
1414
import dev.slne.surf.tab.velocity.hook.LuckPermsHook

surf-tab-velocity/src/main/kotlin/dev/slne/surf/tab/velocity/redis/TabRedisEventListener.kt

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,14 @@
11
package dev.slne.surf.tab.velocity.redis
22

3-
import dev.slne.redis.event.OnRedisEvent
3+
import dev.slne.surf.redis.event.OnRedisEvent
4+
import dev.slne.surf.tab.api.redis.TabHideRedisEvent
5+
import dev.slne.surf.tab.api.redis.TabShowRedisEvent
6+
import dev.slne.surf.tab.velocity.plugin
47
import dev.slne.surf.tab.velocity.redis.event.TabEntryAddRedisEvent
58
import dev.slne.surf.tab.velocity.redis.event.TabEntryRemoveRedisEvent
69
import dev.slne.surf.tab.velocity.service.tablistService
10+
import dev.slne.surf.tab.velocity.util.toVelocity
11+
import kotlin.jvm.optionals.getOrNull
712

813
object TabRedisEventListener {
914
@OnRedisEvent
@@ -32,4 +37,18 @@ object TabRedisEventListener {
3237
tablistService.removePlayer(it, event.profileUuid)
3338
}
3439
}
40+
41+
@OnRedisEvent
42+
fun onTabHide(event: TabHideRedisEvent) {
43+
val player = plugin.proxy.getPlayer(event.player).getOrNull() ?: return
44+
player.tabList.removeEntry(event.toHide)
45+
}
46+
47+
@OnRedisEvent
48+
fun onTabShow(event: TabShowRedisEvent) {
49+
val player = plugin.proxy.getPlayer(event.player).getOrNull() ?: return
50+
val entry = tablistService.entries.find { it.profile.uuid == event.toShow } ?: return
51+
52+
player.tabList.addEntry(entry.toVelocity(player.tabList))
53+
}
3554
}

surf-tab-velocity/src/main/kotlin/dev/slne/surf/tab/velocity/redis/event/TabEntryAddRedisEvent.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package dev.slne.surf.tab.velocity.redis.event
22

33
import com.velocitypowered.api.proxy.server.RegisteredServer
4-
import dev.slne.redis.event.RedisEvent
4+
import dev.slne.surf.redis.event.RedisEvent
55
import dev.slne.surf.tab.api.entry.TabEntry
66
import dev.slne.surf.tab.velocity.serializer.RegisteredServerSerializer
77
import kotlinx.serialization.Serializable

surf-tab-velocity/src/main/kotlin/dev/slne/surf/tab/velocity/redis/event/TabEntryRemoveRedisEvent.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package dev.slne.surf.tab.velocity.redis.event
22

33
import com.velocitypowered.api.proxy.server.RegisteredServer
4-
import dev.slne.redis.event.RedisEvent
4+
import dev.slne.surf.redis.event.RedisEvent
55
import dev.slne.surf.tab.velocity.serializer.RegisteredServerSerializer
66
import kotlinx.serialization.Contextual
77
import kotlinx.serialization.Serializable

0 commit comments

Comments
 (0)