Skip to content

Commit 876269f

Browse files
committed
1.21.4
1 parent 6906e52 commit 876269f

File tree

11 files changed

+37
-40
lines changed

11 files changed

+37
-40
lines changed

gradle.properties

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,14 @@ org.gradle.jvmargs=-Xmx1G
33

44
# Fabric Properties
55
# check these on https://fabricmc.net/develop
6-
minecraft_version=1.21
7-
yarn_mappings=1.21+build.9
8-
loader_version=0.16.3
6+
minecraft_version=1.21.4
7+
yarn_mappings=1.21.4+build.8
8+
loader_version=0.16.10
99

1010
# Fabric API
11-
fabric_version=0.102.0+1.21
11+
fabric_version=0.114.2+1.21.4
1212

1313
# Mod Properties
14-
mod_version = 1.0.5_1.21
14+
mod_version = 1.0.5_1.21.4
1515
maven_group = net.just_s.sframes
1616
archives_base_name = seamless-itemframes

src/main/java/net/just_s/sframes/SFramesMod.java

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,43 @@
11
package net.just_s.sframes;
22

33
import com.google.common.collect.Lists;
4-
import io.netty.buffer.Unpooled;
5-
import it.unimi.dsi.fastutil.objects.ObjectIterator;
64
import net.fabricmc.api.ModInitializer;
75
import net.fabricmc.fabric.api.command.v2.CommandRegistrationCallback;
6+
import net.fabricmc.fabric.api.event.lifecycle.v1.ServerLifecycleEvents;
87
import net.just_s.sframes.mixin.AccessDataTrackerEntries;
98
import net.minecraft.entity.data.DataTracker;
10-
import net.minecraft.entity.data.TrackedData;
11-
import net.minecraft.entity.data.TrackedDataHandlerRegistry;
129
import net.minecraft.entity.decoration.ItemFrameEntity;
1310
import net.minecraft.network.packet.Packet;
14-
import net.minecraft.network.PacketByteBuf;
1511
import net.minecraft.network.packet.s2c.play.EntityTrackerUpdateS2CPacket;
12+
import net.minecraft.scoreboard.Team;
1613
import net.minecraft.server.network.ServerPlayerEntity;
14+
import net.minecraft.util.Formatting;
1715
import org.jetbrains.annotations.Nullable;
1816
import org.slf4j.Logger;
1917
import org.slf4j.LoggerFactory;
2018

2119
import java.util.ArrayList;
22-
import java.util.Iterator;
2320
import java.util.List;
2421

