Skip to content

Commit

Permalink
Merge pull request #61 from FTBTeam/dev
Browse files Browse the repository at this point in the history
Dev
  • Loading branch information
desht authored Jun 4, 2024
2 parents fa45e45 + 30ce972 commit e987a00
Show file tree
Hide file tree
Showing 20 changed files with 82 additions and 98 deletions.
3 changes: 2 additions & 1 deletion .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ jobs:
with:
curse-publish-task: ""
maven-snapshots: true
java-version: 21
secrets:
ftb-maven-token: ${{ secrets.FTB_MAVEN_TOKEN }}
saps-token: ${{ secrets.SAPS_TOKEN }}
saps-token: ${{ secrets.SAPS_TOKEN }}
3 changes: 2 additions & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,8 @@ jobs:
uses: FTBTeam/mods-meta/.github/workflows/standard-release.yml@main
with:
curse-publish-task: curseforge
java-version: 21
secrets:
ftb-maven-token: ${{ secrets.FTB_MAVEN_TOKEN }}
saps-token: ${{ secrets.SAPS_TOKEN }}
curse-token: ${{ secrets.CURSEFORGE_KEY }}
curse-token: ${{ secrets.CURSEFORGE_KEY }}
6 changes: 6 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,12 @@ 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).

## [2006.1.0]

### Changed
* Ported to Minecraft 1.20.6. Support for Fabric and NeoForge.
* Forge support may be re-added if/when Architectury adds support for Forge

## [2004.1.2]

### Changed
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.5-SNAPSHOT" apply false
id "dev.architectury.loom" version "1.6-SNAPSHOT" apply false
}

