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
4 changes: 2 additions & 2 deletions .github/workflows/gradle.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,10 @@ jobs:
steps:
- uses: actions/checkout@v4

- name: Set up JDK 21
- name: Set up JDK 25
uses: actions/setup-java@v4
with:
java-version: '21'
java-version: '25'
distribution: 'temurin'

- name: Setup Gradle
Expand Down
5 changes: 2 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# ClanTag
<a href="https://github.com/mnfu/clans"><img alt="github" height="56" src="https://cdn.jsdelivr.net/npm/@intergrav/devins-badges@3/assets/cozy/available/github_vector.svg"></a>
<a href="https://modrinth.com/mod/fabric-api"><img alt="fabric-api" height="56" src="https://cdn.jsdelivr.net/npm/@intergrav/devins-badges@3/assets/cozy/requires/fabric-api_vector.svg"></a>
<a href="https://adoptium.net/temurin/releases?version=21&os=any&arch=any"><img alt="java-21" height="56" src="https://cdn.jsdelivr.net/npm/@intergrav/devins-badges@3.3.0/assets/cozy/built-with/java21_vector.svg"></a>
<a href="https://adoptium.net/temurin/releases?version=25&os=any&arch=any"><img alt="java-25" height="56" src="https://cdn.jsdelivr.net/npm/@intergrav/devins-badges@3.3.0/assets/cozy/built-with/java25_vector.svg"></a>


### What is it?
Expand All @@ -13,8 +13,7 @@
- Placeholders via https://github.com/Patbox/TextPlaceholderAPI
- Permissions via https://github.com/LuckPerms/LuckPerms

## Requires
- LuckPerms: https://luckperms.net/download
If no permissions are set, admin commands default to operator level 3 (Admins)

---

Expand Down
17 changes: 7 additions & 10 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
plugins {
id 'fabric-loom' version '1.15-SNAPSHOT'
id 'net.fabricmc.fabric-loom' version '1.15-SNAPSHOT'
id 'maven-publish'
}

Expand Down Expand Up @@ -43,32 +43,29 @@ repositories {
dependencies {
// To change the versions see the gradle.properties file
minecraft "com.mojang:minecraft:${project.minecraft_version}"
mappings "net.fabricmc:yarn:${project.yarn_mappings}:v2"
modImplementation "net.fabricmc:fabric-loader:${project.loader_version}"
implementation "net.fabricmc:fabric-loader:${project.loader_version}"

modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}"
modImplementation "eu.pb4:placeholder-api:${project.placeholder_api_version}"
compileOnly "net.luckperms:api:${project.luckperms_version}"
implementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_api_version}"
implementation "eu.pb4:placeholder-api:${project.placeholder_api_version}"
implementation("org.xerial:sqlite-jdbc:${project.sqlite_jdbc_version}")
include("org.xerial:sqlite-jdbc:${project.sqlite_jdbc_version}")
include(implementation "me.lucko:fabric-permissions-api:${project.fabric_permissions_api}")
}

processResources {
inputs.property "version", project.version
inputs.property "minecraft_version", project.minecraft_version
inputs.property "loader_version", project.loader_version
inputs.property "luckperms_version", project.luckperms_version
filteringCharset "UTF-8"

filesMatching("fabric.mod.json") {
expand "version": project.version,
"minecraft_version": project.minecraft_version,
"loader_version": project.loader_version,
"luckperms_version": project.luckperms_version
"loader_version": project.loader_version
}
}

