Initial commit

This commit is contained in:
2026-08-08 21:34:54 +02:00
commit 65cd320c2f
16 changed files with 621 additions and 0 deletions
@@ -0,0 +1,10 @@
package org.examp.john.client;
import net.fabricmc.api.ClientModInitializer;
public class LocalchatClient implements ClientModInitializer {
@Override
public void onInitializeClient() {
}
}
@@ -0,0 +1,12 @@
package org.examp.john.client;
import net.fabricmc.fabric.api.datagen.v1.DataGeneratorEntrypoint;
import net.fabricmc.fabric.api.datagen.v1.FabricDataGenerator;
public class LocalchatDataGenerator implements DataGeneratorEntrypoint {
@Override
public void onInitializeDataGenerator(FabricDataGenerator fabricDataGenerator) {
FabricDataGenerator.Pack pack = fabricDataGenerator.createPack();
}
}
@@ -0,0 +1,14 @@
{
"required": true,
"minVersion": "0.8",
"package": "org.examp.john.mixin.client",
"compatibilityLevel": "JAVA_25",
"client": [
],
"injectors": {
"defaultRequire": 1
},
"overwrites": {
"requireAnnotations": true
}
}
@@ -0,0 +1,48 @@
package org.examp.john;
import net.fabricmc.fabric.api.message.v1.ServerMessageEvents;
import net.minecraft.ChatFormatting;
import net.minecraft.network.chat.Component;
import net.minecraft.server.MinecraftServer;
import net.minecraft.server.level.ServerPlayer;
import net.minecraft.server.level.ServerLevel;
import java.util.List;
public class ChatHandler {
public static void register() {
final String prefix = "!";
final float LOCAL_CHAT_RADIUS = 50;
ServerMessageEvents.ALLOW_CHAT_MESSAGE.register((message, sender, params) -> {
// Отримуємо чистий текст, який написав гравець, замість toString()
String text = message.signedContent();
ServerLevel serverLevel = sender.level();
MinecraftServer server = serverLevel.getServer();
List<ServerPlayer> players = server.getPlayerList().getPlayers();
if (text.startsWith(prefix)) {
String actualMessage = text.substring(1).trim();
Component globalMessage = Component.literal(sender.getDisplayName().getString() + ": " + actualMessage);
for (ServerPlayer player : players) {
player.sendSystemMessage(globalMessage);
}
} else {
Component localMessage = Component.literal(sender.getDisplayName().getString() + ": " + text).withStyle(ChatFormatting.GRAY);
for (ServerPlayer player : players) {
if (player.level() == serverLevel && player.distanceTo(sender) <= LOCAL_CHAT_RADIUS) {
player.sendSystemMessage(localMessage);
}
}
}
return false;
});
}
}
@@ -0,0 +1,16 @@
package org.examp.john;
import net.fabricmc.api.ModInitializer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class Localchat implements ModInitializer {
public static final String MOD_ID = "localhost";
public static final Logger magicModLog = LoggerFactory.getLogger(MOD_ID);
@Override
public void onInitialize() {
// Тепер ChatHandler викликається з того ж пакета без помилок імпорту
ChatHandler.register();
}
}
+35
View File
@@ -0,0 +1,35 @@
{
"schemaVersion": 1,
"id": "localchat",
"version": "${version}",
"name": "localchat",
"description": "",
"authors": [],
"contact": {},
"license": "All-Rights-Reserved",
"icon": "assets/localchat/icon.png",
"environment": "*",
"entrypoints": {
"fabric-datagen": [
"org.examp.john.client.LocalchatDataGenerator"
],
"client": [
"org.examp.john.client.LocalchatClient"
],
"main": [
"org.examp.john.Localchat"
]
},
"mixins": [
"localchat.mixins.json",
{
"config": "localchat.client.mixins.json",
"environment": "client"
}
],
"depends": {
"fabricloader": ">=${loader_version}",
"fabric-api": "*",
"minecraft": "${minecraft_version}"
}
}
+14
View File
@@ -0,0 +1,14 @@
{
"required": true,
"minVersion": "0.8",
"package": "org.examp.john.mixin",
"compatibilityLevel": "JAVA_25",
"mixins": [
],
"injectors": {
"defaultRequire": 1
},
"overwrites": {
"requireAnnotations": true
}
}