Compare commits

..

1 Commits

Author SHA1 Message Date
7c911c919e feat: add projectile-change-block flag
- closes #4081
2023-10-01 11:14:42 +01:00
13 changed files with 77 additions and 21 deletions

View File

@ -27,7 +27,7 @@ body:
description: Which server version version you using? If your server version is not listed, it is not supported. Update to a supported version first.
multiple: false
options:
- '1.20.2'
- '1.20.1'
- '1.20'
- '1.19.4'
- '1.19.3'

View File

@ -9,7 +9,7 @@ jobs:
os: [ ubuntu-latest, windows-latest, macos-latest ]
steps:
- name: Checkout Repository
uses: actions/checkout@v4
uses: actions/checkout@v3
- name: Validate Gradle Wrapper
uses: gradle/wrapper-validation-action@v1
- name: Setup Java

View File

@ -9,7 +9,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v4
uses: actions/checkout@v3
- name: Validate Gradle Wrapper
uses: gradle/wrapper-validation-action@v1
- name: Setup Java

View File

@ -20,7 +20,7 @@ jobs:
language: [ 'java' ]
steps:
- name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v3
- name: Setup Java
uses: actions/setup-java@v3
with:

View File

@ -100,7 +100,7 @@ tasks {
withType<Javadoc> {
val isRelease = if (rootProject.version.toString().endsWith("-SNAPSHOT")) "TODO" else rootProject.version.toString()
val opt = options as StandardJavadocDocletOptions
opt.links("https://jd.papermc.io/paper/1.20/")
opt.links("https://jd.papermc.io/paper/1.19/")
opt.links("https://docs.enginehub.org/javadoc/com.sk89q.worldedit/worldedit-bukkit/" + libs.worldeditBukkit.get().versionConstraint.toString())
opt.links("https://intellectualsites.github.io/plotsquared-javadocs/core/")
opt.links("https://jd.advntr.dev/api/4.14.0/")

View File

@ -35,6 +35,7 @@ import com.plotsquared.core.plot.flag.implementations.DisablePhysicsFlag;
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.world.PlotAreaManager;
import com.plotsquared.core.util.EventDispatcher;
import com.plotsquared.core.util.PlotFlagUtil;
@ -360,7 +361,7 @@ public class EntityEventListener implements Listener {
}
return;
}
if (plot.isAdded(pp.getUUID()) || pp.hasPermission(Permission.PERMISSION_ADMIN_PROJECTILE_OTHER)) {
if (plot.isAdded(pp.getUUID()) || plot.getFlag(ProjectileChangeBlockFlag.class) || pp.hasPermission(Permission.PERMISSION_ADMIN_PROJECTILE_OTHER)) {
return;
}
entity.remove();

View File

@ -57,8 +57,8 @@ tasks.processResources {
doLast {
copy {
from(layout.buildDirectory.file("$rootDir/LICENSE"))
into(layout.buildDirectory.dir("resources/main"))
from(File("$rootDir/LICENSE"))
into("$buildDir/resources/main/")
}
}
}

View File

@ -87,6 +87,7 @@ import com.plotsquared.core.plot.flag.implementations.PlayerInteractFlag;
import com.plotsquared.core.plot.flag.implementations.PlotTitleFlag;
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.PveFlag;
import com.plotsquared.core.plot.flag.implementations.PvpFlag;
@ -181,6 +182,7 @@ public final class GlobalFlagContainer extends FlagContainer {
this.addFlag(NoWorldeditFlag.NO_WORLDEDIT_FALSE);
this.addFlag(PlayerInteractFlag.PLAYER_INTERACT_FALSE);
this.addFlag(PreventCreativeCopyFlag.PREVENT_CREATIVE_COPY_FALSE);
this.addFlag(ProjectileChangeBlockFlag.PROJECTILE_CHANGE_BLOCK_FALSE);
this.addFlag(PveFlag.PVE_FALSE);
this.addFlag(PvpFlag.PVP_FALSE);
this.addFlag(RedstoneFlag.REDSTONE_TRUE);

View File

@ -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 ProjectileChangeBlockFlag extends BooleanFlag<ProjectileChangeBlockFlag> {
public static final ProjectileChangeBlockFlag PROJECTILE_CHANGE_BLOCK_TRUE = new ProjectileChangeBlockFlag(true);
public static final ProjectileChangeBlockFlag PROJECTILE_CHANGE_BLOCK_FALSE = new ProjectileChangeBlockFlag(false);
private ProjectileChangeBlockFlag(boolean value) {
super(value, TranslatableCaption.of("flags.flag_description_projectile_change_block"));
}
@Override
protected ProjectileChangeBlockFlag flagOf(@NonNull Boolean value) {
return value ? PROJECTILE_CHANGE_BLOCK_TRUE : PROJECTILE_CHANGE_BLOCK_FALSE;
}
}

View File

@ -42,14 +42,27 @@ public class EntityUtil {
}
private static int capNumeral(final @NonNull String flagName) {
int i = switch (flagName) {
case "mob-cap" -> CAP_MOB;
case "hostile-cap" -> CAP_MONSTER;
case "animal-cap" -> CAP_ANIMAL;
case "vehicle-cap" -> CAP_VEHICLE;
case "misc-cap" -> CAP_MISC;
default -> CAP_ENTITY;
};
int i;
switch (flagName) {
case "mob-cap":
i = CAP_MOB;
break;
case "hostile-cap":
i = CAP_MONSTER;
break;
case "animal-cap":
i = CAP_ANIMAL;
break;
case "vehicle-cap":
i = CAP_VEHICLE;
break;
case "misc-cap":
i = CAP_MISC;
break;
case "entity-cap":
default:
i = CAP_ENTITY;
}
return i;
}

View File

@ -587,6 +587,7 @@
"flags.flag_description_place": "<gray>Define a list of materials players should be able to place in the plot.</gray>",
"flags.flag_description_player_interact": "<gray>Set to `true` to allow guests to interact with players in the plot.</gray>",
"flags.flag_description_price": "<gray>Set a price for a plot. Must be a positive decimal number.</gray>",
"flags.flag_description_projectile_change_block": "<gray>Set to `true` to allow projectiles to change blocks (tnt, etc.) on the plot.</gray>",
"flags.flag_description_pve": "<gray>Set to `true` to enable PVE inside the plot.</gray>",
"flags.flag_description_pvp": "<gray>Set to `true` to enable PVP inside the plot.</gray>",
"flags.flag_description_redstone": "<gray>Set to `false` to disable redstone in the plot.</gray>",

View File

@ -220,7 +220,7 @@ tasks.getByName<Jar>("jar") {
enabled = false
}
val supportedVersions = listOf("1.16.5", "1.17.1", "1.18.2", "1.19.4", "1.20.1", "1.20.2")
val supportedVersions = listOf("1.16.5", "1.17.1", "1.18.2", "1.19.4", "1.20.1")
tasks {
val lastSuccessfulBuildUrl = uri("https://ci.athion.net/job/FastAsyncWorldEdit/lastSuccessfulBuild/api/json").toURL()
val artifact = ((JsonSlurper().parse(lastSuccessfulBuildUrl) as Map<*, *>)["artifacts"] as List<*>)

View File

@ -1,9 +1,9 @@
[versions]
# Platform expectations
paper = "1.20.2-R0.1-SNAPSHOT"
paper = "1.20.1-R0.1-SNAPSHOT"
guice = "7.0.0"
spotbugs = "4.7.3"
checkerqual = "3.38.0"
checkerqual = "3.37.0"
gson = "2.10"
guava = "31.1-jre"
snakeyaml = "2.0"
@ -13,7 +13,7 @@ log4j = "2.19.0"
# Plugins
worldedit = "7.2.16"
fawe = "2.8.0"
fawe = "2.7.1"
placeholderapi = "2.11.4"
luckperms = "5.4"
essentialsx = "2.20.1"
@ -35,7 +35,7 @@ serverlib = "2.3.4"
# Gradle plugins
shadow = "8.1.1"
grgit = "4.1.1"
spotless = "6.22.0"
spotless = "6.21.0"
nexus = "1.3.0"
runPaper = "2.2.0"