2522
public class SFramesMod implements ModInitializer {
2623
public static final Logger LOGGER = LoggerFactory.getLogger("sframes");
2724
public static final Config CONFIG = new Config();
25+
public static final String TEAM_NAME = "SeamlessFrames";
2826

2927
@Override
3028
public void onInitialize() {
3129
LOGGER.info("Seamless Frames loaded successfully!");
3230
CONFIG.load();
3331
CommandRegistrationCallback.EVENT.register(FrameCommand::register);
32+
ServerLifecycleEvents.SERVER_STARTED.register(
33+
server -> {
34+
Team team = server.getScoreboard().getTeam(TEAM_NAME);
35+
if (team == null) {
36+
team = server.getScoreboard().addTeam(TEAM_NAME);
37+
}
38+
team.setColor(Formatting.byName(SFramesMod.CONFIG.outlineColor));
39+
}
40+
);
3441
}
3542

3643
public static void sendPackets(List<ServerPlayerEntity> players, Packet<?> packet) {

src/main/java/net/just_s/sframes/mixin/AccessDataTrackerEntries.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,9 @@
11
package net.just_s.sframes.mixin;
22

3-
import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
43
import net.minecraft.entity.data.DataTracker;
54
import org.spongepowered.asm.mixin.Mixin;
65
import org.spongepowered.asm.mixin.gen.Accessor;
76

8-
import java.util.concurrent.locks.ReadWriteLock;
9-
107
@Mixin(DataTracker.class)
118
public interface AccessDataTrackerEntries {
129
@Accessor

src/main/java/net/just_s/sframes/mixin/CustomColorMixin.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
package net.just_s.sframes.mixin;
22

3-
import io.netty.buffer.Unpooled;
43
import net.just_s.sframes.SFramesMod;
5-
import net.minecraft.network.PacketByteBuf;
64
import net.minecraft.network.packet.s2c.play.TeamS2CPacket;
75
import net.minecraft.scoreboard.Team;
86
import net.minecraft.server.network.ServerPlayerEntity;

src/main/java/net/just_s/sframes/mixin/DecorationItemMixin.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ private void inject(ItemUsageContext context, CallbackInfoReturnable<ActionResul
7979
}
8080

8181
itemStack.decrement(1);
82-
cir.setReturnValue(ActionResult.success(world.isClient));
82+
cir.setReturnValue(ActionResult.SUCCESS);
8383
} else {
8484
cir.setReturnValue(ActionResult.CONSUME);
8585
}

src/main/java/net/just_s/sframes/mixin/GlowingItemFrameMixin.java

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,8 @@
11
package net.just_s.sframes.mixin;
22

33
import net.just_s.sframes.SFramesMod;
4-
import net.minecraft.component.ComponentHolder;
54
import net.minecraft.component.DataComponentTypes;
6-
import net.minecraft.component.EnchantmentEffectComponentTypes;
7-
import net.minecraft.component.type.ItemEnchantmentsComponent;
85
import net.minecraft.component.type.NbtComponent;
9-
import net.minecraft.enchantment.Enchantment;
10-
import net.minecraft.enchantment.EnchantmentHelper;
11-
import net.minecraft.enchantment.Enchantments;
126
import net.minecraft.entity.decoration.GlowItemFrameEntity;
137
import net.minecraft.entity.decoration.ItemFrameEntity;
148
import net.minecraft.item.ItemStack;

src/main/java/net/just_s/sframes/mixin/GlowingTickMixin.java

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,9 @@
11
package net.just_s.sframes.mixin;
22

3-
import io.netty.buffer.Unpooled;
43
import net.just_s.sframes.SFramesMod;
54
import net.minecraft.entity.Entity;
6-
import net.minecraft.entity.decoration.AbstractDecorationEntity;
75
import net.minecraft.entity.decoration.BlockAttachedEntity;
86
import net.minecraft.entity.decoration.ItemFrameEntity;
9-
import net.minecraft.entity.effect.StatusEffectInstance;
10-
import net.minecraft.entity.effect.StatusEffects;
11-
import net.minecraft.network.PacketByteBuf;
12-
import net.minecraft.network.packet.s2c.play.EntityStatusEffectS2CPacket;
13-
import net.minecraft.network.packet.s2c.play.RemoveEntityStatusEffectS2CPacket;
147
import net.minecraft.network.packet.s2c.play.TeamS2CPacket;
158
import net.minecraft.scoreboard.Team;
169
import net.minecraft.server.network.ServerPlayerEntity;

src/main/java/net/just_s/sframes/mixin/ItemFrameMixin.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,25 @@
11
package net.just_s.sframes.mixin;
22

33
import net.just_s.sframes.SFramesMod;
4-
import net.minecraft.component.ComponentType;
54
import net.minecraft.component.DataComponentTypes;
65
import net.minecraft.component.type.NbtComponent;
7-
import net.minecraft.enchantment.Enchantments;
86
import net.minecraft.entity.Entity;
97
import net.minecraft.entity.EquipmentSlot;
108
import net.minecraft.entity.damage.DamageSource;
119
import net.minecraft.entity.decoration.ItemFrameEntity;
12-
import net.minecraft.entity.effect.StatusEffects;
1310
import net.minecraft.entity.player.PlayerEntity;
1411
import net.minecraft.item.ItemStack;
1512
import net.minecraft.nbt.NbtCompound;
1613
import net.minecraft.network.packet.s2c.play.ParticleS2CPacket;
17-
import net.minecraft.network.packet.s2c.play.RemoveEntityStatusEffectS2CPacket;
1814
import net.minecraft.particle.ParticleTypes;
1915
import net.minecraft.scoreboard.Team;
2016
import net.minecraft.server.network.ServerPlayerEntity;
17+
import net.minecraft.server.world.ServerWorld;
2118
import net.minecraft.sound.SoundCategory;
2219
import net.minecraft.sound.SoundEvents;
2320
import net.minecraft.text.Text;
2421
import net.minecraft.util.ActionResult;
2522
import net.minecraft.util.Hand;
26-
import net.minecraft.util.math.random.Random;
2723
import org.spongepowered.asm.mixin.Mixin;
2824
import org.spongepowered.asm.mixin.injection.At;
2925
import org.spongepowered.asm.mixin.injection.Inject;
@@ -32,13 +28,14 @@
3228

3329
import java.util.List;
3430

31+
import static net.just_s.sframes.SFramesMod.LOGGER;
3532
import static net.just_s.sframes.SFramesMod.generateGlowPacket;
3633

3734

3835
@Mixin(ItemFrameEntity.class)
3936
public class ItemFrameMixin {
4037
@Inject(at = @At("HEAD"), method = "damage", cancellable = true)
41-
private void injectDamage(DamageSource source, float amount, CallbackInfoReturnable<Boolean> cir) {
38+
private void injectDamage(ServerWorld world, DamageSource source, float amount, CallbackInfoReturnable<Boolean> cir) {
4239
try {
4340
if (source.getAttacker().isPlayer()) {
4441
PlayerEntity player = (PlayerEntity) source.getAttacker();
@@ -66,6 +63,7 @@ private void injectDamage(DamageSource source, float amount, CallbackInfoReturna
6663
SFramesMod.sendPackets((ServerPlayerEntity) player, new ParticleS2CPacket(
6764
ParticleTypes.CLOUD,
6865
false,
66+
false,
6967
frame.getX(),
7068
frame.getY(),
7169
frame.getZ(),
@@ -88,6 +86,7 @@ private void injectDamage(DamageSource source, float amount, CallbackInfoReturna
8886
cir.setReturnValue(true);
8987
cir.cancel();
9088
}
89+
LOGGER.info(itemStackInHand.getItem().getTranslationKey().equals("item.minecraft.leather") + " | " + frame.isInvisible() + " | " + SFramesMod.shouldGlow(frame) + " | " + SFramesMod.CONFIG.fixWithLeather);
9190
if (itemStackInHand.getItem().getTranslationKey().equals("item.minecraft.leather") && (frame.isInvisible() || SFramesMod.shouldGlow(frame)) && SFramesMod.CONFIG.fixWithLeather) {
9291
if (!player.isCreative()) {itemStackInHand.decrement(1);}
9392
frame.getWorld().playSound(
@@ -111,6 +110,7 @@ private void injectDamage(DamageSource source, float amount, CallbackInfoReturna
111110
SFramesMod.sendPackets((ServerPlayerEntity) player, new ParticleS2CPacket(
112111
ParticleTypes.CRIT,
113112
false,
113+
false,
114114
frame.getX(),
115115
frame.getY(),
116116
frame.getZ(),
@@ -151,7 +151,7 @@ private void injectInteract(PlayerEntity player, Hand hand, CallbackInfoReturnab
151151
}
152152

153153
@Inject(at = @At("RETURN"), method = "dropHeldStack")
154-
private void injectDropItem(Entity entity, boolean alwaysDrop, CallbackInfo ci) {
154+
private void injectDropItem(ServerWorld world, Entity entity, boolean dropSelf, CallbackInfo ci) {
155155
updateState();
156156
}
157157

src/main/java/net/just_s/sframes/mixin/ServerStartMixin.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,11 @@
55
import net.minecraft.server.dedicated.MinecraftDedicatedServer;
66
import net.minecraft.util.Formatting;
77
import net.minecraft.world.World;
8+
import org.slf4j.Logger;
9+
import org.spongepowered.asm.mixin.Final;
810
import org.spongepowered.asm.mixin.Mixin;
11+
import org.spongepowered.asm.mixin.Shadow;
12+
import org.spongepowered.asm.mixin.Unique;
913
import org.spongepowered.asm.mixin.injection.At;
1014
import org.spongepowered.asm.mixin.injection.Inject;
1115
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
@@ -15,19 +19,24 @@
1519

1620
@Mixin(MinecraftDedicatedServer.class)
1721
public class ServerStartMixin {
22+
@Shadow @Final private static Logger LOGGER;
23+
1824
@Inject(at = @At("TAIL"), method = "setupServer")
1925
private void inject(CallbackInfoReturnable<Boolean> cir) {
2026
MinecraftDedicatedServer server = ((MinecraftDedicatedServer)(Object)this);
2127
World world = server.getWorlds().iterator().next();
2228

2329
try {
2430
teamSettings(Objects.requireNonNull(world.getScoreboard().getTeam("SeamlessFrames")));
31+
LOGGER.info("SeamlessFrames scoreboard loaded successfully");
2532
} catch (NullPointerException e) {
33+
LOGGER.info("SeamlessFrames does not exist, setting up...");
2634
Team team = world.getScoreboard().addTeam("SeamlessFrames");
2735
teamSettings(team);
2836
}
2937
}
3038

39+
@Unique
3140
private void teamSettings(Team team) {
3241
team.setColor(Formatting.byName(SFramesMod.CONFIG.outlineColor));
3342
}

src/main/resources/fabric.mod.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
"depends": {
3030
"fabricloader": ">=0.14.8",
3131
"fabric": "*",
32-
"minecraft": ">=1.21",
32+
"minecraft": ">=1.21.4",
3333
"java": ">=21"
3434
}
3535
}

0 commit comments

Comments
 (0)