Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
52 commits
Select commit Hold shift + click to select a range
304e01b
重启顺序
Coloryr Jul 23, 2026
33bcc7f
Update AllMusicPlayer.java
Coloryr Jul 24, 2026
90cc858
bug
Coloryr Jul 24, 2026
22bf133
stop 问题
Coloryr Jul 24, 2026
ed38ff7
Update args handling in CommandEX.java
Coloryr Jul 30, 2026
1853b66
1.21.4
Coloryr Aug 1, 2026
208d6a9
Merge branch 'main' of https://github.com/Coloryr/AllMusic
Coloryr Aug 1, 2026
de187bb
Update AllMusicPlayer.java
Coloryr Aug 1, 2026
c3b9b7e
Update build.gradle.kts
Coloryr Aug 1, 2026
d5a1b25
Fix badge links and enhance README content
Coloryr Aug 1, 2026
e88bf51
Update settings.gradle.kts
Coloryr Aug 1, 2026
738b797
Merge branch 'main' of https://github.com/Coloryr/AllMusic
Coloryr Aug 1, 2026
736d297
fix bug
Coloryr Aug 3, 2026
7e15c9c
Add BungeeCord support
hutuyee Aug 19, 2026
447e100
Fix BungeeCord dependency resolution
hutuyee Aug 19, 2026
3a9cfb0
Fix Forge 1.12.2 HUD initialization
hutuyee Aug 19, 2026
f3b4537
Reobfuscate Forge 1.12.2 client artifact
hutuyee Aug 20, 2026
7b01641
Fix Forge 1.12.2 rotating album texture
hutuyee Aug 20, 2026
6b4fa5b
Fix Forge 1.12.2 scaled texture UV
hutuyee Aug 20, 2026
b8bb1aa
Merge pull request #133 from hutuyee/main
Coloryr Aug 23, 2026
04d1ed5
调整
Coloryr Aug 23, 2026
45d1d13
4.1.9
Coloryr Aug 28, 2026
126a32a
投票序列
Coloryr Aug 28, 2026
df304d4
下一首播放时的处理
Coloryr Aug 28, 2026
ee612df
音乐API更新接口
Coloryr Aug 28, 2026
e9c0efa
缺失的语言
Coloryr Aug 28, 2026
9eb0c48
修复语言错误
MinaRelayer Sep 6, 2026
ac12f96
Merge pull request #135 from MinaRelayer/main
Coloryr Sep 6, 2026
453ce50
配置文件自纠正
Coloryr Sep 6, 2026
b55e578
Merge branch 'main' of https://github.com/Coloryr/AllMusic
Coloryr Sep 6, 2026
0134c9c
Update build.gradle.kts
Coloryr Sep 6, 2026
988a71b
Update CommandEX.java
Coloryr Sep 12, 2026
af09d7c
Update build.gradle.kts
Coloryr Sep 12, 2026
b49ddc8
fix
Coloryr Sep 12, 2026
93cf694
Update settings.gradle.kts
Coloryr Sep 12, 2026
910c569
26.3
Coloryr Sep 19, 2026
16e3398
mp3探测
Coloryr Sep 19, 2026
edab660
123
Coloryr Sep 24, 2026
7aebdb2
Update build.gradle.kts
Coloryr Sep 25, 2026
067a6a4
Merge remote-tracking branch 'upstream/main' into chore/minecraft-26.3
Arbousier1 Oct 6, 2026
f6efcb7
chore: add 26.3 server modules
Arbousier1 Oct 6, 2026
17b611d
chore: scope 26.3 update to server modules
Arbousier1 Oct 6, 2026
2c92d0f
fix: restore upstream 26.3 modules and verify compatibility in CI
Arbousier1 Oct 6, 2026
9b1c3e9
chore: preserve Gradle wrapper mode
Arbousier1 Oct 6, 2026
5570d84
ci: scope AllMusic compatibility builds by platform
Arbousier1 Oct 6, 2026
08dda47
ci: use scoped compatibility builds for release jobs
Arbousier1 Oct 6, 2026
ff2b459
ci: invoke non-executable Gradle wrapper through Bash
Arbousier1 Oct 6, 2026
997ab11
fix: compile shared OpenAL player and use Java25 for NeoForge
Arbousier1 Oct 6, 2026
8728b01
fix: keep playback reload branches inside run loop
Arbousier1 Oct 6, 2026
1f144f4
fix: restore shared player imports and task state
Arbousier1 Oct 6, 2026
5b771c8
fix: expose format detection and use shared playback state
Arbousier1 Oct 6, 2026
e72c75b
fix: compile shared HUD and resolve Velocity API from Paper
Arbousier1 Oct 6, 2026
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
16 changes: 14 additions & 2 deletions .github/workflows/client.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,14 @@ jobs:
uses: actions/checkout@v4
with:
submodules: 'true'
- name: Set up JDK 25
- name: Set up JDK 21 (Gradle launcher)
id: java21
uses: actions/setup-java@v4
with:
java-version: '21'
distribution: 'temurin'
- name: Set up JDK 25 (Minecraft toolchain)
id: java25
uses: actions/setup-java@v4
with:
java-version: '25'
Expand All @@ -37,8 +44,13 @@ jobs:
uses: gradle/actions/setup-gradle@v3
- name: build
shell: cmd
env:
JAVA_HOME_21: ${{ steps.java21.outputs.path }}
JAVA_HOME_25: ${{ steps.java25.outputs.path }}
run: |
gradlew :client:fabric_26_2:build --configure-on-demand --parallel --max-workers=4
set "JAVA_HOME=%JAVA_HOME_21%"
set "PATH=%JAVA_HOME_21%\bin;%PATH%"
gradlew.bat -Pallmusic.scope=client-26.2 -Dorg.gradle.java.installations.paths=%JAVA_HOME_25% --no-daemon :client:fabric_26_2:build --configure-on-demand --parallel --max-workers=4
- name: update
uses: actions/upload-artifact@v4
with:
Expand Down
188 changes: 188 additions & 0 deletions .github/workflows/compatibility.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,188 @@
name: AllMusic Compatibility