def targetJavaVersion = 21
def targetJavaVersion = 25
tasks.withType(JavaCompile).configureEach {
// ensure that the encoding is set to UTF-8, no matter what the system default is
// this fixes some edge cases with special characters not displaying correctly
Expand Down
12 changes: 6 additions & 6 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,16 @@
org.gradle.jvmargs=-Xmx1G
# Fabric Properties
# check these on https://modmuss50.me/fabric.html
minecraft_version=1.21.11
yarn_mappings=1.21.11+build.4
minecraft_version=26.1
loader_version=0.18.4
loom_version=1.15-SNAPSHOT
# Mod Properties
mod_version=1.1.0
mod_version=1.1.1+26.1
maven_group=mnfu
archives_base_name=ClanTag
# Dependencies
# check this on https://modmuss50.me/fabric.html
fabric_version=0.141.3+1.21.11
placeholder_api_version=2.8.2+1.21.10
fabric_api_version=0.144.3+26.1
placeholder_api_version=3.0.0-beta.2+26.1
sqlite_jdbc_version=3.51.2.0
luckperms_version=5.4
fabric_permissions_api=0.7.0
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-9.2.1-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-9.4.1-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
Expand Down
47 changes: 26 additions & 21 deletions src/main/java/mnfu/clantag/ClanTag.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,12 @@
import net.fabricmc.fabric.api.command.v2.CommandRegistrationCallback;
import net.fabricmc.fabric.api.event.lifecycle.v1.ServerLifecycleEvents;
import net.fabricmc.fabric.api.networking.v1.ServerPlayConnectionEvents;
import net.minecraft.server.command.CommandManager;
import net.minecraft.server.network.ServerPlayerEntity;
import net.minecraft.text.Text;
import net.minecraft.util.Formatting;
import net.minecraft.util.Identifier;
import net.minecraft.commands.Commands;
import net.minecraft.server.level.ServerPlayer;
import net.minecraft.network.chat.Component;
import net.minecraft.ChatFormatting;
import net.minecraft.resources.Identifier;
import net.minecraft.world.entity.player.Player;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import eu.pb4.placeholders.api.Placeholders;
Expand Down Expand Up @@ -40,42 +41,46 @@ public void onInitialize() {

// cache players when they join, reducing any offline player lookups
ServerPlayConnectionEvents.JOIN.register(((serverPlayNetworkHandler, packetSender, minecraftServer) -> {
ServerPlayerEntity player = serverPlayNetworkHandler.getPlayer();
ServerPlayer player = serverPlayNetworkHandler.getPlayer();
MojangApi.cachePlayer(player);

PersistentPlayerCache cache = PersistentPlayerCache.getInstance();
if (cache != null) {
boolean updated = cache.updateIfChanged(player.getUuid(), player.getName().getString());
boolean updated = cache.updateIfChanged(player.getUUID(), player.getName().getString());
if (updated) {
LOGGER.debug("Updated persistent cache for {} ({})", player.getName().getString(), player.getUuid());
LOGGER.debug("Updated persistent cache for {} ({})", player.getName().getString(), player.getUUID());
}
}
}));

// register placeholders
Placeholders.register(
Identifier.of("clantag", "player_clan_name"),
Placeholders.registerServer(
Identifier.fromNamespaceAndPath("clantag", "player_clan_name"),
(ctx, arg) -> {
if (!ctx.hasPlayer() || ctx.player() == null) return PlaceholderResult.invalid();
Clan clan = clanManager.getPlayerClan(ctx.player().getUuid());
if (clan == null) return PlaceholderResult.value(Text.literal("Avience"));
return PlaceholderResult.value(Text.literal(clan.name()));
if (!ctx.hasPlayer()) return PlaceholderResult.invalid();
Player player = ctx.player();
if (player == null) return PlaceholderResult.invalid();
Clan clan = clanManager.getPlayerClan(player.getUUID());
if (clan == null) return PlaceholderResult.value(Component.literal("Avience"));
return PlaceholderResult.value(Component.literal(clan.name()));
}
);
Placeholders.register(
Identifier.of("clantag", "player_clan_name_colored"),
Placeholders.registerServer(
Identifier.fromNamespaceAndPath("clantag", "player_clan_name_colored"),
(ctx, arg) -> {
if (!ctx.hasPlayer() || ctx.player() == null) return PlaceholderResult.invalid();
Clan clan = clanManager.getPlayerClan(ctx.player().getUuid());
if (clan == null) return PlaceholderResult.value(Text.literal("Avience").formatted(Formatting.GRAY));
return PlaceholderResult.value(Text.literal(clan.name()).withColor(Integer.parseInt(clan.hexColor().substring(1), 16)));
if (!ctx.hasPlayer()) return PlaceholderResult.invalid();
Player player = ctx.player();
if (player == null) return PlaceholderResult.invalid();
Clan clan = clanManager.getPlayerClan(player.getUUID());
if (clan == null) return PlaceholderResult.value(Component.literal("Avience").withStyle(ChatFormatting.GRAY));
return PlaceholderResult.value(Component.literal(clan.name()).withColor(Integer.parseInt(clan.hexColor().substring(1), 16)));
}
);

// register commands
CommandRegistrationCallback.EVENT.register((dispatcher, registryAccess, environment) -> {

var baseCommand = CommandManager.literal("clan");
var baseCommand = Commands.literal("clan");
HelpCommand helpCommandClass = new HelpCommand();
var helpCommand = new HelpCommand().build();
var adminCommand = new AdminCommand(clanManager).build();
Expand Down
8 changes: 4 additions & 4 deletions src/main/java/mnfu/clantag/MojangApi.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import net.minecraft.server.network.ServerPlayerEntity;
import net.minecraft.server.level.ServerPlayer;

import java.net.URI;
import java.net.http.HttpClient;
Expand Down Expand Up @@ -153,10 +153,10 @@ private static Optional<UUID> handleUuidResponse(HttpResponse<String> response,
/**
* Caches a currently online player’s UUID and username in {@link MojangCache}.
*
* @param player the online {@link ServerPlayerEntity} to cache
* @param player the online {@link ServerPlayer} to cache
*/
public static void cachePlayer(ServerPlayerEntity player) {
CACHE.put(player.getUuid(), player.getName().getString());
public static void cachePlayer(ServerPlayer player) {
CACHE.put(player.getUUID(), player.getName().getString());
}

/**
Expand Down
Loading
Loading