mirror of
https://github.com/IntellectualSites/PlotSquared.git
synced 2025-07-16 20:34:42 +02:00
Compare commits
14 Commits
fix/4513
...
feature/1.
Author | SHA1 | Date | |
---|---|---|---|
a56d8c61e9 | |||
7f208db5ed | |||
b9a543fb1b | |||
7218e9829f | |||
2e17c941fc | |||
5e628cc758 | |||
a42e08dc0e | |||
10bf45c128 | |||
9fe61e5053 | |||
8f5bdf5dbb | |||
9df1387f81 | |||
dcf5a7d940 | |||
641e3840cb | |||
5642061d6f |
1
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
1
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
@ -27,6 +27,7 @@ body:
|
||||
description: Which server version are you using? If your server version is not listed, it is not supported. Update to a supported version first.
|
||||
multiple: false
|
||||
options:
|
||||
- '1.21.3'
|
||||
- '1.21.1'
|
||||
- '1.20.6'
|
||||
- '1.20.4'
|
||||
|
@ -52,7 +52,7 @@ import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.EnumSet;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
import java.util.Set;
|
||||
@ -445,7 +445,7 @@ public class BukkitPlotGenerator extends ChunkGenerator implements GeneratorWrap
|
||||
private static final List<Biome> BIOMES;
|
||||
|
||||
static {
|
||||
Set<Biome> disabledBiomes = EnumSet.of(Biome.CUSTOM);
|
||||
Set<Biome> disabledBiomes = new HashSet<>(List.of(Biome.CUSTOM));
|
||||
if (PlotSquared.platform().serverVersion()[1] <= 19) {
|
||||
final Biome cherryGrove = Registry.BIOME.get(NamespacedKey.minecraft("cherry_grove"));
|
||||
if (cherryGrove != null) {
|
||||
|
@ -37,6 +37,7 @@ import com.plotsquared.core.plot.flag.implementations.EntityChangeBlockFlag;
|
||||
import com.plotsquared.core.plot.flag.implementations.ExplosionFlag;
|
||||
import com.plotsquared.core.plot.flag.implementations.InvincibleFlag;
|
||||
import com.plotsquared.core.plot.flag.implementations.ProjectileChangeBlockFlag;
|
||||
import com.plotsquared.core.plot.flag.implementations.WeavingDeathPlace;
|
||||
import com.plotsquared.core.plot.world.PlotAreaManager;
|
||||
import com.plotsquared.core.util.EventDispatcher;
|
||||
import com.plotsquared.core.util.PlotFlagUtil;
|
||||
@ -243,6 +244,29 @@ public class EntityEventListener implements Listener {
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler(ignoreCancelled = true, priority = EventPriority.HIGHEST)
|
||||
public void onWeavingEffect(EntityChangeBlockEvent event) {
|
||||
if (event.getTo() != Material.COBWEB) {
|
||||
return;
|
||||
}
|
||||
Location location = BukkitUtil.adapt(event.getBlock().getLocation());
|
||||
PlotArea area = location.getPlotArea();
|
||||
if (area == null) {
|
||||
return;
|
||||
}
|
||||
Plot plot = location.getOwnedPlot();
|
||||
if (plot == null) {
|
||||
if (PlotFlagUtil.isAreaRoadFlagsAndFlagEquals(area, WeavingDeathPlace.class, false)) {
|
||||
event.setCancelled(true);
|
||||
}
|
||||
return;
|
||||
}
|
||||
if (!plot.getFlag(WeavingDeathPlace.class)) {
|
||||
plot.debug(event.getTo() + " could not spawn because weaving-death-place = false");
|
||||
event.setCancelled(true);
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGH)
|
||||
public void onDamage(EntityDamageEvent event) {
|
||||
if (event.getEntityType() != EntityType.PLAYER) {
|
||||
@ -401,7 +425,13 @@ public class EntityEventListener implements Listener {
|
||||
}
|
||||
|
||||
Plot plot = area.getOwnedPlot(location);
|
||||
if (plot != null && !plot.getFlag(EntityChangeBlockFlag.class)) {
|
||||
if (plot == null) {
|
||||
if (PlotFlagUtil.isAreaRoadFlagsAndFlagEquals(area, EntityChangeBlockFlag.class, false)) {
|
||||
event.setCancelled(true);
|
||||
}
|
||||
return;
|
||||
}
|
||||
if (!plot.getFlag(EntityChangeBlockFlag.class)) {
|
||||
plot.debug(e.getType() + " could not change block because entity-change-block = false");
|
||||
event.setCancelled(true);
|
||||
}
|
||||
|
@ -92,6 +92,7 @@ import com.plotsquared.core.plot.flag.implementations.PreventCreativeCopyFlag;
|
||||
import com.plotsquared.core.plot.flag.implementations.PriceFlag;
|
||||
import com.plotsquared.core.plot.flag.implementations.ProjectileChangeBlockFlag;
|
||||
import com.plotsquared.core.plot.flag.implementations.ProjectilesFlag;
|
||||
import com.plotsquared.core.plot.flag.implementations.WeavingDeathPlace;
|
||||
import com.plotsquared.core.plot.flag.implementations.PveFlag;
|
||||
import com.plotsquared.core.plot.flag.implementations.PvpFlag;
|
||||
import com.plotsquared.core.plot.flag.implementations.RedstoneFlag;
|
||||
@ -207,6 +208,7 @@ public final class GlobalFlagContainer extends FlagContainer {
|
||||
this.addFlag(VillagerInteractFlag.VILLAGER_INTERACT_FALSE);
|
||||
this.addFlag(VineGrowFlag.VINE_GROW_TRUE);
|
||||
this.addFlag(ProjectilesFlag.PROJECTILES_FALSE);
|
||||
this.addFlag(WeavingDeathPlace.WEAVING_DEATH_PLACE_FALSE);
|
||||
|
||||
// Double flags
|
||||
this.addFlag(PriceFlag.PRICE_NOT_BUYABLE);
|
||||
|
@ -0,0 +1,39 @@
|
||||
/*
|
||||
* PlotSquared, a land and world management plugin for Minecraft.
|
||||
* Copyright (C) IntellectualSites <https://intellectualsites.com>
|
||||
* Copyright (C) IntellectualSites team and contributors
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU 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 General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
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 WeavingDeathPlace extends BooleanFlag<WeavingDeathPlace> {
|
||||
|
||||
public static final WeavingDeathPlace WEAVING_DEATH_PLACE_TRUE = new WeavingDeathPlace(true);
|
||||
public static final WeavingDeathPlace WEAVING_DEATH_PLACE_FALSE = new WeavingDeathPlace(false);
|
||||
|
||||
private WeavingDeathPlace(boolean value) {
|
||||
super(value, TranslatableCaption.of("flags.flag_description_weaving_death_place"));
|
||||
}
|
||||
|
||||
@Override
|
||||
protected WeavingDeathPlace flagOf(@NonNull Boolean value) {
|
||||
return value ? WEAVING_DEATH_PLACE_TRUE : WEAVING_DEATH_PLACE_FALSE;
|
||||
}
|
||||
|
||||
}
|
@ -371,7 +371,10 @@ public class EventDispatcher {
|
||||
Location location, BlockType blockType, boolean notifyPerms
|
||||
) {
|
||||
PlotArea area = location.getPlotArea();
|
||||
assert area != null;
|
||||
// the interaction target location might be outside a plot area
|
||||
if (area == null) {
|
||||
return true;
|
||||
}
|
||||
if (!area.buildRangeContainsY(location.getY()) && !player.hasPermission(Permission.PERMISSION_ADMIN_BUILD_HEIGHT_LIMIT)) {
|
||||
player.sendMessage(
|
||||
TranslatableCaption.of("height.height_limit"),
|
||||
|
@ -628,6 +628,7 @@
|
||||
"flags.flag_description_prevent_creative_copy": "<gray>Prevents people from copying item NBT data in the plot unless they're added as members.</gray>",
|
||||
"flags.flag_description_leaf_decay": "<gray>Set to `false` to prevent leaves from decaying.",
|
||||
"flags.flag_description_projectiles": "<gray>Prevents guests from shooting projectiles on the plot when set to false.</gray>",
|
||||
"flags.flag_description_weaving_death_place": "<gray>Set to `false` to prevent spawning of cobwebs by the Weaving status effect on the death of an entity.</gray>",
|
||||
"flags.flag_description_beacon_effect": "<gray>Enables beacon effects on the plot.</gray>",
|
||||
"flags.flag_error_boolean": "Flag value must be a boolean (true | false).",
|
||||
"flags.flag_error_enum": "Must be one of: <list>",
|
||||
|
@ -22,7 +22,7 @@ plugins {
|
||||
}
|
||||
|
||||
group = "com.intellectualsites.plotsquared"
|
||||
version = "7.3.12-SNAPSHOT"
|
||||
version = "7.3.13-SNAPSHOT"
|
||||
|
||||
if (!File("$rootDir/.git").exists()) {
|
||||
logger.lifecycle("""
|
||||
@ -79,8 +79,8 @@ subprojects {
|
||||
|
||||
dependencies {
|
||||
// Tests
|
||||
testImplementation("org.junit.jupiter:junit-jupiter:5.11.2")
|
||||
testRuntimeOnly("org.junit.platform:junit-platform-launcher:1.11.2")
|
||||
testImplementation("org.junit.jupiter:junit-jupiter:5.11.3")
|
||||
testRuntimeOnly("org.junit.platform:junit-platform-launcher:1.11.3")
|
||||
}
|
||||
|
||||
plugins.withId("java") {
|
||||
@ -230,7 +230,7 @@ tasks.getByName<Jar>("jar") {
|
||||
enabled = false
|
||||
}
|
||||
|
||||
val supportedVersions = listOf("1.18.2", "1.19.4", "1.20.6", "1.21.1")
|
||||
val supportedVersions = listOf("1.18.2", "1.19.4", "1.20.6", "1.21.1", "1.21.3")
|
||||
tasks {
|
||||
register("cacheLatestFaweArtifact") {
|
||||
val lastSuccessfulBuildUrl = uri("https://ci.athion.net/job/FastAsyncWorldEdit/lastSuccessfulBuild/api/json").toURL()
|
||||
|
@ -3,7 +3,7 @@
|
||||
paper = "1.20.4-R0.1-SNAPSHOT"
|
||||
guice = "7.0.0"
|
||||
spotbugs = "4.8.6"
|
||||
checkerqual = "3.48.0"
|
||||
checkerqual = "3.48.2"
|
||||
gson = "2.10"
|
||||
guava = "31.1-jre"
|
||||
snakeyaml = "2.0"
|
||||
@ -13,7 +13,7 @@ log4j = "2.19.0"
|
||||
|
||||
# Plugins
|
||||
worldedit = "7.2.20"
|
||||
fawe = "2.11.2"
|
||||
fawe = "2.12.0"
|
||||
placeholderapi = "2.11.6"
|
||||
luckperms = "5.4"
|
||||
essentialsx = "2.20.1"
|
||||
@ -33,7 +33,7 @@ vault = "1.7.1"
|
||||
serverlib = "2.3.6"
|
||||
|
||||
# Gradle plugins
|
||||
shadow = "8.3.3"
|
||||
shadow = "8.3.5"
|
||||
grgit = "4.1.1"
|
||||
spotless = "6.25.0"
|
||||
nexus = "2.0.0"
|
||||
|
Reference in New Issue
Block a user