on:
push:
branches: [chore/minecraft-26.3]
pull_request:
workflow_dispatch:

permissions:
contents: read

concurrency:
group: allmusic-compatibility-${{ github.ref }}
cancel-in-progress: true

jobs:
legacy-client:
name: Legacy Fabric 1.20.1 client
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up JDK 21 (Gradle launcher)
id: java21
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: '21'
- name: Set up JDK 25 (Minecraft 26.3 toolchain)
id: java25
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: '25'
- uses: gradle/actions/setup-gradle@v4
- name: Build legacy client
env:
JAVA_HOME_21: ${{ steps.java21.outputs.path }}
JAVA_HOME_25: ${{ steps.java25.outputs.path }}
run: |
export JAVA_HOME="$JAVA_HOME_21"
export PATH="$JAVA_HOME/bin:$PATH"
bash ./gradlew -Pallmusic.scope=legacy-client -Dorg.gradle.java.installations.paths="$JAVA_HOME_25" --no-daemon --stacktrace --configure-on-demand :client:fabric_1_20_1:build

modern-clients:
name: Minecraft 26.3 clients
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
include:
- task: :client:fabric_26_3:build
launcher: '21'
- task: :client:neoforge_26_3:build
launcher: '25'
steps:
- uses: actions/checkout@v4
- name: Set up JDK 21 (Gradle launcher)
id: java21
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: '21'
- name: Set up JDK 25 (Minecraft 26.3 toolchain)
id: java25
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: '25'
- uses: gradle/actions/setup-gradle@v4
- name: Build client
env:
JAVA_HOME_21: ${{ steps.java21.outputs.path }}
JAVA_HOME_25: ${{ steps.java25.outputs.path }}
TASK: ${{ matrix.task }}
LAUNCHER: ${{ matrix.launcher }}
run: |
if [ "$LAUNCHER" = "25" ]; then export JAVA_HOME="$JAVA_HOME_25"; else export JAVA_HOME="$JAVA_HOME_21"; fi
export PATH="$JAVA_HOME/bin:$PATH"
bash ./gradlew -Pallmusic.scope=modern-client-26.3 -Dorg.gradle.java.installations.paths="$JAVA_HOME_25" --no-daemon --stacktrace --configure-on-demand "$TASK"

