Skip to content

Commit a3a68f4

Browse files
committed
feat: added new "rank_applies" condition
Similar to "rank_added", but doesn't require the rank to be explicitly added to the player, just that it currently applies
1 parent 9e814d0 commit a3a68f4

File tree

4 files changed

+27
-6
lines changed

4 files changed

+27
-6
lines changed

common/src/main/java/dev/ftb/mods/ftbranks/impl/FTBRanksAPIImpl.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ public static void worldSaved(ServerLevel event) {
6464
public static void registerConditions(RegisterConditionsEvent event) {
6565
event.register("always_active", (rank, json) -> AlwaysActiveCondition.INSTANCE);
6666
event.register("rank_added", RankAddedCondition::new);
67+
event.register("rank_applies", RankAppliesCondition::new);
6768

6869
event.register("not", NotCondition::new);
6970
event.register("or", OrCondition::new);

common/src/main/java/dev/ftb/mods/ftbranks/impl/condition/DimensionCondition.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,6 @@
88
import net.minecraft.server.level.ServerPlayer;
99
import net.minecraft.world.level.Level;
1010

11-
/**
12-
* @author LatvianModder
13-
*/
1411
public class DimensionCondition implements RankCondition {
1512
private final ResourceKey<Level> dimension;
1613

common/src/main/java/dev/ftb/mods/ftbranks/impl/condition/RankAddedCondition.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@
55
import dev.ftb.mods.ftbranks.api.RankCondition;
66
import net.minecraft.server.level.ServerPlayer;
77

8-
public final class RankAddedCondition implements RankCondition {
9-
private final Rank original;
10-
private final String id;
8+
public class RankAddedCondition implements RankCondition {
9+
protected final Rank original;
10+
protected final String id;
1111

1212
public RankAddedCondition(Rank r, SNBTCompoundTag tag) {
1313
original = r;
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package dev.ftb.mods.ftbranks.impl.condition;
2+
3+
import dev.ftb.mods.ftblibrary.snbt.SNBTCompoundTag;
4+
import dev.ftb.mods.ftbranks.api.Rank;
5+
import net.minecraft.server.level.ServerPlayer;
6+
7+
public class RankAppliesCondition extends RankAddedCondition {
8+
public RankAppliesCondition(Rank r, SNBTCompoundTag tag) {
9+
super(r, tag);
10+
}
11+
12+
@Override
13+
public String getType() {
14+
return "rank_applies";
15+
}
16+
17+
@Override
18+
public boolean isRankActive(ServerPlayer player) {
19+
return original.getManager().getRank(id)
20+
.map(rank -> rank != original && rank.isActive(player))
21+
.orElse(false);
22+
}
23+
}

0 commit comments

Comments
 (0)