Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package ch.njol.skript.conditions;

import ch.njol.skript.classes.Changer.ChangeMode;
import ch.njol.skript.conditions.base.PropertyCondition;
import ch.njol.skript.doc.Description;
import ch.njol.skript.doc.Example;
Expand All @@ -26,6 +27,18 @@ public boolean check(LivingEntity entity) {
return entity instanceof Allay allay ? allay.canDuplicate() : false;
}

@Override
public boolean acceptChange(ChangeMode mode) {
return mode == ChangeMode.SET;
}

@Override
protected void change(LivingEntity entity, boolean canDuplicate, ChangeMode mode) {
if (entity instanceof Allay allay) {
allay.setCanDuplicate(canDuplicate);
}
}

@Override
protected String getPropertyName() {
return "duplicate";
Expand Down
17 changes: 17 additions & 0 deletions src/main/java/ch/njol/skript/conditions/CondCanFly.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package ch.njol.skript.conditions;

import ch.njol.skript.classes.Changer.ChangeMode;
import org.bukkit.entity.Player;

import ch.njol.skript.conditions.base.PropertyCondition;
Expand All @@ -22,6 +23,22 @@ public class CondCanFly extends PropertyCondition<Player> {
public boolean check(Player player) {
return player.getAllowFlight();
}

@Override
public boolean acceptChange(ChangeMode mode) {
return mode == ChangeMode.SET || mode == ChangeMode.RESET;
}

@Override
protected void change(Player player, boolean allowFlight, ChangeMode mode) {
if (mode == ChangeMode.RESET) {
allowFlight = switch (player.getGameMode()) {
case CREATIVE, SPECTATOR -> true;
default -> false;
};
}
player.setAllowFlight(allowFlight);
}

@Override
protected PropertyType getPropertyType() {
Expand Down
11 changes: 11 additions & 0 deletions src/main/java/ch/njol/skript/conditions/CondCanPickUpItems.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package ch.njol.skript.conditions;

import ch.njol.skript.classes.Changer.ChangeMode;
import ch.njol.skript.conditions.base.PropertyCondition;
import ch.njol.skript.doc.Description;
import ch.njol.skript.doc.Example;
Expand Down Expand Up @@ -40,4 +41,14 @@ protected String getPropertyName() {
return "pick up items";
}

@Override
public boolean acceptChange(ChangeMode mode) {
return mode == ChangeMode.SET;
}

@Override
public void change(LivingEntity livingEntity, boolean canPickUpItems, ChangeMode mode) {
livingEntity.setCanPickupItems(canPickUpItems);
}

}
29 changes: 29 additions & 0 deletions src/main/java/ch/njol/skript/conditions/CondCanSee.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package ch.njol.skript.conditions;

import ch.njol.skript.Skript;
import ch.njol.skript.classes.Changer.ChangeMode;
import ch.njol.skript.conditions.base.PropertyCondition;
import ch.njol.skript.conditions.base.PropertyCondition.PropertyType;
import ch.njol.skript.doc.*;
Expand All @@ -11,6 +12,7 @@
import org.bukkit.entity.Entity;
import org.bukkit.entity.Player;
import org.bukkit.event.Event;
import org.bukkit.plugin.Plugin;
import org.jetbrains.annotations.Nullable;

@Name("Can See")
Expand Down Expand Up @@ -62,6 +64,33 @@ public boolean check(Event event) {
), isNegated());
}

@Override
public boolean acceptChange(ChangeMode mode) {
return mode == ChangeMode.SET || mode == ChangeMode.RESET;
}

@Override
public void change(Event event, boolean canSee, ChangeMode mode) {
if (mode == ChangeMode.RESET) {
canSee = true;
}
Plugin plugin = Skript.getInstance();
Entity[] entities = this.entities.getArray(event);
if (canSee) {
for (Player viewer : viewers.getArray(event)) {
for (Entity entity : entities) {
viewer.showEntity(plugin, entity);
}
}
} else {
for (Player viewer : viewers.getArray(event)) {
for (Entity entity : entities) {
viewer.hideEntity(plugin, entity);
}
}
}
}