legacy-server:
name: Legacy Paper server
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up JDK 21 (Gradle launcher)
id: java21
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: '21'
- name: Set up JDK 25 (Minecraft 26.3 toolchain)
id: java25
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: '25'
- uses: gradle/actions/setup-gradle@v4
- name: Build legacy server
env:
JAVA_HOME_21: ${{ steps.java21.outputs.path }}
JAVA_HOME_25: ${{ steps.java25.outputs.path }}
run: |
export JAVA_HOME="$JAVA_HOME_21"
export PATH="$JAVA_HOME/bin:$PATH"
bash ./gradlew -Pallmusic.scope=legacy-server -Dorg.gradle.java.installations.paths="$JAVA_HOME_25" --no-daemon --stacktrace --configure-on-demand :server:paper:build

modern-servers:
name: Minecraft 26.3 servers
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
include:
- task: :server:fabric_26_3:build
launcher: '21'
- task: :server:neoforge_26_3:build
launcher: '25'
- task: :server:paper_26_3:build
launcher: '21'
- task: :server:folia_26_3:build
launcher: '21'
- task: :server:spigot_26_3:build
launcher: '21'
- task: :server:velocity_26_3:build
launcher: '21'
steps:
- uses: actions/checkout@v4
- name: Set up JDK 21 (Gradle launcher)
id: java21
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: '21'
- name: Set up JDK 25 (Minecraft 26.3 toolchain)
id: java25
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: '25'
- uses: gradle/actions/setup-gradle@v4
- name: Build server
env:
JAVA_HOME_21: ${{ steps.java21.outputs.path }}
JAVA_HOME_25: ${{ steps.java25.outputs.path }}
TASK: ${{ matrix.task }}
LAUNCHER: ${{ matrix.launcher }}
run: |
if [ "$LAUNCHER" = "25" ]; then export JAVA_HOME="$JAVA_HOME_25"; else export JAVA_HOME="$JAVA_HOME_21"; fi
export PATH="$JAVA_HOME/bin:$PATH"
bash ./gradlew -Pallmusic.scope=modern-server-26.3 -Dorg.gradle.java.installations.paths="$JAVA_HOME_25" --no-daemon --stacktrace --configure-on-demand "$TASK"

