Merge pull request #26 from lukasabbe/1.21.9

1.21.10
This commit is contained in:
Lukas
2025-10-08 10:40:10 +02:00
committed by GitHub
26 changed files with 125 additions and 104 deletions
+1 -1
View File
@@ -1,5 +1,5 @@
name: build name: build
on: [push, pull_request] on: [push]
jobs: jobs:
build: build:
+2 -3
View File
@@ -1,7 +1,6 @@
plugins { plugins {
// see https://fabricmc.net/develop/ for new versions // see https://fabricmc.net/develop/ for new versions
id 'fabric-loom' version '1.10-SNAPSHOT' apply false id 'fabric-loom' version '1.11-SNAPSHOT' apply false
// see https://projects.neoforged.net/neoforged/moddevgradle for new versions // see https://projects.neoforged.net/neoforged/moddevgradle for new versions
id 'net.neoforged.moddev' version '2.0.97' apply false id 'net.neoforged.moddev' version '2.0.112' apply false
} }
@@ -19,7 +19,7 @@ public class Config {
public void loadConfig(){ public void loadConfig(){
Path configPath = Services.PLATFORM.getConfigPath("bookshelfinspector-config.yml"); Path configPath = Services.PLATFORM.getConfigPath("bookshelfinspector-config.yml");
if(!Files.exists(configPath))createConfig(configPath); if(!Files.exists(configPath)) createConfig(configPath);
Yaml yaml = new Yaml(); Yaml yaml = new Yaml();
try{ try{
Map<String, Object> configMap = yaml.load(new FileReader(configPath.toFile())); Map<String, Object> configMap = yaml.load(new FileReader(configPath.toFile()));
@@ -39,7 +39,8 @@ public class Config {
} }
private void createConfig(Path configPath){ private void createConfig(Path configPath){
Path defaultConfigPath = Services.PLATFORM.getFileInModContainer("bookshelfinspector", "bookshelfinspector-config.yml"); Path defaultConfigPath = Services.PLATFORM.getFileOrCopyInModContainer("bookshelfinspector", "bookshelfinspector-config.yml");
if(defaultConfigPath == null) return;
try { try {
Files.copy(defaultConfigPath, configPath); Files.copy(defaultConfigPath, configPath);
} catch (IOException e) { } catch (IOException e) {
@@ -1,15 +0,0 @@
package com.lukasabbe.bookshelfinspector.mixin;
import net.minecraft.world.level.block.ChiseledBookShelfBlock;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.phys.BlockHitResult;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.gen.Invoker;
import java.util.OptionalInt;
@Mixin(ChiseledBookShelfBlock.class)
public interface BookshelfInvoker {
@Invoker("getHitSlot")
OptionalInt invokerGetSlotForHitPos(BlockHitResult hit, BlockState state);
}
@@ -1,6 +1,5 @@
package com.lukasabbe.bookshelfinspector.mixin; package com.lukasabbe.bookshelfinspector.mixin;
import com.lukasabbe.bookshelfinspector.Constants;
import com.lukasabbe.bookshelfinspector.renderer.Inspector; import com.lukasabbe.bookshelfinspector.renderer.Inspector;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.client.player.LocalPlayer; import net.minecraft.client.player.LocalPlayer;
@@ -1,6 +1,5 @@
package com.lukasabbe.bookshelfinspector.mixin; package com.lukasabbe.bookshelfinspector.mixin;
import com.lukasabbe.bookshelfinspector.Constants;
import com.lukasabbe.bookshelfinspector.renderer.HudRenderer; import com.lukasabbe.bookshelfinspector.renderer.HudRenderer;
import net.minecraft.client.DeltaTracker; import net.minecraft.client.DeltaTracker;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
@@ -7,14 +7,7 @@ public interface IPlatformHelper {
boolean isModLoaded(String modId); boolean isModLoaded(String modId);
boolean isDevelopmentEnvironment();
Path getConfigPath(String file); Path getConfigPath(String file);
Path getFileInModContainer(String mod, String fileName); Path getFileOrCopyInModContainer(String mod, String fileName);
default String getEnvironmentName() {
return isDevelopmentEnvironment() ? "development" : "production";
}
} }
@@ -1,10 +1,8 @@
package com.lukasabbe.bookshelfinspector.renderer; package com.lukasabbe.bookshelfinspector.renderer;
import com.lukasabbe.bookshelfinspector.BookshelfInspectorClient; import com.lukasabbe.bookshelfinspector.BookshelfInspectorClient;
import com.lukasabbe.bookshelfinspector.Constants;
import com.lukasabbe.bookshelfinspector.data.BookData; import com.lukasabbe.bookshelfinspector.data.BookData;
import com.lukasabbe.bookshelfinspector.util.RomanNumerals; import com.lukasabbe.bookshelfinspector.util.RomanNumerals;
import com.mojang.blaze3d.vertex.PoseStack;
import net.minecraft.ChatFormatting; import net.minecraft.ChatFormatting;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.Font; import net.minecraft.client.gui.Font;
@@ -3,13 +3,11 @@ package com.lukasabbe.bookshelfinspector.renderer;
import com.lukasabbe.bookshelfinspector.BookshelfInspectorClient; import com.lukasabbe.bookshelfinspector.BookshelfInspectorClient;
import com.lukasabbe.bookshelfinspector.data.BookData; import com.lukasabbe.bookshelfinspector.data.BookData;
import com.lukasabbe.bookshelfinspector.data.Tags; import com.lukasabbe.bookshelfinspector.data.Tags;
import com.lukasabbe.bookshelfinspector.mixin.BookshelfInvoker;
import com.lukasabbe.bookshelfinspector.network.packets.BookShelfInventoryRequestPayload; import com.lukasabbe.bookshelfinspector.network.packets.BookShelfInventoryRequestPayload;
import com.lukasabbe.bookshelfinspector.network.packets.LecternInventoryRequestPayload; import com.lukasabbe.bookshelfinspector.network.packets.LecternInventoryRequestPayload;
import com.lukasabbe.bookshelfinspector.platform.Services; import com.lukasabbe.bookshelfinspector.platform.Services;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos;
import net.minecraft.world.level.block.Blocks;
import net.minecraft.world.level.block.ChiseledBookShelfBlock; import net.minecraft.world.level.block.ChiseledBookShelfBlock;
import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.phys.BlockHitResult; import net.minecraft.world.phys.BlockHitResult;
@@ -23,9 +21,9 @@ public class Inspector {
public void inspect(Minecraft client){ public void inspect(Minecraft client){
if(!modAvailable) return; if(!modAvailable) return;
if(client.cameraEntity == null || client.player == null) return; if(client.getCameraEntity() == null || client.player == null) return;
HitResult hit = client.cameraEntity.pick(5f,0f,false); HitResult hit = client.getCameraEntity().pick(5f,0f,false);
//find block hit, if not found block returns //find block hit, if not found block returns
final HitResult.Type type = hit.getType(); final HitResult.Type type = hit.getType();
@@ -81,7 +79,7 @@ public class Inspector {
//Gets index position for a book in the bookshelf //Gets index position for a book in the bookshelf
ChiseledBookShelfBlock bookshelfBlock = (ChiseledBookShelfBlock) blockState.getBlock(); ChiseledBookShelfBlock bookshelfBlock = (ChiseledBookShelfBlock) blockState.getBlock();
OptionalInt optionalInt = ((BookshelfInvoker)bookshelfBlock).invokerGetSlotForHitPos(blockHitResult,blockState); OptionalInt optionalInt = bookshelfBlock.getHitSlot(blockHitResult, blockState.getValue(ChiseledBookShelfBlock.FACING));
//if the position is empty, return //if the position is empty, return
if(optionalInt.isEmpty()) { if(optionalInt.isEmpty()) {
@@ -8,8 +8,7 @@
], ],
"client": [ "client": [
"BookshelfMixin", "BookshelfMixin",
"InGameHudMixin", "InGameHudMixin"
"BookshelfInvoker"
], ],
"server": [], "server": [],
"injectors": { "injectors": {
+22
View File
@@ -1,6 +1,7 @@
plugins { plugins {
id 'multiloader-loader' id 'multiloader-loader'
id 'fabric-loom' id 'fabric-loom'
id "com.modrinth.minotaur" version "2.+"
} }
repositories { repositories {
maven { url "https://maven.shedaniel.me/" } maven { url "https://maven.shedaniel.me/" }
@@ -44,4 +45,25 @@ loom {
runDir('runs/server') runDir('runs/server')
} }
} }
}
modrinth {
token = System.getenv("MODRINTH_TOKEN")
projectId = "rOrXjyPb" // https://modrinth.com/mod/bookshelf-inspector
version = project.version
versionType = project.versionType
uploadFile = remapJar
gameVersions = [project.minecraft_version]
loaders = ["fabric"]
if(project.versionType == "beta" || project.versionType == "alpha"){
dependencies {
required.project "fabric-api"
}
}else{
dependencies {
required.project "fabric-api"
required.project "cloth-config"
required.project "modmenu"
}
}
} }
@@ -1,5 +1,6 @@
package com.lukasabbe.bookshelfinspector; package com.lukasabbe.bookshelfinspector.config;
import com.lukasabbe.bookshelfinspector.BookshelfInspectorClient;
import com.terraformersmc.modmenu.api.ConfigScreenFactory; import com.terraformersmc.modmenu.api.ConfigScreenFactory;
import com.terraformersmc.modmenu.api.ModMenuApi; import com.terraformersmc.modmenu.api.ModMenuApi;
import me.shedaniel.clothconfig2.api.ConfigBuilder; import me.shedaniel.clothconfig2.api.ConfigBuilder;
@@ -15,23 +15,16 @@ public class FabricPlatformHelper implements IPlatformHelper {
@Override @Override
public boolean isModLoaded(String modId) { public boolean isModLoaded(String modId) {
return FabricLoader.getInstance().isModLoaded(modId); return FabricLoader.getInstance().isModLoaded(modId);
} }
@Override
public boolean isDevelopmentEnvironment() {
return FabricLoader.getInstance().isDevelopmentEnvironment();
}
@Override @Override
public Path getConfigPath(String file) { public Path getConfigPath(String file) {
return FabricLoader.getInstance().getConfigDir().resolve(file); return FabricLoader.getInstance().getConfigDir().resolve(file);
} }
@Override @Override
public Path getFileInModContainer(String mod, String fileName) { public Path getFileOrCopyInModContainer(String mod, String fileName) {
if(FabricLoader.getInstance().getModContainer(mod).isEmpty()) return null; if(FabricLoader.getInstance().getModContainer(mod).isEmpty()) return null;
ModContainer modContainer = FabricLoader.getInstance().getModContainer(mod).get(); ModContainer modContainer = FabricLoader.getInstance().getModContainer(mod).get();
return modContainer.findPath(fileName).orElseThrow(); return modContainer.findPath(fileName).orElseThrow();
+2 -2
View File
@@ -22,7 +22,7 @@
"com.lukasabbe.bookshelfinspector.BookshelfInspectorFabricClient" "com.lukasabbe.bookshelfinspector.BookshelfInspectorFabricClient"
], ],
"modmenu": [ "modmenu": [
"com.lukasabbe.bookshelfinspector.ModMenu" "com.lukasabbe.bookshelfinspector.config.ModMenu"
] ]
}, },
"mixins": [ "mixins": [
@@ -31,7 +31,7 @@
"depends": { "depends": {
"fabricloader": ">=${fabric_loader_version}", "fabricloader": ">=${fabric_loader_version}",
"fabric-api": "*", "fabric-api": "*",
"minecraft": "~${minecraft_version}", "minecraft": "~1.21.9-beta.1",
"java": ">=${java_version}" "java": ">=${java_version}"
} }
} }
+15 -11
View File
@@ -1,28 +1,32 @@
version=2.1+1.21.8 version=2.1+1.21.10
# release, beta & alpha
versionType=release
group=com.lukasabbe.bookshelfinspector group=com.lukasabbe.bookshelfinspector
java_version=21 java_version=21
# Common # Common
minecraft_version=1.21.8 minecraft_version=1.21.10
mod_name=BookshelfInspector mod_name=BookshelfInspector
mod_author=Lukasabbe mod_author=Lukasabbe
mod_id=bookshelfinspector mod_id=bookshelfinspector
license=MIT license=MIT
credits= credits=
description=Inspect any book in a chiseled bookshelf. description=Inspect any book in a chiseled bookshelf.
minecraft_version_range=[1.21.8, 1.22) minecraft_version_range=[1.21.10, 1.22)
neo_form_version=1.21.8-20250717.133445 # https://projects.neoforged.net/neoforged/neoform
neo_form_version=1.21.10-20251007.142004
# The version of ParchmentMC that is used, see https://parchmentmc.org/docs/getting-started#choose-a-version for new versions # The version of ParchmentMC that is used, see https://parchmentmc.org/docs/getting-started#choose-a-version for new versions
parchment_minecraft=1.21.8 parchment_minecraft=1.21.9
parchment_version=2025.07.20 parchment_version=2025.10.05
# Fabric # Fabric
fabric_version=0.132.0+1.21.8 fabric_version=0.134.1+1.21.10
fabric_loader_version=0.17.2 fabric_loader_version=0.17.2
# NeoForge # NeoForge
neoforge_version=21.8.39 neoforge_version=21.10.1-beta
neoforge_loader_version_range=[4,) neoforge_loader_version_range=[4,)
# Gradle # Gradle
@@ -30,6 +34,6 @@ org.gradle.jvmargs=-Xmx3G
org.gradle.daemon=false org.gradle.daemon=false
# Global dep # Global dep
YAML_snake=2.4 YAML_snake=2.5
cloth_config=19.0.147 cloth_config=20.0.148
mod_menu=15.0.0-beta.3 mod_menu=16.0.0-rc.1
+1 -1
View File
@@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.12-bin.zip distributionUrl=https\://services.gradle.org/distributions/gradle-8.14-bin.zip
networkTimeout=10000 networkTimeout=10000
validateDistributionUrl=true validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME zipStoreBase=GRADLE_USER_HOME
+22 -2
View File
@@ -1,6 +1,7 @@
plugins { plugins {
id 'multiloader-loader' id 'multiloader-loader'
id 'net.neoforged.moddev' id 'net.neoforged.moddev'
id "com.modrinth.minotaur" version "2.+"
} }
repositories { repositories {
maven { url "https://maven.shedaniel.me/" } maven { url "https://maven.shedaniel.me/" }
@@ -45,7 +46,26 @@ neoForge {
dependencies { dependencies {
jarJar(implementation("org.yaml:snakeyaml:2.4")){} jarJar(implementation("org.yaml:snakeyaml:2.4")){}
additionalRuntimeClasspath "org.yaml:snakeyaml:2.4" runtimeOnly "org.yaml:snakeyaml:2.4"
} }
sourceSets.main.resources { srcDir 'src/generated/resources' } sourceSets.main.resources { srcDir 'src/generated/resources' }
sourceSets.main.resources { srcDir 'src/generated/resources' }
modrinth {
token = System.getenv("MODRINTH_TOKEN")
projectId = "rOrXjyPb" // https://modrinth.com/mod/bookshelf-inspector
version = project.version
versionType = project.versionType
uploadFile = jar
gameVersions = [project.minecraft_version]
loaders = ["neoforge"]
if(project.versionType == "beta" || project.versionType == "alpha"){
dependencies {}
}else{
dependencies {
required.project "cloth-config"
}
}
}
@@ -1,11 +1,12 @@
package com.lukasabbe.bookshelfinspector; package com.lukasabbe.bookshelfinspector;
import com.lukasabbe.bookshelfinspector.util.EventHandler;
import com.lukasabbe.bookshelfinspector.util.NetworkHandler;
import net.neoforged.bus.api.IEventBus; import net.neoforged.bus.api.IEventBus;
import net.neoforged.fml.common.Mod; import net.neoforged.fml.common.Mod;
@Mod(value = Constants.MOD_ID) @Mod(value = Constants.MOD_ID)
public class BookshelfInspectorNeoForge { public class BookshelfInspectorNeoForge {
public BookshelfInspectorNeoForge(IEventBus eventBus) { public BookshelfInspectorNeoForge(IEventBus eventBus) {
EventHandler.initServer(); EventHandler.initServer();
eventBus.addListener(NetworkHandler::registerPayloads); eventBus.addListener(NetworkHandler::registerPayloads);
@@ -1,5 +1,7 @@
package com.lukasabbe.bookshelfinspector; package com.lukasabbe.bookshelfinspector;
import com.lukasabbe.bookshelfinspector.config.ClothConfigGenerator;
import com.lukasabbe.bookshelfinspector.util.EventHandler;
import net.neoforged.api.distmarker.Dist; import net.neoforged.api.distmarker.Dist;
import net.neoforged.bus.api.IEventBus; import net.neoforged.bus.api.IEventBus;
import net.neoforged.fml.ModLoadingContext; import net.neoforged.fml.ModLoadingContext;
@@ -1,5 +1,6 @@
package com.lukasabbe.bookshelfinspector; package com.lukasabbe.bookshelfinspector.config;
import com.lukasabbe.bookshelfinspector.BookshelfInspectorClient;
import me.shedaniel.clothconfig2.api.ConfigBuilder; import me.shedaniel.clothconfig2.api.ConfigBuilder;
import me.shedaniel.clothconfig2.api.ConfigEntryBuilder; import me.shedaniel.clothconfig2.api.ConfigEntryBuilder;
import net.minecraft.client.gui.screens.Screen; import net.minecraft.client.gui.screens.Screen;
@@ -35,4 +36,4 @@ public class ClothConfigGenerator {
builder.setSavingRunnable(BookshelfInspectorClient.config::saveConfig); builder.setSavingRunnable(BookshelfInspectorClient.config::saveConfig);
return builder.build(); return builder.build();
} }
} }
@@ -1,6 +1,6 @@
package com.lukasabbe.bookshelfinspector.platform; package com.lukasabbe.bookshelfinspector.platform;
import com.lukasabbe.bookshelfinspector.EventHandler; import com.lukasabbe.bookshelfinspector.util.EventHandler;
import com.lukasabbe.bookshelfinspector.platform.handlers.OnPlayerDisconnectEvent; import com.lukasabbe.bookshelfinspector.platform.handlers.OnPlayerDisconnectEvent;
import com.lukasabbe.bookshelfinspector.platform.handlers.OnPlayerJoinEvent; import com.lukasabbe.bookshelfinspector.platform.handlers.OnPlayerJoinEvent;
import com.lukasabbe.bookshelfinspector.platform.services.IEventHelper; import com.lukasabbe.bookshelfinspector.platform.services.IEventHelper;
@@ -12,7 +12,5 @@ public class NeoForgeEventHelper implements IEventHelper {
} }
@Override @Override
public void registerOnPlayerDisconnect(OnPlayerDisconnectEvent event) { public void registerOnPlayerDisconnect(OnPlayerDisconnectEvent event) { EventHandler.playerDisconnectEvents.add(event); }
EventHandler.playerDisconnectEvents.add(event);
}
} }
@@ -7,7 +7,9 @@ import net.neoforged.fml.config.ModConfig;
import net.neoforged.fml.loading.FMLLoader; import net.neoforged.fml.loading.FMLLoader;
import net.neoforged.fml.loading.FMLPaths; import net.neoforged.fml.loading.FMLPaths;
import java.io.*;
import java.nio.file.Path; import java.nio.file.Path;
import java.nio.file.Paths;
public class NeoForgePlatformHelper implements IPlatformHelper { public class NeoForgePlatformHelper implements IPlatformHelper {
@@ -19,25 +21,29 @@ public class NeoForgePlatformHelper implements IPlatformHelper {
@Override @Override
public boolean isModLoaded(String modId) { public boolean isModLoaded(String modId) {
return ModList.get().isLoaded(modId); return ModList.get().isLoaded(modId);
} }
@Override
public boolean isDevelopmentEnvironment() {
return !FMLLoader.isProduction();
}
@Override @Override
public Path getConfigPath(String file) { public Path getConfigPath(String file) {
return FMLPaths.CONFIGDIR.get().resolve(file); return FMLPaths.CONFIGDIR.get().resolve(file);
} }
@Override @Override
public Path getFileInModContainer(String mod, String fileName) { public Path getFileOrCopyInModContainer(String mod, String fileName) {
if(ModList.get().getModContainerById(mod).isEmpty()) return null; if(ModList.get().getModContainerById(mod).isEmpty()) return null;
ModContainer container = ModList.get().getModContainerById(mod).get(); ModContainer container = ModList.get().getModContainerById(mod).get();
return container.getModInfo().getOwningFile().getFile().findResource(fileName); try {
InputStream inputStream = container.getModInfo().getOwningFile().getFile().getContents().get(fileName).open();
File targetFile = new File(getConfigPath("bookshelfinspector-config.yml").toUri());
try(OutputStream outputStream = new FileOutputStream(targetFile)){
byte[] buffer = new byte[8192];
int bytesRead;
while((bytesRead = inputStream.read(buffer)) != -1){
outputStream.write(buffer, 0, bytesRead);
}
}catch (IOException ignore){}
}catch (IOException ignore){}
return null;
} }
} }
@@ -1,4 +1,4 @@
package com.lukasabbe.bookshelfinspector; package com.lukasabbe.bookshelfinspector.util;
import com.lukasabbe.bookshelfinspector.platform.handlers.OnPlayerDisconnectEvent; import com.lukasabbe.bookshelfinspector.platform.handlers.OnPlayerDisconnectEvent;
import com.lukasabbe.bookshelfinspector.platform.handlers.OnPlayerJoinEvent; import com.lukasabbe.bookshelfinspector.platform.handlers.OnPlayerJoinEvent;
@@ -17,12 +17,10 @@ public class EventHandler {
public static void initClient(){ public static void initClient(){
NeoForge.EVENT_BUS.addListener(EventHandler::onDisconnect); NeoForge.EVENT_BUS.addListener(EventHandler::onDisconnect);
} }
public static void initServer(){ public static void initServer(){ NeoForge.EVENT_BUS.addListener(EventHandler::onJoin); }
NeoForge.EVENT_BUS.addListener(EventHandler::onJoin);
}
private static void onJoin(PlayerEvent.PlayerLoggedInEvent event){ private static void onJoin(PlayerEvent.PlayerLoggedInEvent event){
playerJoinEvents.forEach(onPlayerJoinEvent -> onPlayerJoinEvent.onPlayerJoin((ServerPlayer) event.getEntity(),event.getEntity().getServer())); playerJoinEvents.forEach(onPlayerJoinEvent -> onPlayerJoinEvent.onPlayerJoin((ServerPlayer) event.getEntity(), ((ServerPlayer)event.getEntity()).level().getServer()));
} }
private static void onDisconnect(ClientPlayerNetworkEvent.LoggingOut event){ private static void onDisconnect(ClientPlayerNetworkEvent.LoggingOut event){
@@ -1,5 +1,7 @@
package com.lukasabbe.bookshelfinspector; package com.lukasabbe.bookshelfinspector.util;
import com.lukasabbe.bookshelfinspector.BookshelfInspector;
import com.lukasabbe.bookshelfinspector.Constants;
import com.lukasabbe.bookshelfinspector.network.packets.BookShelfInventoryPayload; import com.lukasabbe.bookshelfinspector.network.packets.BookShelfInventoryPayload;
import com.lukasabbe.bookshelfinspector.network.packets.BookShelfInventoryRequestPayload; import com.lukasabbe.bookshelfinspector.network.packets.BookShelfInventoryRequestPayload;
import com.lukasabbe.bookshelfinspector.network.packets.LecternInventoryRequestPayload; import com.lukasabbe.bookshelfinspector.network.packets.LecternInventoryRequestPayload;
@@ -7,7 +9,6 @@ import com.lukasabbe.bookshelfinspector.network.packets.ModCheckPayload;
import net.minecraft.client.player.LocalPlayer; import net.minecraft.client.player.LocalPlayer;
import net.minecraft.server.level.ServerPlayer; import net.minecraft.server.level.ServerPlayer;
import net.neoforged.bus.api.SubscribeEvent; import net.neoforged.bus.api.SubscribeEvent;
import net.neoforged.neoforge.network.event.RegisterConfigurationTasksEvent;
import net.neoforged.neoforge.network.event.RegisterPayloadHandlersEvent; import net.neoforged.neoforge.network.event.RegisterPayloadHandlersEvent;
import net.neoforged.neoforge.network.registration.PayloadRegistrar; import net.neoforged.neoforge.network.registration.PayloadRegistrar;
@@ -15,7 +16,7 @@ public class NetworkHandler {
@SubscribeEvent @SubscribeEvent
public static void registerPayloads(final RegisterPayloadHandlersEvent event){ public static void registerPayloads(final RegisterPayloadHandlersEvent event){
final PayloadRegistrar registrar = event.registrar("bookshelfinspector").optional(); final PayloadRegistrar registrar = event.registrar(Constants.MOD_ID).optional();
registrar.playToClient( registrar.playToClient(
BookShelfInventoryPayload.ID, BookShelfInventoryPayload.ID,
BookShelfInventoryPayload.CODEC, BookShelfInventoryPayload.CODEC,
@@ -10,4 +10,16 @@ credits="${credits}" #optional
authors = "${mod_author}" #optional authors = "${mod_author}" #optional
description = '''${description}''' #mandatory (Supports multiline text) description = '''${description}''' #mandatory (Supports multiline text)
[[mixins]] [[mixins]]
config = "${mod_id}.mixins.json" config = "${mod_id}.mixins.json"
[[dependencies.${mod_id}]] #optional
modId = "neoforge" #mandatory
type = "required" #mandatory (Can be one of "required", "optional", "incompatible" or "discouraged")
versionRange = "[${neoforge_version},)" #mandatory
ordering = "NONE" # The order that this dependency should load in relation to your mod, required to be either 'BEFORE' or 'AFTER' if the dependency is not mandatory
side = "BOTH" # Side this dependency is applied on - 'BOTH', 'CLIENT' or 'SERVER'
[[dependencies.${mod_id}]]
modId = "minecraft"
type="required" #mandatory (Can be one of "required", "optional", "incompatible" or "discouraged")
versionRange = "${minecraft_version_range}"
ordering = "NONE"
side = "BOTH"
+5 -14
View File
@@ -3,18 +3,11 @@ pluginManagement {
gradlePluginPortal() gradlePluginPortal()
mavenCentral() mavenCentral()
exclusiveContent { maven {
forRepository { name = 'Fabric'
maven { url = uri('https://maven.fabricmc.net')
name = 'Fabric'
url = uri('https://maven.fabricmc.net')
}
}
filter {
includeGroup('net.fabricmc')
includeGroup('fabric-loom')
}
} }
exclusiveContent { exclusiveContent {
forRepository { forRepository {
maven { maven {
@@ -48,6 +41,4 @@ plugins {
rootProject.name = 'BookshelfInspectorMultiloader' rootProject.name = 'BookshelfInspectorMultiloader'
include('common') include('common')
include('fabric') include('fabric')
include('neoforge') include('neoforge')
include 'spigot'