• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

CyclopsMC / IntegratedDynamics / 20210191346

14 Dec 2025 03:32PM UTC coverage: 19.514% (-33.5%) from 53.061%
20210191346

push

github

rubensworks
Remove deprecations

663 of 8728 branches covered (7.6%)

Branch coverage included in aggregate %.

6786 of 29445 relevant lines covered (23.05%)

1.09 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

32.14
/src/main/java/org/cyclops/integrateddynamics/advancement/criterion/VariableCreatedTrigger.java
1
package org.cyclops.integrateddynamics.advancement.criterion;
2

3
import com.mojang.serialization.Codec;
4
import com.mojang.serialization.codecs.RecordCodecBuilder;
5
import net.minecraft.advancements.critereon.ContextAwarePredicate;
6
import net.minecraft.advancements.critereon.EntityPredicate;
7
import net.minecraft.advancements.critereon.SimpleCriterionTrigger;
8
import net.minecraft.core.registries.BuiltInRegistries;
9
import net.minecraft.server.level.ServerPlayer;
10
import net.minecraft.world.level.block.Block;
11
import net.neoforged.bus.api.SubscribeEvent;
12
import net.neoforged.neoforge.common.NeoForge;
13
import org.cyclops.cyclopscore.advancement.criterion.ICriterionInstanceTestable;
14
import org.cyclops.integrateddynamics.api.advancement.criterion.VariableFacadePredicate;
15
import org.cyclops.integrateddynamics.core.helper.Codecs;
16
import org.cyclops.integrateddynamics.core.logicprogrammer.event.LogicProgrammerVariableFacadeCreatedEvent;
17

18
import java.util.Optional;
19

20
/**
21
 * Triggers when a variable is created.
22
 * @author rubensworks
23
 */
24
public class VariableCreatedTrigger extends SimpleCriterionTrigger<VariableCreatedTrigger.Instance> {
25

26
    public static final Codec<VariableCreatedTrigger.Instance> CODEC = RecordCodecBuilder.create(
4✔
27
            p_311401_ -> p_311401_.group(
7✔
28
                            EntityPredicate.ADVANCEMENT_CODEC.optionalFieldOf("player").forGetter(VariableCreatedTrigger.Instance::player),
4✔
29
                            BuiltInRegistries.BLOCK.byNameCodec().optionalFieldOf("block").forGetter(VariableCreatedTrigger.Instance::block),
7✔
30
                            Codecs.VARIABLE_FACADE.optionalFieldOf("variable_facade").forGetter(VariableCreatedTrigger.Instance::variableFacadePredicate)
3✔
31
                    )
32
                    .apply(p_311401_, VariableCreatedTrigger.Instance::new)
1✔
33
    );
34

35
    public VariableCreatedTrigger() {
2✔
36
        NeoForge.EVENT_BUS.register(this);
3✔
37
    }
1✔
38

39
    @Override
40
    public Codec<Instance> codec() {
41
        return CODEC;
×
42
    }
43

44
    public void test(ServerPlayer player, LogicProgrammerVariableFacadeCreatedEvent event) {
45
        this.trigger(player, (instance) -> instance.test(player, event));
×
46
    }
×
47

48
    @SubscribeEvent
49
    public void onEvent(LogicProgrammerVariableFacadeCreatedEvent event) {
50
        if (event.getPlayer() != null && event.getPlayer() instanceof ServerPlayer) {
×
51
            this.test((ServerPlayer) event.getPlayer(), event);
×
52
        }
53
    }
×
54

55
    public static record Instance(
×
56
            Optional<ContextAwarePredicate> player,
57
            Optional<Block> block,
58
            Optional<VariableFacadePredicate> variableFacadePredicate
59
    ) implements SimpleCriterionTrigger.SimpleInstance, ICriterionInstanceTestable<LogicProgrammerVariableFacadeCreatedEvent> {
60
        @Override
61
        public boolean test(ServerPlayer player, LogicProgrammerVariableFacadeCreatedEvent event) {
62
            return (block.isEmpty() || event.getBlockState().getBlock() == block.get())
×
63
                    && variableFacadePredicate.orElse(VariableFacadePredicate.ANY).test(event.getVariableFacade());
×
64
        }
65
    }
66

67
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc