Skip to content

Commit 5215279

Browse files
committed
Some fixes
1 parent c9e187c commit 5215279

File tree

6 files changed

+89
-82
lines changed

6 files changed

+89
-82
lines changed

src/main/resources/neoforge-1.20.4/generator.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@ base_templates:
8787
condition_any:
8888
- "${w.getGElementsOfType('biome')?filter(e -> e.spawnBiome || e.spawnInCaves || e.spawnBiomeNether)?size != 0}"
8989
- "${w.hasElementsOfType('feature')}"
90+
- "${w.hasElementsOfType('procedure')}"
9091
- template: elementinits/javamodels.java.ftl
9192
name: "@SRCROOT/@BASEPACKAGEPATH/init/@JavaModNameModels.java"
9293
condition: hasJavaModels()

src/main/resources/neoforge-1.20.4/procedures/entity_add_modifier.java.ftl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<#assign attr = generator.map(field$attribute, "attributes")>
22
if (${input$entity} instanceof LivingEntity _entity) {
33
AttributeModifier modifier = new AttributeModifier(${'"' + modid + ':' + field$name + '"'}, ${input$value}, AttributeModifier.Operation.${field$operation?replace("ADD_VALUE", "ADDITION")?replace("ADD_MULTIPLIED_BASE", "MULTIPLY_BASE")?replace("ADD_MULTIPLIED_TOTAL", "MULTIPLY_TOTAL")});
4-
if (_entity.getAttribute(${attr}).getModifiers().stream().noneMatch((e) -> e.name().equals(modifier.name()))) {
4+
if (_entity.getAttribute(${attr}).getModifiers().stream().noneMatch((e) -> e.name.equals(modifier.name))) {
55
<#if field$permanent == "TRUE">
66
_entity.getAttribute(${attr}).addPermanentModifier(modifier);
77
<#else>
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
(${input$entity} instanceof LivingEntity _livingEntity${cbi} && _livingEntity${cbi}.getAttribute(${generator.map(field$attribute, "attributes")})
2-
.getModifiers().stream().anyMatch((e) -> e.name().equals(${'"' + modid + ':' + field$name + '"'})))
2+
.getModifiers().stream().anyMatch((e) -> e.name.equals(${'"' + modid + ':' + field$name + '"'})))
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
if (${input$entity} instanceof LivingEntity _entity) {
22
_entity.getAttribute(${generator.map(field$attribute, "attributes")}).getModifiers().forEach((_attribute) -> {
3-
if(_attribute.name().equals(${'"' + modid + ':' + field$name + '"'})) _entity.getAttribute(${generator.map(field$attribute, "attributes")}).removeModifier(_attribute);
3+
if(_attribute.name.equals(${'"' + modid + ':' + field$name + '"'})) _entity.getAttribute(${generator.map(field$attribute, "attributes")}).removeModifier(_attribute);
44
});
55
}

src/main/resources/neoforge-1.20.4/templates/modbase/accesstransformer.cfg.ftl

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,5 +13,9 @@ public net.minecraft.world.level.levelgen.feature.ScatteredOreFeature <init>(Lco
1313
public-f net.minecraft.world.level.levelgen.feature.TreeFeature place(Lnet/minecraft/world/level/levelgen/feature/FeaturePlaceContext;)Z
1414
</#if>
1515

16+
<#if w.hasElementsOfType("procedure")>
17+
public net.minecraft.world.entity.ai.attributes.AttributeModifier name # name
18+
</#if>
19+
1620
# Start of user code block custom ATs
1721
# End of user code block custom ATs

src/main/resources/neoforge-1.20.4/templates/modbase/variableslist.java.ftl

Lines changed: 81 additions & 79 deletions
Original file line numberDiff line numberDiff line change
@@ -32,82 +32,84 @@ import net.minecraft.nbt.Tag;
3232
}
3333

3434
<#if w.hasVariablesOfScope("PLAYER_LIFETIME") || w.hasVariablesOfScope("PLAYER_PERSISTENT")>
35-
@SubscribeEvent public static void onPlayerLoggedInSyncPlayerVariables(PlayerEvent.PlayerLoggedInEvent event) {
36-
if (event.getEntity() instanceof ServerPlayer player)
37-
PacketDistributor.PLAYER.with(player).send(new PlayerVariablesSyncMessage(player.getData(PLAYER_VARIABLES)));
38-
}
39-
40-
@SubscribeEvent public static void onPlayerRespawnedSyncPlayerVariables(PlayerEvent.PlayerRespawnEvent event) {
41-
if (event.getEntity() instanceof ServerPlayer player)
42-
PacketDistributor.PLAYER.with(player).send(new PlayerVariablesSyncMessage(player.getData(PLAYER_VARIABLES)));
43-
}
44-
45-
@SubscribeEvent public static void onPlayerChangedDimensionSyncPlayerVariables(PlayerEvent.PlayerChangedDimensionEvent event) {
46-
if (event.getEntity() instanceof ServerPlayer player)
47-
PacketDistributor.PLAYER.with(player).send(new PlayerVariablesSyncMessage(player.getData(PLAYER_VARIABLES)));
48-
}
49-
50-
@SubscribeEvent public static void onPlayerTickUpdateSyncPlayerVariables(TickEvent.PlayerTickEvent event) {
51-
if (event.phase == TickEvent.Phase.END && event.player instanceof ServerPlayer player && player.getData(PLAYER_VARIABLES)._syncDirty) {
52-
PacketDistributor.PLAYER.with(player).send(new PlayerVariablesSyncMessage(player.getData(PLAYER_VARIABLES)));
53-
player.getData(PLAYER_VARIABLES)._syncDirty = false;
54-
}
55-
}
56-
57-
@SubscribeEvent public static void clonePlayer(PlayerEvent.Clone event) {
58-
PlayerVariables original = event.getOriginal().getData(PLAYER_VARIABLES);
59-
PlayerVariables clone = new PlayerVariables();
60-
<#list variables as var>
61-
<#if var.getScope().name() == "PLAYER_PERSISTENT">
62-
clone.${var.getName()} = original.${var.getName()};
63-
</#if>
64-
</#list>
65-
if(!event.isWasDeath()) {
66-
<#list variables as var>
67-
<#if var.getScope().name() == "PLAYER_LIFETIME">
68-
clone.${var.getName()} = original.${var.getName()};
69-
</#if>
70-
</#list>
71-
}
72-
event.getEntity().setData(PLAYER_VARIABLES, clone);
73-
}
74-
</#if>
75-
76-
<#if w.hasVariablesOfScope("GLOBAL_WORLD") || w.hasVariablesOfScope("GLOBAL_MAP")>
77-
@SubscribeEvent public static void onPlayerLoggedIn(PlayerEvent.PlayerLoggedInEvent event) {
78-
if (event.getEntity() instanceof ServerPlayer player) {
79-
SavedData mapdata = MapVariables.get(event.getEntity().level());
80-
SavedData worlddata = WorldVariables.get(event.getEntity().level());
81-
if(mapdata != null)
82-
PacketDistributor.PLAYER.with(player).send(new SavedDataSyncMessage(0, mapdata));
83-
if(worlddata != null)
84-
PacketDistributor.PLAYER.with(player).send(new SavedDataSyncMessage(1, worlddata));
85-
}
86-
}
87-
88-
@SubscribeEvent public static void onPlayerChangedDimension(PlayerEvent.PlayerChangedDimensionEvent event) {
89-
if (event.getEntity() instanceof ServerPlayer player) {
90-
SavedData worlddata = WorldVariables.get(event.getEntity().level());
91-
if(worlddata != null)
92-
PacketDistributor.PLAYER.with(player).send(new SavedDataSyncMessage(1, worlddata));
93-
}
94-
}
95-
96-
@SubscribeEvent public static void onWorldTick(TickEvent.LevelTickEvent event) {
97-
if (event.phase == TickEvent.Phase.END && event.level instanceof ServerLevel level) {
98-
WorldVariables worldVariables = WorldVariables.get(level);
99-
if (worldVariables._syncDirty) {
100-
PacketDistributor.DIMENSION.with(level.dimension()).send(new SavedDataSyncMessage(1, worldVariables));
101-
worldVariables._syncDirty = false;
102-
}
103-
104-
MapVariables mapVariables = MapVariables.get(level);
105-
if (mapVariables._syncDirty) {
106-
PacketDistributor.ALL.noArg().send(new SavedDataSyncMessage(0, mapVariables));
107-
mapVariables._syncDirty = false;
108-
}
109-
}
110-
}
35+
@Mod.EventBusSubscriber public static class EventBusVariableHandlers {
36+
@SubscribeEvent public static void onPlayerLoggedInSyncPlayerVariables(PlayerEvent.PlayerLoggedInEvent event) {
37+
if (event.getEntity() instanceof ServerPlayer player)
38+
PacketDistributor.PLAYER.with(player).send(new PlayerVariablesSyncMessage(player.getData(PLAYER_VARIABLES)));
39+
}
40+
41+
@SubscribeEvent public static void onPlayerRespawnedSyncPlayerVariables(PlayerEvent.PlayerRespawnEvent event) {
42+
if (event.getEntity() instanceof ServerPlayer player)
43+
PacketDistributor.PLAYER.with(player).send(new PlayerVariablesSyncMessage(player.getData(PLAYER_VARIABLES)));
44+
}
45+
46+
@SubscribeEvent public static void onPlayerChangedDimensionSyncPlayerVariables(PlayerEvent.PlayerChangedDimensionEvent event) {
47+
if (event.getEntity() instanceof ServerPlayer player)
48+
PacketDistributor.PLAYER.with(player).send(new PlayerVariablesSyncMessage(player.getData(PLAYER_VARIABLES)));
49+
}
50+
51+
@SubscribeEvent public static void onPlayerTickUpdateSyncPlayerVariables(TickEvent.PlayerTickEvent event) {
52+
if (event.phase == TickEvent.Phase.END && event.player instanceof ServerPlayer player && player.getData(PLAYER_VARIABLES)._syncDirty) {
53+
PacketDistributor.PLAYER.with(player).send(new PlayerVariablesSyncMessage(player.getData(PLAYER_VARIABLES)));
54+
player.getData(PLAYER_VARIABLES)._syncDirty = false;
55+
}
56+
}
57+
58+
@SubscribeEvent public static void clonePlayer(PlayerEvent.Clone event) {
59+
PlayerVariables original = event.getOriginal().getData(PLAYER_VARIABLES);
60+
PlayerVariables clone = new PlayerVariables();
61+
<#list variables as var>
62+
<#if var.getScope().name() == "PLAYER_PERSISTENT">
63+
clone.${var.getName()} = original.${var.getName()};
64+
</#if>
65+
</#list>
66+
if(!event.isWasDeath()) {
67+
<#list variables as var>
68+
<#if var.getScope().name() == "PLAYER_LIFETIME">
69+
clone.${var.getName()} = original.${var.getName()};
70+
</#if>
71+
</#list>
72+
}
73+
event.getEntity().setData(PLAYER_VARIABLES, clone);
74+
}
75+
</#if>
76+
77+
<#if w.hasVariablesOfScope("GLOBAL_WORLD") || w.hasVariablesOfScope("GLOBAL_MAP")>
78+
@SubscribeEvent public static void onPlayerLoggedIn(PlayerEvent.PlayerLoggedInEvent event) {
79+
if (event.getEntity() instanceof ServerPlayer player) {
80+
SavedData mapdata = MapVariables.get(event.getEntity().level());
81+
SavedData worlddata = WorldVariables.get(event.getEntity().level());
82+
if(mapdata != null)
83+
PacketDistributor.PLAYER.with(player).send(new SavedDataSyncMessage(0, mapdata));
84+
if(worlddata != null)
85+
PacketDistributor.PLAYER.with(player).send(new SavedDataSyncMessage(1, worlddata));
86+
}
87+
}
88+
89+
@SubscribeEvent public static void onPlayerChangedDimension(PlayerEvent.PlayerChangedDimensionEvent event) {
90+
if (event.getEntity() instanceof ServerPlayer player) {
91+
SavedData worlddata = WorldVariables.get(event.getEntity().level());
92+
if(worlddata != null)
93+
PacketDistributor.PLAYER.with(player).send(new SavedDataSyncMessage(1, worlddata));
94+
}
95+
}
96+
97+
@SubscribeEvent public static void onWorldTick(TickEvent.LevelTickEvent event) {
98+
if (event.phase == TickEvent.Phase.END && event.level instanceof ServerLevel level) {
99+
WorldVariables worldVariables = WorldVariables.get(level);
100+
if (worldVariables._syncDirty) {
101+
PacketDistributor.DIMENSION.with(level.dimension()).send(new SavedDataSyncMessage(1, worldVariables));
102+
worldVariables._syncDirty = false;
103+
}
104+
105+
MapVariables mapVariables = MapVariables.get(level);
106+
if (mapVariables._syncDirty) {
107+
PacketDistributor.ALL.noArg().send(new SavedDataSyncMessage(0, mapVariables));
108+
mapVariables._syncDirty = false;
109+
}
110+
}
111+
}
112+
}
111113
</#if>
112114

113115
<#if w.hasVariablesOfScope("GLOBAL_WORLD") || w.hasVariablesOfScope("GLOBAL_MAP")>
@@ -236,8 +238,8 @@ import net.minecraft.nbt.Tag;
236238
data = dataType == 0 ? new MapVariables() : new WorldVariables();
237239
if(data instanceof MapVariables mapVariables)
238240
mapVariables.read(nbt);
239-
else if(data instanceof WorldVariables worldVariables)
240-
worldVariables.read(nbt);
241+
else if(data instanceof WorldVariables worldVariables)
242+
worldVariables.read(nbt);
241243
}
242244

243245
this.dataType = dataType;
@@ -332,7 +334,7 @@ import net.minecraft.nbt.Tag;
332334
if (context.flow() == PacketFlow.CLIENTBOUND && message.data != null) {
333335
context.workHandler().submitAsync(() ->
334336
<#-- If we use setData here, we may get unwanted references to old data instance -->
335-
context.player().get().getData(PLAYER_VARIABLES).deserializeNBT(message.data.serializeNBT())
337+
Minecraft.getInstance().player.getData(PLAYER_VARIABLES).deserializeNBT(message.data.serializeNBT())
336338
).exceptionally(e -> {
337339
context.packetHandler().disconnect(Component.literal(e.getMessage()));
338340
return null;

0 commit comments

Comments
 (0)