Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
7 changes: 7 additions & 0 deletions .github/workflows/dev.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,13 @@ jobs:
run: chmod +x gradlew
- name: Build with Gradle
run: ./gradlew clean build --no-daemon
# Fabric 1.21.8
- name: Upload Artifact (Fabric 1.21.8)
uses: actions/upload-artifact@v4
with:
name: 'ZMusic Fabric 1.21.8'
path: |
zmusic-fabric/zmusic-fabric-1.21.8/build/libs/**.jar
# Fabric 1.21
- name: Upload Artifact (Fabric 1.21)
uses: actions/upload-artifact@v4
Expand Down
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
//https://github.com/FabricMC/fabric-loom/issues/1036
plugins {
id("fabric-loom") version "1.6-SNAPSHOT" apply false
id("fabric-loom") version "1.11-SNAPSHOT" apply false
}

def gitCommitHash = {
Expand Down
2 changes: 1 addition & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14-bin.zip
networkTimeout=10000
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
1 change: 1 addition & 0 deletions settings.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ rootProject.name = "ZMusic-Mod"
include("zmusic-core")
include(
"zmusic-fabric",
"zmusic-fabric:zmusic-fabric-1.21.8",
"zmusic-fabric:zmusic-fabric-1.21",
"zmusic-fabric:zmusic-fabric-1.20.5",
"zmusic-fabric:zmusic-fabric-1.20",
Expand Down
2 changes: 1 addition & 1 deletion zmusic-fabric/zmusic-fabric-1.14.4/build.gradle
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
plugins {
id("fabric-loom") version "1.6-SNAPSHOT"
id("fabric-loom") version "1.11-SNAPSHOT"
}

java {
Expand Down
2 changes: 1 addition & 1 deletion zmusic-fabric/zmusic-fabric-1.15.2/build.gradle
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
plugins {
id("fabric-loom") version "1.6-SNAPSHOT"
id("fabric-loom") version "1.11-SNAPSHOT"
}

java {
Expand Down
2 changes: 1 addition & 1 deletion zmusic-fabric/zmusic-fabric-1.16.5/build.gradle
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
plugins {
id("fabric-loom") version "1.6-SNAPSHOT"
id("fabric-loom") version "1.11-SNAPSHOT"
}

java {
Expand Down
2 changes: 1 addition & 1 deletion zmusic-fabric/zmusic-fabric-1.17.1/build.gradle
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
plugins {
id("fabric-loom") version "1.6-SNAPSHOT"
id("fabric-loom") version "1.11-SNAPSHOT"
}

java {
Expand Down
2 changes: 1 addition & 1 deletion zmusic-fabric/zmusic-fabric-1.18.2/build.gradle
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
plugins {
id("fabric-loom") version "1.6-SNAPSHOT"
id("fabric-loom") version "1.11-SNAPSHOT"
}

java {
Expand Down
2 changes: 1 addition & 1 deletion zmusic-fabric/zmusic-fabric-1.19.2/build.gradle
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
plugins {
id("fabric-loom") version "1.6-SNAPSHOT"
id("fabric-loom") version "1.11-SNAPSHOT"
}

java {
Expand Down
2 changes: 1 addition & 1 deletion zmusic-fabric/zmusic-fabric-1.19.3/build.gradle
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
plugins {
id("fabric-loom") version "1.6-SNAPSHOT"
id("fabric-loom") version "1.11-SNAPSHOT"
}

java {
Expand Down
2 changes: 1 addition & 1 deletion zmusic-fabric/zmusic-fabric-1.19.4/build.gradle
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
plugins {
id("fabric-loom") version "1.6-SNAPSHOT"
id("fabric-loom") version "1.11-SNAPSHOT"
}

java {
Expand Down
2 changes: 1 addition & 1 deletion zmusic-fabric/zmusic-fabric-1.20.5/build.gradle
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
plugins {
id("fabric-loom") version "1.6-SNAPSHOT"
id("fabric-loom") version "1.11-SNAPSHOT"
}

java {
Expand Down
2 changes: 1 addition & 1 deletion zmusic-fabric/zmusic-fabric-1.20/build.gradle
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
plugins {
id("fabric-loom") version "1.6-SNAPSHOT"
id("fabric-loom") version "1.11-SNAPSHOT"
}

java {
Expand Down
21 changes: 21 additions & 0 deletions zmusic-fabric/zmusic-fabric-1.21.8/build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
plugins {
id("fabric-loom") version "1.11-SNAPSHOT"
}

java {
sourceCompatibility = JavaVersion.VERSION_21
targetCompatibility = JavaVersion.VERSION_21
}

dependencies {
minecraft("com.mojang:minecraft:1.21.8")
mappings("net.fabricmc:yarn:1.21.8+build.1")
modImplementation("net.fabricmc:fabric-loader:0.16.14")
modImplementation("net.fabricmc.fabric-api:fabric-api:0.129.0+1.21.8")

implementation(project(":zmusic-core"))
}

jar {
dependsOn(":zmusic-core:jar")
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
package me.zhenxin.zmusic;

import me.zhenxin.zmusic.event.ClientEvent;
import me.zhenxin.zmusic.manager.SoundManagerImpl;
import net.fabricmc.api.ModInitializer;
import net.fabricmc.fabric.api.client.networking.v1.ClientPlayConnectionEvents;
import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking;
import net.fabricmc.fabric.api.networking.v1.PayloadTypeRegistry;
import net.minecraft.network.PacketByteBuf;
import net.minecraft.network.codec.PacketCodec;
import net.minecraft.network.packet.CustomPayload;
import net.minecraft.util.Identifier;

import java.nio.charset.StandardCharsets;

/**
* Mod 主入口
*
* @author 真心
* @email qgzhenxin@qq.com
* @since 2023/1/28 13:01
*/
@SuppressWarnings("AlibabaClassNamingShouldBeCamel")
public class ZMusicMod implements ModInitializer {

@Override
public void onInitialize() {
ZMusic.setSoundManager(new SoundManagerImpl());

record MusicPayload(String str) implements CustomPayload {
public static final Id<MusicPayload> ID = new CustomPayload.Id<>(Identifier.of("zmusic", "channel"));
public static final PacketCodec<PacketByteBuf, MusicPayload> CODEC = PacketCodec.of((value, buf) -> {
}, buf -> {
byte[] buffer = new byte[buf.readableBytes()];
buf.readBytes(buffer);
buffer[0] = 0;
String message = new String(buffer, StandardCharsets.UTF_8).substring(1);
return new MusicPayload(message);
});


@Override
public Id<? extends CustomPayload> getId() {
return ID;
}
}

PayloadTypeRegistry.playS2C().register(MusicPayload.ID, MusicPayload.CODEC);
ClientPlayNetworking.registerGlobalReceiver(MusicPayload.ID, (payload, context) -> {
ClientEvent.onPacket(payload.str);
});

ClientPlayConnectionEvents.DISCONNECT.register((handler, client) -> ClientEvent.onDisconnect());
ZMusic.onEnable();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package me.zhenxin.zmusic.manager;

import net.minecraft.client.MinecraftClient;
import net.minecraft.sound.SoundCategory;

/**
* 音频管理器实现
*
* @author 真心
* @email qgzhenxin@qq.com
* @since 2023/1/29 23:29
*/
public class SoundManagerImpl implements SoundManager {

@Override
public float volume() {
return MinecraftClient.getInstance().options.getSoundVolume(SoundCategory.RECORDS);
}

@Override
public void stop() {
MinecraftClient.getInstance().getSoundManager().stopSounds(null, SoundCategory.MUSIC);
MinecraftClient.getInstance().getSoundManager().stopSounds(null, SoundCategory.RECORDS);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package me.zhenxin.zmusic.mixin;

import me.zhenxin.zmusic.event.ClientEvent;
import net.minecraft.server.network.ServerQueryNetworkHandler;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;

@Mixin(ServerQueryNetworkHandler.class)
public class QuitServer {
@Inject(method = "onDisconnected", at = @At("HEAD"))
public void onDisconnected(CallbackInfo info) {
ClientEvent.onDisconnect();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package me.zhenxin.zmusic.mixin;

import me.zhenxin.zmusic.ZMusic;
import net.minecraft.client.sound.SoundInstance;
import net.minecraft.client.sound.SoundSystem;
import net.minecraft.sound.SoundCategory;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;

@Mixin(SoundSystem.class)
public class SoundEvent {
@Inject(method = "play*", at = @At("HEAD"), cancellable = true)
public void play(SoundInstance soundInstance, CallbackInfoReturnable<SoundSystem.PlayResult> info) {
if (ZMusic.getPlayer().isPlay()) {
SoundCategory data = soundInstance.getCategory();
if (data == SoundCategory.RECORDS || data == SoundCategory.MUSIC) {
info.setReturnValue(SoundSystem.PlayResult.NOT_STARTED);
}
}
}

@Inject(method = "reloadSounds", at = @At("RETURN"))
public void reload(CallbackInfo info) {
ZMusic.getPlayer().setReload();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package me.zhenxin.zmusic.mixin;

import me.zhenxin.zmusic.ZMusic;
import net.minecraft.client.MinecraftClient;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;

@Mixin(MinecraftClient.class)
public class Tick {

@Inject(method = "tick", at = @At("TAIL"))
public void tick(CallbackInfo info) {
ZMusic.getPlayer().tick();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
{
"schemaVersion": 1,
"id": "zmusic",
"version": "${version}",
"name": "ZMusic Mod",
"description": "Powerful Music System",
"authors": [
"ZhenXin"
],
"contact": {
"homepage": "https://m.zplu.cc",
"sources": "https://github.com/RealHeart/ZMusic-Mod",
"issues": "https://github.com/RealHeart/ZMusic-Mod/issues",
"discord": "https://discord.gg/twQgJNufYn"
},
"license": "GPL-3.0",
"environment": "client",
"entrypoints": {
"main": [
"me.zhenxin.zmusic.ZMusicMod"
]
},
"mixins": [
"zmusic.mixins.json"
],
"depends": {
"fabricloader": ">=0.16.14",
"fabric-api": "*",
"minecraft": ">=1.21.7",
"java": ">=21"
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"required": true,
"package": "me.zhenxin.zmusic.mixin",
"compatibilityLevel": "JAVA_21",
"injectors": {
"defaultRequire": 1
},
"client": [
"QuitServer",
"SoundEvent",
"Tick"
]
}
2 changes: 1 addition & 1 deletion zmusic-fabric/zmusic-fabric-1.21/build.gradle
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
plugins {
id("fabric-loom") version "1.6-SNAPSHOT"
id("fabric-loom") version "1.11-SNAPSHOT"
}

java {
Expand Down