forked from SteamWar/SteamWar
Add Projectile Stopper
This commit is contained in:
@@ -52,8 +52,9 @@ FLAG_ITEMS = Items
|
|||||||
FLAG_NO_GRAVITY = No Gravity
|
FLAG_NO_GRAVITY = No Gravity
|
||||||
FLAG_TESTBLOCK = Testblock
|
FLAG_TESTBLOCK = Testblock
|
||||||
FLAG_CHANGED = Changed
|
FLAG_CHANGED = Changed
|
||||||
FLAG_WINDCHARGE = Windcharge
|
FLAG_WINDCHARGE_INTERACT = Windcharge interaction
|
||||||
FLAG_WATER_DESTROY = Water Destroy
|
FLAG_WATER_DESTROY = Water Destroy
|
||||||
|
FLAG_PROJECTILE_STOPPER = Projectile Stopper
|
||||||
FLAG_WATER_DESTROY_ALLOW = §coff
|
FLAG_WATER_DESTROY_ALLOW = §coff
|
||||||
FLAG_WATER_DESTROY_DENY = §aon
|
FLAG_WATER_DESTROY_DENY = §aon
|
||||||
FLAG_FIRE_ALLOW = §con
|
FLAG_FIRE_ALLOW = §con
|
||||||
@@ -93,9 +94,10 @@ FLAG_TESTBLOCK_NORTH = §eNorth
|
|||||||
FLAG_TESTBLOCK_SOUTH = §eSouth
|
FLAG_TESTBLOCK_SOUTH = §eSouth
|
||||||
FLAG_CHANGED_NO_CHANGE = §cNo
|
FLAG_CHANGED_NO_CHANGE = §cNo
|
||||||
FLAG_CHANGED_HAS_CHANGE = §aYes
|
FLAG_CHANGED_HAS_CHANGE = §aYes
|
||||||
FLAG_WINDCHARGE_ALLOW = §aon
|
FLAG_WINDCHARGE_INTERACT_ALLOW = §aon
|
||||||
FLAG_WINDCHARGE_DENY = §coff
|
FLAG_WINDCHARGE_INTERACT_DENY = §coff
|
||||||
FLAG_WINDCHARGE_NO_INTERACT = §7no §8windcharge interact
|
FLAG_PROJECTILE_STOPPER_ENABLED = §aon
|
||||||
|
FLAG_PROJECTILE_STOPPER_DISABLED = §coff
|
||||||
# Region
|
# Region
|
||||||
REGION_TYPE_NORMAL = Normal
|
REGION_TYPE_NORMAL = Normal
|
||||||
REGION_TYPE_BUILD = Build area
|
REGION_TYPE_BUILD = Build area
|
||||||
@@ -831,7 +833,12 @@ REGION_TNT_OFF = §cTNT-Damage deactivated
|
|||||||
REGION_TNT_TB = §aTNT-Damage activated outside the building area
|
REGION_TNT_TB = §aTNT-Damage activated outside the building area
|
||||||
REGION_TNT_BUILD_DESTROY = §cAn explosion would have destroyed blocks in the building area
|
REGION_TNT_BUILD_DESTROY = §cAn explosion would have destroyed blocks in the building area
|
||||||
REGION_TNT_TB_DESTROY = §cAn explosion would have destroyed blocks in the testblock area
|
REGION_TNT_TB_DESTROY = §cAn explosion would have destroyed blocks in the testblock area
|
||||||
REGION_WINDCHARGE_HELP = §8/§ewindcharge §8[§7Mode§8] §8- §7Set WindCharge behaviour to a given mode
|
REGION_WINDCHARGE_INTERACT_HELP = §8/§ewindcharge §8- §7Toggle the Windcharge interaction
|
||||||
|
REGION_WINDCHARGE_INTERACT_ON = §aWindcharge interaction on
|
||||||
|
REGION_WINDCHARGE_INTERACT_OFF = §cWindcharge interaction off
|
||||||
|
REGION_PROJECTILE_STOPPER_HELP = §8/§eprojectilestopper §8- §7Toggle the Projectile stopper
|
||||||
|
REGION_PROJECTILE_STOPPER_ON = §aProjectile stopper enabled
|
||||||
|
REGION_PROJECTILE_STOPPER_OFF = §cProjectile stopper disabled
|
||||||
|
|
||||||
AFK_KICK_MESSAGE = §cNothing happened on this server for 15 minutes.
|
AFK_KICK_MESSAGE = §cNothing happened on this server for 15 minutes.
|
||||||
AFK_WARNING_MESSAGE = §cThis server will stop in one minute if you remain inactive
|
AFK_WARNING_MESSAGE = §cThis server will stop in one minute if you remain inactive
|
||||||
|
|||||||
@@ -55,6 +55,8 @@ FLAG_FREEZE_INACTIVE = §caus
|
|||||||
FLAG_PROTECT_ACTIVE = §aan
|
FLAG_PROTECT_ACTIVE = §aan
|
||||||
FLAG_PROTECT_INACTIVE = §caus
|
FLAG_PROTECT_INACTIVE = §caus
|
||||||
FLAG_WATER_DESTROY = Wasserschaden
|
FLAG_WATER_DESTROY = Wasserschaden
|
||||||
|
FLAG_PROJECTILE_STOPPER = Projektiel stopper
|
||||||
|
FLAG_WINDCHARGE_INTERACT = Windkugel interaktion
|
||||||
FLAG_WATER_DESTROY_ALLOW = §cerlaubt
|
FLAG_WATER_DESTROY_ALLOW = §cerlaubt
|
||||||
FLAG_WATER_DESTROY_DENY = §aaus
|
FLAG_WATER_DESTROY_DENY = §aaus
|
||||||
FLAG_TNT_ALLOW = §aan
|
FLAG_TNT_ALLOW = §aan
|
||||||
@@ -81,6 +83,10 @@ FLAG_COLOR_BROWN = §eBraun
|
|||||||
FLAG_COLOR_GREEN = §2Grün
|
FLAG_COLOR_GREEN = §2Grün
|
||||||
FLAG_COLOR_RED = §cRot
|
FLAG_COLOR_RED = §cRot
|
||||||
FLAG_COLOR_BLACK = §0Schwarz
|
FLAG_COLOR_BLACK = §0Schwarz
|
||||||
|
FLAG_WINDCHARGE_INTERACT_ALLOW = §aan
|
||||||
|
FLAG_WINDCHARGE_INTERACT_DENY = §caus
|
||||||
|
FLAG_PROJECTILE_STOPPER_ENABLED = §aan
|
||||||
|
FLAG_PROJECTILE_STOPPER_DISABLED = §caus
|
||||||
# Region
|
# Region
|
||||||
REGION_TYPE_NORMAL = Normal
|
REGION_TYPE_NORMAL = Normal
|
||||||
REGION_TYPE_BUILD = Baubereich
|
REGION_TYPE_BUILD = Baubereich
|
||||||
@@ -765,6 +771,12 @@ REGION_TNT_OFF = §cTNT-Schaden deaktiviert
|
|||||||
REGION_TNT_TB = §aTNT-Schaden außerhalb Baurahmen aktiviert
|
REGION_TNT_TB = §aTNT-Schaden außerhalb Baurahmen aktiviert
|
||||||
REGION_TNT_BUILD_DESTROY = §cEine Explosion hätte Blöcke im Baubereich zerstört
|
REGION_TNT_BUILD_DESTROY = §cEine Explosion hätte Blöcke im Baubereich zerstört
|
||||||
REGION_TNT_TB_DESTROY = §cEine Explosion hätte Blöcke im Testblockbereich zerstört
|
REGION_TNT_TB_DESTROY = §cEine Explosion hätte Blöcke im Testblockbereich zerstört
|
||||||
|
REGION_WINDCHARGE_INTERACT_HELP = §8/§ewindcharge §8- §7Windkugel interaktion umschalten
|
||||||
|
REGION_WINDCHARGE_INTERACT_ON = §aWindkugel interaktion on
|
||||||
|
REGION_WINDCHARGE_INTERACT_OFF = §cWindkugel interaktion off
|
||||||
|
REGION_PROJECTILE_STOPPER_HELP = §8/§eprojectilestopper §8- §7
|
||||||
|
REGION_PROJECTILE_STOPPER_ON = §aProjektiel stopper an
|
||||||
|
REGION_PROJECTILE_STOPPER_OFF = §cProjektiel stopper aus
|
||||||
AFK_KICK_MESSAGE = §cAuf diesem Server ist seit 15 Minuten nichts passiert.
|
AFK_KICK_MESSAGE = §cAuf diesem Server ist seit 15 Minuten nichts passiert.
|
||||||
AFK_WARNING_MESSAGE = §cDieser Server wird bei weiterer Inaktivität in einer Minute gestoppt
|
AFK_WARNING_MESSAGE = §cDieser Server wird bei weiterer Inaktivität in einer Minute gestoppt
|
||||||
SKIN_HELP = §8/§eskin §8[§7Kuerzel§8] §8[§7Creator§8|§epublic§8] §8[§7Name...§8] §8- §7Erstellt die Skin Schematics. 'public' als Creator nutzen für keinen Creator, danach die nachricht an YoyoNow kopieren (mit Click kopieren)
|
SKIN_HELP = §8/§eskin §8[§7Kuerzel§8] §8[§7Creator§8|§epublic§8] §8[§7Name...§8] §8- §7Erstellt die Skin Schematics. 'public' als Creator nutzen für keinen Creator, danach die nachricht an YoyoNow kopieren (mit Click kopieren)
|
||||||
|
|||||||
-23
@@ -1,23 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is a part of the SteamWar software.
|
|
||||||
*
|
|
||||||
* Copyright (C) 2026 SteamWar.de-Serverteam
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU Affero General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU Affero General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Affero General Public License
|
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package de.steamwar.bausystem.features.region;
|
|
||||||
|
|
||||||
public class ProjectieleStopperListener {
|
|
||||||
}
|
|
||||||
+48
@@ -0,0 +1,48 @@
|
|||||||
|
/*
|
||||||
|
* This file is a part of the SteamWar software.
|
||||||
|
*
|
||||||
|
* Copyright (C) 2026 SteamWar.de-Serverteam
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU Affero General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU Affero General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Affero General Public License
|
||||||
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package de.steamwar.bausystem.features.region;
|
||||||
|
|
||||||
|
import de.steamwar.bausystem.region.Region;
|
||||||
|
import de.steamwar.bausystem.region.RegionUtils;
|
||||||
|
import de.steamwar.bausystem.region.flags.Flag;
|
||||||
|
import de.steamwar.bausystem.region.flags.ProjectileStopperMode;
|
||||||
|
import de.steamwar.command.AbstractSWCommand;
|
||||||
|
import de.steamwar.command.SWCommand;
|
||||||
|
import de.steamwar.linkage.Linked;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
@Linked
|
||||||
|
public class ProjectileStopperCommand extends SWCommand {
|
||||||
|
public ProjectileStopperCommand() {
|
||||||
|
super("projectilestopper");
|
||||||
|
}
|
||||||
|
|
||||||
|
@AbstractSWCommand.Register(description = "REGION_PROJECTILE_STOPPER_HELP")
|
||||||
|
public void toggleCommand(@AbstractSWCommand.Validator Player p) {
|
||||||
|
Region region = Region.getRegion(p.getLocation());
|
||||||
|
if (region.getRegionData().get(Flag.PROJECTILE_STOPPER).get() == ProjectileStopperMode.ENABLED) {
|
||||||
|
region.getRegionData().set(Flag.PROJECTILE_STOPPER, ProjectileStopperMode.DISABLED);
|
||||||
|
RegionUtils.actionBar(region, "REGION_PROJECTILE_STOPPER_OFF");
|
||||||
|
} else {
|
||||||
|
region.getRegionData().set(Flag.PROJECTILE_STOPPER, ProjectileStopperMode.ENABLED);
|
||||||
|
RegionUtils.actionBar(region, "REGION_PROJECTILE_STOPPER_ON");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
+87
@@ -0,0 +1,87 @@
|
|||||||
|
/*
|
||||||
|
* This file is a part of the SteamWar software.
|
||||||
|
*
|
||||||
|
* Copyright (C) 2026 SteamWar.de-Serverteam
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU Affero General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU Affero General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Affero General Public License
|
||||||
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package de.steamwar.bausystem.features.region;
|
||||||
|
|
||||||
|
import com.destroystokyo.paper.event.server.ServerTickEndEvent;
|
||||||
|
import de.steamwar.bausystem.BauSystem;
|
||||||
|
import de.steamwar.bausystem.region.Region;
|
||||||
|
import de.steamwar.bausystem.region.flags.Flag;
|
||||||
|
import de.steamwar.bausystem.region.flags.ProjectileStopperMode;
|
||||||
|
import de.steamwar.bausystem.utils.ScoreboardElement;
|
||||||
|
import de.steamwar.linkage.Linked;
|
||||||
|
import org.bukkit.entity.Entity;
|
||||||
|
import org.bukkit.entity.EntityType;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.event.EventHandler;
|
||||||
|
import org.bukkit.event.Listener;
|
||||||
|
import org.bukkit.event.entity.EntitySpawnEvent;
|
||||||
|
|
||||||
|
import java.util.*;
|
||||||
|
|
||||||
|
@Linked
|
||||||
|
public class ProjectileStopperListener implements Listener, ScoreboardElement {
|
||||||
|
private Map<Region, Set<Entity>> projektileList = new HashMap<>();
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void onTick(ServerTickEndEvent event) {
|
||||||
|
List<Entity> entitiesToAdd = new ArrayList<>();
|
||||||
|
|
||||||
|
projektileList.forEach((region, entities) -> {
|
||||||
|
entities.removeIf(entity -> {
|
||||||
|
if (region != Region.getRegion(entity.getLocation())) {
|
||||||
|
if (region.getRegionData().get(Flag.PROJECTILE_STOPPER).getWithDefault() == ProjectileStopperMode.ENABLED) {
|
||||||
|
entity.remove();
|
||||||
|
} else {
|
||||||
|
entitiesToAdd.add(entity);
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
});
|
||||||
|
entitiesToAdd.forEach(this::addEntity);
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void onEntitySpawn(EntitySpawnEvent event) {
|
||||||
|
if (event.getEntityType() != EntityType.WIND_CHARGE && event.getEntityType() != EntityType.ARROW && event.getEntityType() != EntityType.SMALL_FIREBALL) return;
|
||||||
|
addEntity(event.getEntity());
|
||||||
|
}
|
||||||
|
|
||||||
|
private void addEntity(Entity entity) {
|
||||||
|
Region region = Region.getRegion(entity.getLocation());
|
||||||
|
|
||||||
|
projektileList.computeIfAbsent(region, key -> new HashSet<>()).add(entity);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ScoreboardGroup getGroup() {
|
||||||
|
return ScoreboardGroup.REGION;
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public int order() {
|
||||||
|
return 2;
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public String get(Region region, Player p) {
|
||||||
|
if (region.getRegionData().get(Flag.PROJECTILE_STOPPER).is(ProjectileStopperMode.ENABLED)) return null;
|
||||||
|
return "§e" + BauSystem.MESSAGE.parse(Flag.PROJECTILE_STOPPER.getChatValue(), p) + "§8: " + BauSystem.MESSAGE.parse(region.getRegionData().get(Flag.PROJECTILE_STOPPER).getWithDefault().getChatValue(), p);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -45,6 +45,7 @@ public final class Flag<T extends Enum<T> & Flag.Value<T>> implements EnumDispla
|
|||||||
public static final Flag<ChangedMode> CHANGED = new Flag<>("CHANGED", "FLAG_CHANGED", ChangedMode.class, ChangedMode.NO_CHANGE);
|
public static final Flag<ChangedMode> CHANGED = new Flag<>("CHANGED", "FLAG_CHANGED", ChangedMode.class, ChangedMode.NO_CHANGE);
|
||||||
public static final Flag<WaterDestroyMode> WATER_DESTROY = new Flag<>("WATER_DESTROY", "FLAG_WATER_DESTROY", WaterDestroyMode.class, WaterDestroyMode.ALLOW);
|
public static final Flag<WaterDestroyMode> WATER_DESTROY = new Flag<>("WATER_DESTROY", "FLAG_WATER_DESTROY", WaterDestroyMode.class, WaterDestroyMode.ALLOW);
|
||||||
public static final Flag<WindChargeInteractMode> WIND_CHARGE_INTERACT = new Flag<>("WINDCHARGE_INTERACT", "FLAG_WINDCHARGE_INTERACT", WindChargeInteractMode.class, WindChargeInteractMode.ALLOW);
|
public static final Flag<WindChargeInteractMode> WIND_CHARGE_INTERACT = new Flag<>("WINDCHARGE_INTERACT", "FLAG_WINDCHARGE_INTERACT", WindChargeInteractMode.class, WindChargeInteractMode.ALLOW);
|
||||||
|
public static final Flag<ProjectileStopperMode> PROJECTILE_STOPPER = new Flag<>("PROJECTILE_STOPPER", "FLAG_PROJECTILE_STOPPER", ProjectileStopperMode.class, ProjectileStopperMode.ENABLED);
|
||||||
|
|
||||||
private String name;
|
private String name;
|
||||||
private int ordinal;
|
private int ordinal;
|
||||||
|
|||||||
+52
@@ -0,0 +1,52 @@
|
|||||||
|
/*
|
||||||
|
* This file is a part of the SteamWar software.
|
||||||
|
*
|
||||||
|
* Copyright (C) 2026 SteamWar.de-Serverteam
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU Affero General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU Affero General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Affero General Public License
|
||||||
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package de.steamwar.bausystem.region.flags;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Getter;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@AllArgsConstructor
|
||||||
|
public enum ProjectileStopperMode implements Flag.Value<ProjectileStopperMode> {
|
||||||
|
ENABLED("FLAG_PROJECTILE_STOPPER_ENABLED"),
|
||||||
|
DISABLED("FLAG_PROJECTILE_STOPPER_DISABLED");
|
||||||
|
|
||||||
|
private static WindChargeInteractMode[] values;
|
||||||
|
private final String chatValue;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ProjectileStopperMode[] getValues() {
|
||||||
|
return ProjectileStopperMode.values();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ProjectileStopperMode getValue() {
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ProjectileStopperMode getValueOf(final String name) {
|
||||||
|
try {
|
||||||
|
return ProjectileStopperMode.valueOf(name.toUpperCase());
|
||||||
|
} catch (IllegalArgumentException e) {
|
||||||
|
return ProjectileStopperMode.ENABLED;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
+2
-1
@@ -37,6 +37,7 @@ public class FixedGlobalRegionData extends RegionData {
|
|||||||
flagMap.put(Flag.COLOR, ColorMode.YELLOW);
|
flagMap.put(Flag.COLOR, ColorMode.YELLOW);
|
||||||
flagMap.put(Flag.PROTECT, ProtectMode.INACTIVE);
|
flagMap.put(Flag.PROTECT, ProtectMode.INACTIVE);
|
||||||
flagMap.put(Flag.WIND_CHARGE_INTERACT, WindChargeInteractMode.ALLOW);
|
flagMap.put(Flag.WIND_CHARGE_INTERACT, WindChargeInteractMode.ALLOW);
|
||||||
|
flagMap.put(Flag.PROJECTILE_STOPPER, ProjectileStopperMode.ENABLED);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -47,7 +48,7 @@ public class FixedGlobalRegionData extends RegionData {
|
|||||||
if (flag.oneOf(Flag.ITEMS)) {
|
if (flag.oneOf(Flag.ITEMS)) {
|
||||||
return RegionFlagPolicy.WRITABLE;
|
return RegionFlagPolicy.WRITABLE;
|
||||||
}
|
}
|
||||||
if (flag.oneOf(Flag.TNT, Flag.FIRE, Flag.FREEZE)) {
|
if (flag.oneOf(Flag.TNT, Flag.FIRE, Flag.FREEZE, Flag.PROJECTILE_STOPPER, Flag.WIND_CHARGE_INTERACT )) {
|
||||||
return RegionFlagPolicy.WRITABLE;
|
return RegionFlagPolicy.WRITABLE;
|
||||||
}
|
}
|
||||||
return RegionFlagPolicy.NOT_APPLICABLE;
|
return RegionFlagPolicy.NOT_APPLICABLE;
|
||||||
|
|||||||
+1
-1
@@ -33,7 +33,7 @@ public class FixedRegionData extends RegionData {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public @NonNull <T extends Enum<T> & Flag.Value<T>> RegionFlagPolicy has(@NonNull Flag<T> flag) {
|
public @NonNull <T extends Enum<T> & Flag.Value<T>> RegionFlagPolicy has(@NonNull Flag<T> flag) {
|
||||||
if (flag.oneOf(Flag.COLOR, Flag.TNT, Flag.FIRE, Flag.FREEZE, Flag.PROTECT, Flag.NO_GRAVITY, Flag.CHANGED, Flag.WATER_DESTROY, Flag.WIND_CHARGE_INTERACT)) {
|
if (flag.oneOf(Flag.COLOR, Flag.TNT, Flag.FIRE, Flag.FREEZE, Flag.PROTECT, Flag.NO_GRAVITY, Flag.CHANGED, Flag.WATER_DESTROY, Flag.WIND_CHARGE_INTERACT, Flag.PROJECTILE_STOPPER)) {
|
||||||
return RegionFlagPolicy.WRITABLE;
|
return RegionFlagPolicy.WRITABLE;
|
||||||
}
|
}
|
||||||
if (flag.oneOf(Flag.ITEMS)) {
|
if (flag.oneOf(Flag.ITEMS)) {
|
||||||
|
|||||||
Reference in New Issue
Block a user