Skip to content

Commit

Permalink
Merge pull request #43 from FTBTeam/dev
Browse files Browse the repository at this point in the history
Dev
  • Loading branch information
desht committed Mar 21, 2024
2 parents 03c17a5 + 1fc68a7 commit d60ecb3
Show file tree
Hide file tree
Showing 16 changed files with 315 additions and 20 deletions.
5 changes: 4 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -22,4 +22,7 @@ logs
eclipse
run
.vscode
**/extra-mods-*/
**/extra-mods-*/

.DS_Store
.architectury-transformer
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,11 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

[2004.2.0]

### Changed
* Ported to MC 1.20.4: Forge, NeoForge and Fabric all supported

[1902.1.16]

### Fixed
Expand Down
4 changes: 2 additions & 2 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
plugins {
id "architectury-plugin" version "3.4-SNAPSHOT"
id "dev.architectury.loom" version "1.2-SNAPSHOT" apply false
id "dev.architectury.loom" version "1.5-SNAPSHOT" apply false
}

architectury {
Expand Down Expand Up @@ -74,4 +74,4 @@ allprojects {
}
}

task curseforgePublish
task curseforgePublish
2 changes: 1 addition & 1 deletion common/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ dependencies {
def ENV = System.getenv()

architectury {
common("forge", "fabric")
common("forge", "fabric", "neoforge")
}

publishing {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@ private MutableComponent parse() {
System.arraycopy(c, i + 1, rrggbb, 1, 6);

i += 6;
style = style.withColor(TextColor.parseColor(new String(rrggbb)));
style = style.withColor(TextColor.parseColor(new String(rrggbb)).result().orElse(TextColor.fromRgb(0xFFFFFF)));
} else {
ChatFormatting formatting = CODE_TO_FORMATTING.get(c[i]);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,6 @@
import net.fabricmc.fabric.api.message.v1.ServerMessageDecoratorEvent;
import net.minecraft.network.chat.MutableComponent;

import java.util.concurrent.CompletableFuture;

public class FTBRanksFabric implements ModInitializer {
@Override
public void onInitialize() {
Expand All @@ -19,10 +17,10 @@ public void onInitialize() {
if (sender != null) {
MutableComponent mutableComponent = message.copy();
if (MessageDecorator.decorateMessage(sender, mutableComponent)) {
return CompletableFuture.completedFuture(mutableComponent);
return mutableComponent;
}
}
return CompletableFuture.completedFuture(message);
return message;
});

PlayerDisplayNameCallback.EVENT.register(PlayerNameFormatting::formatPlayerName);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@
import net.minecraftforge.fml.ModLoadingContext;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
import net.minecraftforge.network.NetworkConstants;

@Mod(FTBRanks.MOD_ID)
public class FTBRanksForge {
Expand All @@ -28,7 +27,7 @@ public FTBRanksForge() {
// Nope.
// PermissionAPI.setPermissionHandler(new PermissionAPIWrapper(PermissionAPI.getPermissionHandler()));

ModLoadingContext.get().registerExtensionPoint(DisplayTest.class, () -> new DisplayTest(() -> NetworkConstants.IGNORESERVERONLY, (a, b) -> true));
ModLoadingContext.get().registerExtensionPoint(DisplayTest.class, () -> new DisplayTest(() -> DisplayTest.IGNORESERVERONLY, (a, b) -> true));
}

private void playerNameFormatting(PlayerEvent.NameFormat event) {
Expand Down
19 changes: 12 additions & 7 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,20 @@ org.gradle.daemon=false
mod_id=ftbranks
archives_base_name=ftb-ranks
maven_group=dev.ftb.mods
mod_version=2001.1.3
mod_version=2004.2.0
mod_author=FTB Team

minecraft_version=1.20.1
architectury_version=9.0.8
fabric_loader_version=0.14.21
fabric_api_version=0.83.1+1.20.1
ftb_library_version=2001.1.2
forge_version=47.0.1
minecraft_version=1.20.4

# Deps
forge_version=49.0.31
neoforge_version=20.4.196
neoforge_loader_version=1
fabric_loader_version=0.15.7
fabric_api_version=0.96.4+1.20.4
architectury_version=11.1.17

ftb_library_version=2004.2.0

curseforge_id_forge=314905
curseforge_id_fabric=472659
Expand Down
2 changes: 1 addition & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-bin.zip
147 changes: 147 additions & 0 deletions neoforge/build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,147 @@
plugins {
id "com.github.johnrengelman.shadow" version "7.1.0"
id "com.matthewprenger.cursegradle" version "1.4.0"
}

def ENV = System.getenv()

architectury {
platformSetupLoomIde()
neoForge()
}

configurations {
common
shadowCommon // Don't use shadow from the shadow plugin because we don't want IDEA to index this.
compileClasspath.extendsFrom common
runtimeClasspath.extendsFrom common
developmentNeoForge.extendsFrom common
}

//loom {
// forge {
// mixinConfigs = ["ftbranks-common.mixins.json"]
// }
//}

repositories {
maven {
url "https://maven.neoforged.net/releases/"
}
}

dependencies {
neoForge "net.neoforged:neoforge:${rootProject.neoforge_version}"

modApi "dev.architectury:architectury-neoforge:${rootProject.architectury_version}"
modApi("dev.ftb.mods:ftb-library-neoforge:${rootProject.ftb_library_version}") { transitive false }

common(project(path: ":common", configuration: "namedElements")) { transitive false }
shadowCommon(project(path: ":common", configuration: "transformProductionForge")) { transitive false }
}

apply from: "https://raw.githubusercontent.com/FTBTeam/mods-meta/main/gradle/extra-local-mods.gradle"

processResources {
exclude '.cache'

inputs.property "version", project.version

filesMatching("META-INF/mods.toml") {
expand "version": project.version,
"archversion": project.architectury_version,
"neoforgeversion": project.neoforge_version,
"neoforgeloaderversion": project.neoforge_loader_version,
"mcversion": project.minecraft_version,
"ftblibraryversion": project.ftb_library_version
}
}

shadowJar {
exclude "fabric.mod.json"

configurations = [project.configurations.shadowCommon]
setArchiveClassifier("dev-shadow")
}

remapJar {
input.set shadowJar.archiveFile
dependsOn shadowJar
archiveBaseName.set "${rootProject.archives_base_name}-${project.name}"
archiveClassifier.set null
}

jar {
manifest {
attributes([
"Specification-Title" : project.mod_id,
"Specification-Vendor" : project.mod_author,
"Specification-Version" : "1",
"Implementation-Title" : project.name,
"Implementation-Version" : version,
"Implementation-Vendor" : project.mod_author,
"Implementation-Timestamp": new Date().format("yyyy-MM-dd'T'HH:mm:ssZ")
])
}

setArchiveClassifier("dev")
}

components.java {
withVariantsFromConfiguration(project.configurations.shadowRuntimeElements) {
skip()
}
}

if (ENV.CURSEFORGE_KEY) {
curseforge {
apiKey = ENV.CURSEFORGE_KEY
project {
id = project.curseforge_id_forge
releaseType = ftbPublishing.relType
addGameVersion "Forge"
addGameVersion project.minecraft_version
mainArtifact(remapJar.archiveFile)
relations {
requiredDependency 'architectury-api'
requiredDependency 'ftb-library-forge'
}
changelog = ENV.CHANGELOG // expected to exist if ENV.CURSEFORGE does
changelogType = 'markdown'
}
}
}

publishing {
publications {
mavenForge(MavenPublication) {
artifactId = "${rootProject.archives_base_name}-${project.name}"
version ftbPublishing.mavenVersion
from components.java
}
}

repositories {
if (ftbPublishing.ftbToken) {
maven {
url ftbPublishing.ftbURL
credentials {
username = ftbPublishing.ftbUser
password = ftbPublishing.ftbToken
}
}
}

if (ftbPublishing.sapsToken) {
maven {
url ftbPublishing.sapsURL
credentials {
username = ftbPublishing.sapsUser
password = ftbPublishing.sapsToken
}
}
}
}
}

rootProject.tasks.getByName("curseforgePublish").dependsOn tasks.getByName("curseforge")
1 change: 1 addition & 0 deletions neoforge/gradle.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
loom.platform=neoforge
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
package dev.ftb.mods.ftbranks.neoforge;

import dev.ftb.mods.ftbranks.FTBRanks;
import dev.ftb.mods.ftbranks.PlayerNameFormatting;
import dev.ftb.mods.ftbranks.impl.decorate.MessageDecorator;
import net.minecraft.network.chat.MutableComponent;
import net.minecraft.server.level.ServerPlayer;
import net.neoforged.fml.IExtensionPoint.DisplayTest;
import net.neoforged.fml.ModLoadingContext;
import net.neoforged.fml.common.Mod;
import net.neoforged.neoforge.common.NeoForge;
import net.neoforged.neoforge.event.ServerChatEvent;
import net.neoforged.neoforge.event.entity.player.PlayerEvent;

@Mod(FTBRanks.MOD_ID)
public class FTBRanksNeoForge {
public FTBRanksNeoForge() {
NeoForge.EVENT_BUS.addListener(this::playerNameFormatting);
NeoForge.EVENT_BUS.addListener(this::serverChat);

FTBRanks.init();

// Nope.
// PermissionAPI.setPermissionHandler(new PermissionAPIWrapper(PermissionAPI.getPermissionHandler()));

ModLoadingContext.get().registerExtensionPoint(DisplayTest.class, () -> new DisplayTest(() -> DisplayTest.IGNORESERVERONLY, (a, b) -> true));
}

private void playerNameFormatting(PlayerEvent.NameFormat event) {
if (event.getEntity() instanceof ServerPlayer player) {
event.setDisplayname(PlayerNameFormatting.formatPlayerName(player, event.getDisplayname()));
}
}

private void serverChat(ServerChatEvent event) {
MutableComponent text = event.getMessage().copy();
if (MessageDecorator.decorateMessage(event.getPlayer(), text)) {
event.setMessage(text);
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
package dev.ftb.mods.ftbranks.neoforge;

/**
* @author LatvianModder
*/
public class PermissionAPIWrapper /* implements IPermissionHandler */ {
/* Nah, im not doing this lol
private final IPermissionHandler original;
public PermissionAPIWrapper(IPermissionHandler h) {
original = h;
}
@Override
public void registerNode(String node, DefaultPermissionLevel level, String desc) {
original.registerNode(node, level, desc);
}
@Override
public Collection<String> getRegisteredNodes() {
return original.getRegisteredNodes();
}
@Override
public boolean hasPermission(GameProfile profile, String node, @Nullable IContext context) {
if (context != null && context.getPlayer() instanceof ServerPlayer) {
return FTBRanksAPI.getPermissionValue((ServerPlayer) context.getPlayer(), node).asBoolean().orElseGet(() -> original.hasPermission(profile, node, context));
} else if (context != null && context.getWorld() != null && !context.getWorld().isClientSide()) {
ServerPlayer player = context.getWorld().getServer().getPlayerList().getPlayer(profile.getId());
if (player != null) {
return FTBRanksAPI.getPermissionValue(player, node).asBoolean().orElseGet(() -> original.hasPermission(profile, node, context));
}
}
return original.hasPermission(profile, node, context);
}
@Override
public String getNodeDescription(String node) {
return original.getNodeDescription(node);
}
*/
}
Loading

0 comments on commit d60ecb3

Please sign in to comment.