onejar:
name: Minecraft 26.3 one-jars
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
include:
- task: :onejar:fabric_26_3:build
launcher: '21'
- task: :onejar:neoforge_26_3:build
launcher: '25'
steps:
- uses: actions/checkout@v4
- name: Set up JDK 21 (Gradle launcher)
id: java21
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: '21'
- name: Set up JDK 25 (Minecraft 26.3 toolchain)
id: java25
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: '25'
- uses: gradle/actions/setup-gradle@v4
- name: Build one-jar
env:
JAVA_HOME_21: ${{ steps.java21.outputs.path }}
JAVA_HOME_25: ${{ steps.java25.outputs.path }}
TASK: ${{ matrix.task }}
LAUNCHER: ${{ matrix.launcher }}
run: |
if [ "$LAUNCHER" = "25" ]; then export JAVA_HOME="$JAVA_HOME_25"; else export JAVA_HOME="$JAVA_HOME_21"; fi
export PATH="$JAVA_HOME/bin:$PATH"
bash ./gradlew -Pallmusic.scope=onejar-26.3 -Dorg.gradle.java.installations.paths="$JAVA_HOME_25" --no-daemon --stacktrace --configure-on-demand "$TASK"
16 changes: 14 additions & 2 deletions .github/workflows/onejar.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,14 @@ jobs:
uses: actions/checkout@v4
with:
submodules: 'true'
- name: Set up JDK 25
- name: Set up JDK 21 (Gradle launcher)
id: java21
uses: actions/setup-java@v4
with:
java-version: '21'
distribution: 'temurin'
- name: Set up JDK 25 (Minecraft toolchain)
id: java25
uses: actions/setup-java@v4
with:
java-version: '25'
Expand All @@ -36,8 +43,13 @@ jobs:
uses: gradle/actions/setup-gradle@v3
- name: build
shell: cmd
env:
JAVA_HOME_21: ${{ steps.java21.outputs.path }}
JAVA_HOME_25: ${{ steps.java25.outputs.path }}
run: |
gradlew :onejar:buildOneJar
set "JAVA_HOME=%JAVA_HOME_21%"
set "PATH=%JAVA_HOME_21%\bin;%PATH%"
gradlew.bat -Dorg.gradle.java.installations.paths=%JAVA_HOME_25% --no-daemon :onejar:buildOneJar
- name: update
uses: actions/upload-artifact@v4
with:
Expand Down
16 changes: 14 additions & 2 deletions .github/workflows/server.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,14 @@ jobs:
uses: actions/checkout@v4
with:
submodules: 'true'
- name: Set up JDK 25
- name: Set up JDK 21 (Gradle launcher)
id: java21
uses: actions/setup-java@v4
with:
java-version: '21'
distribution: 'temurin'
- name: Set up JDK 25 (Minecraft toolchain)
id: java25
uses: actions/setup-java@v4
with:
java-version: '25'
Expand All @@ -36,8 +43,13 @@ jobs:
uses: gradle/actions/setup-gradle@v3
- name: build
shell: cmd
env:
JAVA_HOME_21: ${{ steps.java21.outputs.path }}
JAVA_HOME_25: ${{ steps.java25.outputs.path }}
run: |
gradlew :server:buildServer
set "JAVA_HOME=%JAVA_HOME_21%"
set "PATH=%JAVA_HOME_21%\bin;%PATH%"
gradlew.bat -Pallmusic.scope=server-all -Dorg.gradle.java.installations.paths=%JAVA_HOME_25% --no-daemon :server:buildServer
- name: update
uses: actions/upload-artifact@v4
with:
Expand Down
27 changes: 15 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,17 @@
![AllMusic](https://socialify.git.ci/Coloryr/AllMusic/image?description=1&font=Inter&forks=1&logo=https%3A%2F%2Fgithub.com%2FColoryr%2FAllMusic%2Fblob%2Fmain%2Fserver%2Fneoforge_26_1%2Fsrc%2Fmain%2Fresources%2Ficon.png%3Fraw%3Dtrue&name=1&owner=1&pattern=Signal&stargazers=1&theme=Auto)

![](https://img.shields.io/badge/Version-3.1.4-blue?style=for-the-badge)
![](https://img.shields.io/github/actions/workflow/status/Coloryr/AllMusic/gradle.yml?style=for-the-badge)
![](https://img.shields.io/github/actions/workflow/status/Coloryr/AllMusic/client.yml?style=for-the-badge)
![](https://img.shields.io/github/actions/workflow/status/Coloryr/AllMusic/server.yml?style=for-the-badge)
![](https://img.shields.io/github/actions/workflow/status/Coloryr/AllMusic/onejar.yml?style=for-the-badge)
![](https://img.shields.io/github/license/Coloryr/AllMusic?style=for-the-badge)

</div>

![GIF.gif](img/GIF.gif)

注:需要配合客户端Mod使用
**注:需要配合客户端Mod使用**
**1.7.10和1.12.2没有技术更新**
**不兼容旧版客户端Mod,需要新版客户端Mod**
**如果面板服有问题,请自己去问服务器商给不给你用**
**4.0服务器只能跟4.0客户端用,不兼容3.0的服务器或客户端**
Expand All @@ -20,6 +23,10 @@
- Folia
- Velocity

本分支新增服务端 26.3 构建模块:`:server:paper_26_3`、`:server:folia_26_3`、`:server:spigot_26_3` 与 `:server:velocity_26_3`。Paper/Folia 模块以 Paper API `26.3.build.157-beta`、Java 25 编译;Spigot 模块以 Spigot API `26.3-R0.1-SNAPSHOT` 编译;Velocity 模块只依赖 Velocity API `4.2.1-SNAPSHOT`,不依赖 Paper API。旧服务端模块保留。

本次服务端升级不宣称 Fabric、Forge 或 NeoForge 客户端已经支持 26.3;客户端/模组模块需另行迁移和实机验证。

模组支持的服务器
- Forge
- NeoForge
Expand All @@ -29,16 +36,18 @@
1. 安装AllMusic_Server

Paper服务器
复制`[paper]AllMusic_Server-4.0.0-all.jar`到你的`plugins`文件夹
复制`[paper]AllMusic_Server-4.0.0.jar`到你的`plugins`文件夹
Velocity服务器
复制`[velocity]AllMusic_Server-4.0.0-all.jar`到你的`plugins`文件夹
复制`[velocity]AllMusic_Server-4.0.0.jar`到你的`plugins`文件夹
Forge/Fabric/NeoForge类服务器
复制`[xxx-xxx]AllMusic_Server-4.0.0-all.jar`到你的`mods`文件夹
复制`[xxx-xxx]AllMusic_Server-4.0.0.jar`到你的`mods`文件夹

2. 安装客户端mod
复制`[xxx-xxx]AllMusic_Client-4.0.0-all`到客户端的`mods`文件夹
复制`[xxx-xxx]AllMusic_Client-4.0.0`到客户端的`mods`文件夹
重启客户端

如果你是单人游戏使用或者联机使用OneJar版本

## 音乐API
AllMusic不会内置音乐api,你想要正常使用需要自己安装
这里提供一个参考api https://github.com/Coloryr/netapi
Expand All @@ -62,12 +71,6 @@ AllMusic不会内置音乐api,你想要正常使用需要自己安装
> %allmusic_lyric% 歌词
> %allmusic_tlyric% 翻译的歌词

## 更新日志

```
4.0.0:全新字体渲染,拆分音乐API
```

## 配置文件说明
配置文件采用json格式,需要遵守json编写的格式规范
- maxPlayList 最大歌曲数
Expand Down
9 changes: 7 additions & 2 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ allprojects {
apply(plugin = "com.gradleup.shadow")

group = "com.coloryr"
version = "4.1.5"
version = "4.2.5"

// 设置项目JDK版本
java.sourceCompatibility = JavaVersion.VERSION_1_8
Expand Down Expand Up @@ -50,8 +50,13 @@ allprojects {
}

afterEvaluate {
// Launch Gradle on Java 21, but compile Minecraft 26.x adapters with Java 25.
// Legacy module bytecode targets stay unchanged.
java.toolchain.languageVersion.set(JavaLanguageVersion.of(
if (java.targetCompatibility == JavaVersion.VERSION_25) 25 else 21
))
if (plugins.hasPlugin("com.gtnewhorizons.retrofuturagradle")) return@afterEvaluate
if (plugins.hasPlugin("fabric-loom")) return@afterEvaluate
if (plugins.hasPlugin("fabric-loom") || plugins.hasPlugin("net.fabricmc.fabric-loom")) return@afterEvaluate

val rfgObfAttr = Attribute.of("com.gtnewhorizons.retrofuturagradle.obfuscation", String::class.java)
val rfgDeobfAttr = Attribute.of("rfgDeobfuscatorTransformed", Boolean::class.javaObjectType)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,8 @@ public void sendMessage(String data) {
}

public float getVolume() {
return Minecraft.getInstance().options.getSoundSourceVolume(SoundSource.RECORDS);
return Minecraft.getInstance().options.getSoundSourceVolume(SoundSource.RECORDS)
* Minecraft.getInstance().options.getSoundSourceVolume(SoundSource.MASTER);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,9 +36,4 @@ public void play(SoundInstance soundInstance, int v, CallbackInfo info) {
}
}
}

@Inject(method = "resume", at = @At("RETURN"))
public void reload(CallbackInfo info) {
AllMusicCore.reload();
}
}
Loading
Loading