@Override
public String toString(@Nullable Event event, boolean debug) {
return PropertyCondition.toString(this, PropertyType.CAN, event, debug, viewers,
Expand Down
13 changes: 13 additions & 0 deletions src/main/java/ch/njol/skript/conditions/CondCancelled.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package ch.njol.skript.conditions;

import ch.njol.skript.Skript;
import ch.njol.skript.classes.Changer.ChangeMode;
import ch.njol.skript.doc.Description;
import ch.njol.skript.doc.Example;
import ch.njol.skript.doc.Name;
Expand Down Expand Up @@ -41,6 +42,18 @@ public boolean check(Event e) {
return (e instanceof Cancellable && ((Cancellable) e).isCancelled()) ^ isNegated();
}

@Override
public boolean acceptChange(ChangeMode mode) {
return mode == ChangeMode.SET;
}

@Override
public void change(Event event, boolean cancelled, ChangeMode mode) {
if (event instanceof Cancellable cancellable) {
cancellable.setCancelled(cancelled);
}
}

@Override
public String toString(@Nullable Event e, boolean debug) {
return isNegated() ? "event is not cancelled" : "event is cancelled";
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package ch.njol.skript.conditions;

import ch.njol.skript.Skript;
import ch.njol.skript.classes.Changer.ChangeMode;
import ch.njol.skript.doc.*;
import ch.njol.skript.lang.Condition;
import ch.njol.skript.lang.EventRestrictedSyntax;
Expand Down Expand Up @@ -50,6 +51,18 @@ public boolean check(Event event) {
return boostEvent.shouldConsume() == checkConsume;
}

@Override
public boolean acceptChange(ChangeMode mode) {
return mode == ChangeMode.SET;
}

@Override
public void change(Event event, boolean consume, ChangeMode mode) {
if (event instanceof PlayerElytraBoostEvent boostEvent) {
boostEvent.setShouldConsume(consume);
}
}

@Override
public String toString(@Nullable Event event, boolean debug) {
return "the boosting firework will " + (checkConsume ? "" : "not") + " be consumed";
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package ch.njol.skript.conditions;

import ch.njol.skript.Skript;
import ch.njol.skript.classes.Changer.ChangeMode;
import ch.njol.skript.conditions.base.PropertyCondition;
import ch.njol.skript.doc.*;
import org.bukkit.entity.Enderman;
Expand All @@ -27,6 +28,18 @@ public boolean check(LivingEntity entity) {
return false;
}

@Override
public boolean acceptChange(ChangeMode mode) {
return mode == ChangeMode.SET;
}

@Override
protected void change(LivingEntity entity, boolean hasBeenStaredAt, ChangeMode mode) {
if (entity instanceof Enderman enderman) {
enderman.setHasBeenStaredAt(hasBeenStaredAt);
}
}

@Override
protected String getPropertyName() {
return "stared at";
Expand Down
11 changes: 11 additions & 0 deletions src/main/java/ch/njol/skript/conditions/CondEntityUnload.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package ch.njol.skript.conditions;

import ch.njol.skript.classes.Changer.ChangeMode;
import ch.njol.skript.conditions.base.PropertyCondition;
import ch.njol.skript.doc.Description;
import ch.njol.skript.doc.Example;
Expand Down Expand Up @@ -29,6 +30,16 @@ public boolean check(LivingEntity entity) {
return entity.getRemoveWhenFarAway();
}

@Override
public boolean acceptChange(ChangeMode mode) {
return mode == ChangeMode.SET;
}

@Override
protected void change(LivingEntity entity, boolean remove, ChangeMode mode) {
entity.setRemoveWhenFarAway(remove);
}

@Override
protected String getPropertyName() {
return "despawn on chunk unload";
Expand Down
27 changes: 27 additions & 0 deletions src/main/java/ch/njol/skript/conditions/CondGlowingText.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import ch.njol.skript.Skript;
import ch.njol.skript.aliases.ItemType;
import ch.njol.skript.classes.Changer.ChangeMode;
import org.bukkit.block.Block;

import ch.njol.skript.conditions.base.PropertyCondition;
Expand Down Expand Up @@ -40,6 +41,32 @@ public boolean check(Object obj) {
return false;
}

@Override
public boolean acceptChange(ChangeMode mode) {
return mode == ChangeMode.SET || mode == ChangeMode.RESET;
}

@Override
protected void change(Object object, boolean glowing, ChangeMode mode) {
if (object instanceof Block block) {
BlockState state = block.getState();
if (state instanceof Sign sign) {
sign.setGlowingText(glowing);
sign.update();
}
} else if (object instanceof ItemType itemType) {
ItemMeta meta = itemType.getItemMeta();
if (meta instanceof BlockStateMeta blockStateMeta) {
BlockState state = blockStateMeta.getBlockState();
if (state instanceof Sign sign) {
sign.setGlowingText(glowing);
blockStateMeta.setBlockState(sign);
itemType.setItemMeta(meta);
}
}
}
}

@Override
protected PropertyType getPropertyType() {
return PropertyType.HAVE;
Expand Down
18 changes: 18 additions & 0 deletions src/main/java/ch/njol/skript/conditions/CondGoatHasHorns.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package ch.njol.skript.conditions;

import ch.njol.skript.classes.Changer.ChangeMode;
import ch.njol.skript.conditions.base.PropertyCondition;
import ch.njol.skript.doc.*;
import ch.njol.skript.effects.EffGoatHorns.GoatHorn;
Expand Down Expand Up @@ -57,6 +58,23 @@ public boolean check(LivingEntity entity) {
};
}

@Override
public boolean acceptChange(ChangeMode mode) {
return goatHorn != GoatHorn.ANY && mode == ChangeMode.SET;
}

@Override
protected void change(LivingEntity entity, boolean hasHorn, ChangeMode mode) {
if (entity instanceof Goat goat) {
if (goatHorn != GoatHorn.LEFT) {
goat.setRightHorn(hasHorn);
}
if (goatHorn != GoatHorn.RIGHT) {
goat.setLeftHorn(hasHorn);
}
}
}

@Override
protected String getPropertyName() {
return switch (goatHorn) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package ch.njol.skript.conditions;

import ch.njol.skript.classes.Changer.ChangeMode;
import org.bukkit.entity.Creeper;
import org.bukkit.entity.LivingEntity;

Expand All @@ -13,6 +14,7 @@
import ch.njol.skript.lang.Expression;
import ch.njol.skript.lang.SkriptParser.ParseResult;
import ch.njol.util.Kleenean;
import org.bukkit.event.Event;

@Name("Ignition Process")
@Description("Checks if a creeper is going to explode.")
Expand Down Expand Up @@ -46,6 +48,18 @@ public boolean check(LivingEntity entity) {
return entity instanceof Creeper creeper && creeper.isIgnited();
}

@Override
public boolean acceptChange(ChangeMode mode) {
return mode == ChangeMode.SET;
}

@Override
protected void change(LivingEntity entity, boolean ignited, ChangeMode mode) {
if (entity instanceof Creeper creeper) {
creeper.setIgnited(ignited);
}
}

@Override
protected String getPropertyName() {
return "going to explode";
Expand Down
22 changes: 22 additions & 0 deletions src/main/java/ch/njol/skript/conditions/CondIncendiary.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package ch.njol.skript.conditions;

import ch.njol.skript.classes.Changer.ChangeMode;
import org.bukkit.entity.Entity;
import org.bukkit.entity.Explosive;
import org.bukkit.event.Event;
Expand Down Expand Up @@ -65,6 +66,27 @@ public boolean check(Event e) {
return entities.check(e, entity -> entity instanceof Explosive && ((Explosive) entity).isIncendiary(), isNegated());
}

@Override
public boolean acceptChange(ChangeMode mode) {
return mode == ChangeMode.SET;
}

@Override
public void change(Event event, boolean isIncendiary, ChangeMode mode) {
if (isEvent) {
if (event instanceof ExplosionPrimeEvent explosionPrimeEvent) {
explosionPrimeEvent.setFire(isIncendiary);
}
return;
}

for (Entity entity : entities.getArray(event)) {
if (entity instanceof Explosive explosive) {
explosive.setIsIncendiary(isIncendiary);
}
}
}

@Override
public String toString(@Nullable Event e, boolean debug) {
if (isEvent)
Expand Down
Loading
Loading