Skip to content

Commit

Permalink
add InteractionInteractFlag
Browse files Browse the repository at this point in the history
  • Loading branch information
Tamikaschu committed Nov 8, 2024
1 parent 7218e98 commit 00f8819
Show file tree
Hide file tree
Showing 6 changed files with 33 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@
import com.plotsquared.core.plot.flag.implementations.HangingBreakFlag;
import com.plotsquared.core.plot.flag.implementations.HangingPlaceFlag;
import com.plotsquared.core.plot.flag.implementations.HostileInteractFlag;
import com.plotsquared.core.plot.flag.implementations.InteractionInteractFlag;
import com.plotsquared.core.plot.flag.implementations.ItemDropFlag;
import com.plotsquared.core.plot.flag.implementations.KeepInventoryFlag;
import com.plotsquared.core.plot.flag.implementations.LecternReadBookFlag;
Expand Down Expand Up @@ -1737,6 +1738,11 @@ public void onPlayerInteractEntity(PlayerInteractEntityEvent event) {
return;
}

if (EntityCategories.INTERACTION.contains(entityType) && flagContainer
.getFlag(InteractionInteractFlag.class).getValue()) {
return;
}

if (EntityCategories.VILLAGER.contains(entityType) && flagContainer
.getFlag(VillagerInteractFlag.class).getValue()) {
return;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,7 @@
import org.bukkit.entity.Firework;
import org.bukkit.entity.Ghast;
import org.bukkit.entity.Hanging;
import org.bukkit.entity.Interaction;
import org.bukkit.entity.IronGolem;
import org.bukkit.entity.Item;
import org.bukkit.entity.LightningStrike;
Expand Down Expand Up @@ -470,6 +471,7 @@ public void setFoodLevel(final @NonNull PlotPlayer<?> player, @NonNegative final
allowedInterfaces.add(Firework.class);
}
case "player" -> allowedInterfaces.add(Player.class);
case "interaction" -> allowedInterfaces.add(Interaction.class);
default -> LOGGER.error("Unknown entity category requested: {}", category);
}
final Set<com.sk89q.worldedit.world.entity.EntityType> types = new HashSet<>();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@
import com.plotsquared.core.plot.flag.implementations.IceFormFlag;
import com.plotsquared.core.plot.flag.implementations.IceMeltFlag;
import com.plotsquared.core.plot.flag.implementations.InstabreakFlag;
import com.plotsquared.core.plot.flag.implementations.InteractionInteractFlag;
import com.plotsquared.core.plot.flag.implementations.InvincibleFlag;
import com.plotsquared.core.plot.flag.implementations.ItemDropFlag;
import com.plotsquared.core.plot.flag.implementations.KeepFlag;
Expand Down Expand Up @@ -172,6 +173,7 @@ private GlobalFlagContainer() {
this.addFlag(IceFormFlag.ICE_FORM_FALSE);
this.addFlag(IceMeltFlag.ICE_MELT_FALSE);
this.addFlag(InstabreakFlag.INSTABREAK_FALSE);
this.addFlag(InteractionInteractFlag.INTERACTION_INTERACT_FALSE);
this.addFlag(InvincibleFlag.INVINCIBLE_FALSE);
this.addFlag(ItemDropFlag.ITEM_DROP_TRUE);
this.addFlag(KeepInventoryFlag.KEEP_INVENTORY_FALSE);
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package com.plotsquared.core.plot.flag.implementations;

import com.plotsquared.core.configuration.caption.TranslatableCaption;
import com.plotsquared.core.plot.flag.types.BooleanFlag;
import org.checkerframework.checker.nullness.qual.NonNull;

public class InteractionInteractFlag extends BooleanFlag<InteractionInteractFlag> {

public static final InteractionInteractFlag INTERACTION_INTERACT_TRUE = new InteractionInteractFlag(true);
public static final InteractionInteractFlag INTERACTION_INTERACT_FALSE = new InteractionInteractFlag(false);

private InteractionInteractFlag(boolean value) {
super(value, TranslatableCaption.of("flags.flag_description_interaction_interact"));
}

@Override
protected InteractionInteractFlag flagOf(@NonNull Boolean value) {
return value ? INTERACTION_INTERACT_TRUE : INTERACTION_INTERACT_FALSE;
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ public class EntityCategories {
public static final EntityCategory PROJECTILE = register("projectile");
public static final EntityCategory OTHER = register("other");
public static final EntityCategory PLAYER = register("player");
public static final EntityCategory INTERACTION = register("interaction");

public static EntityCategory register(final String id) {
final EntityCategory entityCategory = new EntityCategory(PlotSquared.platform().worldUtil(), id);
Expand Down
1 change: 1 addition & 0 deletions Core/src/main/resources/lang/messages_en.json
Original file line number Diff line number Diff line change
Expand Up @@ -572,6 +572,7 @@
"flags.flag_description_ice_form": "<gray>Set to `true` to allow ice to form in the plot.</gray>",
"flags.flag_description_ice_melt": "<gray>Set to `false` to disable ice melting in the plot.</gray>",
"flags.flag_description_instabreak": "<gray>Set to `true` to allow blocks to be instantaneously broken in survival mode.</gray>",
"flags.flag_description_interaction_interact": "<gray>Set to `true` to allow guests to interact with interaction entities in the plot.</gray>",
"flags.flag_description_invincible": "<gray>Set to `true` to prevent players from taking damage inside the plot.</gray>",
"flags.flag_description_item_drop": "<gray>Set to `false` to prevent items from being dropped inside the plot.</gray>",
"flags.flag_description_kelp_grow": "<gray>Set to `false` to prevent kelp from growing in the plot.</gray>",
Expand Down

0 comments on commit 00f8819

Please sign in to comment.