architectury {
Expand Down Expand Up @@ -36,7 +36,7 @@ allprojects {
// needs to be done AFTER version is set
apply from: "https://raw.githubusercontent.com/FTBTeam/mods-meta/main/gradle/publishing.gradle"

sourceCompatibility = targetCompatibility = compileJava.sourceCompatibility = compileJava.targetCompatibility = 17
sourceCompatibility = targetCompatibility = compileJava.sourceCompatibility = compileJava.targetCompatibility = 21

compileJava {
options.encoding = "UTF-8"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,19 +11,19 @@
public class FTBEssentialsClient extends FTBEssentialsCommon {
@Override
public void updateTabName(UpdateTabNameMessage packet) {
PlayerInfo info = Minecraft.getInstance().getConnection().getPlayerInfo(packet.uuid);
PlayerInfo info = Minecraft.getInstance().getConnection().getPlayerInfo(packet.uuid());

if (info == null) {
return;
}

MutableComponent component = Component.literal("");
if (packet.recording != RecordingStatus.NONE) {
component.append(Component.literal("⏺").withStyle(packet.recording.getStyle()));
if (packet.recording() != RecordingStatus.NONE) {
component.append(Component.literal("⏺").withStyle(packet.recording().getStyle()));
}

MutableComponent nameComponent = Component.literal(packet.nickname.isEmpty() ? packet.name : packet.nickname);
if (packet.afk) {
MutableComponent nameComponent = Component.literal(packet.nickname().isEmpty() ? packet.name() : packet.nickname());
if (packet.afk()) {
nameComponent.withStyle(ChatFormatting.GRAY);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import net.minecraft.commands.CommandSourceStack;
import net.minecraft.commands.Commands;
import net.minecraft.commands.arguments.EntityArgument;
import net.minecraft.core.Holder;
import net.minecraft.network.chat.Component;
import net.minecraft.server.level.ServerPlayer;
import net.minecraft.world.entity.ai.attributes.Attribute;
Expand Down Expand Up @@ -42,7 +43,7 @@ public List<LiteralArgumentBuilder<CommandSourceStack>> register() {
);
}

private static int speed(CommandSourceStack source, Attribute attr, ServerPlayer player) {
private static int speed(CommandSourceStack source, Holder<Attribute> attr, ServerPlayer player) {
AttributeInstance attrInstance = player.getAttribute(attr);

showSpeed(source, player, attrInstance);
Expand All @@ -51,15 +52,15 @@ private static int speed(CommandSourceStack source, Attribute attr, ServerPlayer
}


private static int speed(CommandSourceStack source, Attribute attr, ServerPlayer target, int boostPct) {
private static int speed(CommandSourceStack source, Holder<Attribute> attr, ServerPlayer target, int boostPct) {
AttributeInstance attrInstance = target.getAttribute(attr);

if (attrInstance != null) {
float speedMult = boostPct / 100f;
attrInstance.removeModifier(ESSENTIALS_SPEED_UUID);
if (speedMult != 0f) {
attrInstance.addPermanentModifier(new AttributeModifier(ESSENTIALS_SPEED_UUID,
"FTB Essentials speed boost", speedMult, AttributeModifier.Operation.MULTIPLY_BASE
"FTB Essentials speed boost", speedMult, AttributeModifier.Operation.ADD_MULTIPLIED_BASE
));
}
showSpeed(source, target, attrInstance);
Expand All @@ -71,11 +72,11 @@ private static int speed(CommandSourceStack source, Attribute attr, ServerPlayer
private static void showSpeed(CommandSourceStack source, ServerPlayer target, AttributeInstance attrInstance) {
Component msg;
if (attrInstance != null && attrInstance.getModifier(ESSENTIALS_SPEED_UUID) != null) {
double speedMult = attrInstance.getModifier(ESSENTIALS_SPEED_UUID).getAmount();
double speedMult = attrInstance.getModifier(ESSENTIALS_SPEED_UUID).amount();
int boostPct = (int) (speedMult * 100);
msg = Component.literal("Speed boost for ")
.append(target.getDisplayName())
.append(" (").append(Component.translatable(attrInstance.getAttribute().getDescriptionId())).append(") = " + boostPct + "%");
.append(" (").append(Component.translatable(attrInstance.getAttribute().value().getDescriptionId())).append(") = " + boostPct + "%");
} else {
msg = Component.literal("No speed boost for ").append(target.getDisplayName());
}
Expand Down
13 changes: 7 additions & 6 deletions common/src/main/java/dev/ftb/mods/ftbessentials/kit/Kit.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import dev.ftb.mods.ftbessentials.util.FTBEPlayerData;
import dev.ftb.mods.ftblibrary.snbt.SNBTCompoundTag;
import dev.ftb.mods.ftblibrary.util.TimeUtils;
import net.minecraft.core.HolderLookup;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.nbt.ListTag;
import net.minecraft.nbt.Tag;
Expand Down Expand Up @@ -47,11 +48,11 @@ public boolean isAutoGrant() {
return autoGrant;
}

public CompoundTag toNBT() {
public CompoundTag toNBT(HolderLookup.Provider provider) {
CompoundTag tag = new CompoundTag();

ListTag list = new ListTag();
items.forEach(stack -> list.add(saveStack(stack)));
items.forEach(stack -> list.add(saveStack(stack, provider)));

tag.put("items", list);

Expand All @@ -61,19 +62,19 @@ public CompoundTag toNBT() {
return tag;
}

private SNBTCompoundTag saveStack(ItemStack stack) {
private SNBTCompoundTag saveStack(ItemStack stack, HolderLookup.Provider provider) {
SNBTCompoundTag tag = new SNBTCompoundTag();
tag.singleLine();
stack.save(tag);
stack.save(provider, tag);
return tag;
}

public static Kit fromNBT(String kitName, CompoundTag tag) {
public static Kit fromNBT(String kitName, CompoundTag tag, HolderLookup.Provider provider) {
List<ItemStack> items = new ArrayList<>();
ListTag list = tag.getList("items", Tag.TAG_COMPOUND);
list.forEach(el -> {
if (el instanceof CompoundTag c) {
items.add(ItemStack.of(c));
ItemStack.parse(provider, c).ifPresent(items::add);
}
});
return new Kit(kitName, items, tag.getLong("cooldown"), tag.getBoolean("auto_grant"));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import net.minecraft.Util;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
import net.minecraft.core.HolderLookup;
import net.minecraft.core.NonNullList;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.server.level.ServerPlayer;
Expand All @@ -25,13 +26,13 @@ public static KitManager getInstance() {
return INSTANCE;
}

public void load(CompoundTag kits) {
public void load(CompoundTag kits, HolderLookup.Provider provider) {
allKits.clear();
kits.getAllKeys().forEach(key -> allKits.put(key, Kit.fromNBT(key, kits.getCompound(key))));
kits.getAllKeys().forEach(key -> allKits.put(key, Kit.fromNBT(key, kits.getCompound(key), provider)));
}

public CompoundTag save() {
return Util.make(new CompoundTag(), tag -> allKits.forEach((name, kit) -> tag.put(name, kit.toNBT())));
public CompoundTag save(HolderLookup.Provider provider) {
return Util.make(new CompoundTag(), tag -> allKits.forEach((name, kit) -> tag.put(name, kit.toNBT(provider))));
}

public Optional<Kit> get(String kitName) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,9 @@
package dev.ftb.mods.ftbessentials.net;

import dev.architectury.networking.simple.MessageType;
import dev.architectury.networking.simple.SimpleNetworkManager;
import dev.ftb.mods.ftbessentials.FTBEssentials;
import dev.ftb.mods.ftblibrary.util.NetworkHelper;

public interface FTBEssentialsNet {
SimpleNetworkManager NET = SimpleNetworkManager.create(FTBEssentials.MOD_ID);

MessageType UPDATE_TAB_NAME = NET.registerS2C("update_tab_name", UpdateTabNameMessage::new);

static void init() {
public class FTBEssentialsNet {
public static void init() {
NetworkHelper.registerS2C(UpdateTabNameMessage.TYPE, UpdateTabNameMessage.STREAM_CODEC, UpdateTabNameMessage::handle);
}
}
Original file line number Diff line number Diff line change
@@ -1,54 +1,36 @@
package dev.ftb.mods.ftbessentials.net;

import dev.architectury.networking.NetworkManager;
import dev.architectury.networking.simple.BaseS2CMessage;
import dev.architectury.networking.simple.MessageType;
import dev.ftb.mods.ftbessentials.FTBEssentials;
import dev.ftb.mods.ftbessentials.util.FTBEPlayerData.RecordingStatus;
import dev.ftb.mods.ftblibrary.util.NetworkHelper;
import net.minecraft.core.UUIDUtil;
import net.minecraft.network.FriendlyByteBuf;
import net.minecraft.network.codec.ByteBufCodecs;
import net.minecraft.network.codec.StreamCodec;
import net.minecraft.network.protocol.common.custom.CustomPacketPayload;
import net.minecraft.resources.ResourceLocation;

import java.util.UUID;

public class UpdateTabNameMessage extends BaseS2CMessage {
public final UUID uuid;
public final String name;
public final String nickname;
public final RecordingStatus recording;
public final boolean afk;
public record UpdateTabNameMessage(UUID uuid, String name, String nickname, RecordingStatus recording, boolean afk) implements CustomPacketPayload {
public static final Type<UpdateTabNameMessage> TYPE = new Type<>(new ResourceLocation(FTBEssentials.MOD_ID, "update_tab_name"));

public UpdateTabNameMessage(UUID id, String n, String nn, RecordingStatus r, boolean a) {
uuid = id;
name = n;
nickname = nn;
recording = r;
afk = a;
}

public UpdateTabNameMessage(FriendlyByteBuf buf) {
uuid = new UUID(buf.readLong(), buf.readLong());
name = buf.readUtf(Short.MAX_VALUE);
nickname = buf.readUtf(Short.MAX_VALUE);
recording = buf.readEnum(RecordingStatus.class);
afk = buf.readBoolean();
}
public static StreamCodec<FriendlyByteBuf, UpdateTabNameMessage> STREAM_CODEC = StreamCodec.composite(
UUIDUtil.STREAM_CODEC, UpdateTabNameMessage::uuid,
ByteBufCodecs.STRING_UTF8, UpdateTabNameMessage::name,
ByteBufCodecs.STRING_UTF8, UpdateTabNameMessage::nickname,
NetworkHelper.enumStreamCodec(RecordingStatus.class), UpdateTabNameMessage::recording,
ByteBufCodecs.BOOL, UpdateTabNameMessage::afk,
UpdateTabNameMessage::new
);

@Override
public MessageType getType() {
return FTBEssentialsNet.UPDATE_TAB_NAME;
}

@Override
public void write(FriendlyByteBuf buf) {
buf.writeLong(uuid.getMostSignificantBits());
buf.writeLong(uuid.getLeastSignificantBits());
buf.writeUtf(name, Short.MAX_VALUE);
buf.writeUtf(nickname, Short.MAX_VALUE);
buf.writeEnum(recording);
buf.writeBoolean(afk);
public static void handle(UpdateTabNameMessage message, NetworkManager.PacketContext packetContext) {
packetContext.queue(() -> FTBEssentials.PROXY.updateTabName(message));
}

@Override
public void handle(NetworkManager.PacketContext packetContext) {
FTBEssentials.PROXY.updateTabName(this);
public Type<UpdateTabNameMessage> type() {
return TYPE;
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package dev.ftb.mods.ftbessentials.util;

import dev.architectury.hooks.level.entity.PlayerHooks;
import dev.architectury.networking.NetworkManager;
import dev.ftb.mods.ftbessentials.FTBEssentials;
import dev.ftb.mods.ftbessentials.config.FTBEConfig;
import dev.ftb.mods.ftbessentials.net.UpdateTabNameMessage;
Expand Down Expand Up @@ -299,11 +300,11 @@ public void saveIfChanged() {
}

public void sendTabName(MinecraftServer server) {
new UpdateTabNameMessage(uuid, name, nick, recording, false).sendToAll(server);
NetworkManager.sendToPlayers(server.getPlayerList().getPlayers(), new UpdateTabNameMessage(uuid, name, nick, recording, false));
}

public void sendTabName(ServerPlayer to) {
new UpdateTabNameMessage(uuid, name, nick, recording, false).sendTo(to);
NetworkManager.sendToPlayer(to, new UpdateTabNameMessage(uuid, name, nick, recording, false));
}

public long getLastKitUseTime(String kitName) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ public void load() {
loadNBT(tag);
}
} catch (Exception ex) {
FTBEssentials.LOGGER.error("Failed to load world data: " + ex);
FTBEssentials.LOGGER.error("Failed to load world data: {}", ex);
ex.printStackTrace();
}
}
Expand All @@ -83,7 +83,7 @@ private SNBTCompoundTag toNBT() {
muteTimeouts.forEach((id, until) -> mutesTag.putLong(id.toString(), until));
tag.put("mute_timeouts", mutesTag);

tag.put("kits", KitManager.getInstance().save());
tag.put("kits", KitManager.getInstance().save(server.registryAccess()));

return tag;
}
Expand All @@ -97,7 +97,7 @@ public void loadNBT(SNBTCompoundTag tag) {
muteTimeouts.put(UUID.fromString(key), mutesTag.getLong(key));
}

KitManager.getInstance().load(tag.getCompound("kits"));
KitManager.getInstance().load(tag.getCompound("kits"), server.registryAccess());
}

public void tickMuteTimeouts(MinecraftServer server) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package dev.ftb.mods.ftbessentials.util;

import dev.architectury.event.CompoundEventResult;
import dev.ftb.mods.ftbessentials.config.FTBEConfig;
import dev.ftb.mods.ftbessentials.api.event.TeleportEvent;
import dev.ftb.mods.ftbessentials.config.FTBEConfig;
import dev.ftb.mods.ftbessentials.util.TeleportPos.TeleportResult;
import net.minecraft.ChatFormatting;
import net.minecraft.network.chat.Component;
Expand Down
21 changes: 11 additions & 10 deletions gradle.properties
Original file line number Diff line number Diff line change
@@ -1,24 +1,25 @@
org.gradle.jvmargs=-Xmx3G

enabled_platforms=fabric,forge,neoforge
# enabled_platforms=fabric,forge,neoforge
enabled_platforms=fabric,neoforge
mod_id=ftbessentials
archives_base_name=ftb-essentials
maven_group=dev.ftb.mods
minecraft_version=1.20.4
mod_version=2004.1.2
minecraft_version=1.20.6
mod_version=2006.1.0
mod_author=FTB Team

# Deps
forge_version=49.0.31
neoforge_version=20.4.196
forge_version=50.0.9
neoforge_version=20.6.100-beta
neoforge_loader_version=1
fabric_loader_version=0.15.7
fabric_api_version=0.96.4+1.20.4
fabric_loader_version=0.15.10
fabric_api_version=0.99.0+1.20.6

architectury_version=11.1.17
architectury_version=12.1.3

ftb_library_version=2004.2.0
ftb_ranks_version=2004.2.0
ftb_library_version=2006.1.1
ftb_ranks_version=2006.1.0

# common curseforge project for forge and fabric
curseforge_id=410811
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.5-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip
Loading

0 comments on commit e987a00

Please sign in to comment.