Merge branch 'breaking' into DenyTeleportBugfix

This commit is contained in:
mindw0rm 2019-10-22 17:20:43 +02:00
commit e5e522bc31
11 changed files with 77 additions and 38 deletions

View File

@ -6,10 +6,3 @@ issueOpened: >
Failure to do so will prevent us from resolving the issue in a timely manner. Failure to do so will prevent us from resolving the issue in a timely manner.
Please note that suggestions are now to be submitted to https://git.io/fN5B4 rather than this issue tracker! Please note that suggestions are now to be submitted to https://git.io/fN5B4 rather than this issue tracker!
pullRequestOpened: >
Thank your for raising your pull request.
Please make sure you have followed our contributing guidelines and to take an extra look at the code to make sure that it is functional!
We will review it as soon as possible!

24
.github/workflows/gradle.yml vendored Normal file
View File

@ -0,0 +1,24 @@
name: Java CI
on:
push:
branches:
- breaking
- master
pull_request:
branches:
- breaking
- master
jobs:
test:
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v1
- name: Set up JDK 1.8
uses: actions/setup-java@v1
with:
java-version: 1.8
- name: Test with Gradle
run: ./gradlew clean build

View File

@ -48,10 +48,10 @@ shadowJar {
include(dependency(":Core")) include(dependency(":Core"))
// update notification stuff // update notification stuff
include(dependency("com.github.Sauilitired:Jenkins4J:2.0-SNAPSHOT")) include(dependency("com.github.Sauilitired:Jenkins4J:2.0-SNAPSHOT"))
include(dependency("com.squareup.retrofit2:retrofit:2.4.0")) include(dependency("com.squareup.retrofit2:retrofit:2.6.2"))
include(dependency("com.squareup.okhttp3:okhttp:3.14.0")) include(dependency("com.squareup.okhttp3:okhttp:4.2.2"))
include(dependency("com.squareup.okio:okio:2.2.2")) include(dependency("com.squareup.okio:okio:2.4.1"))
include(dependency("org.jetbrains.kotlin:kotlin-stdlib:1.3.30")) include(dependency("org.jetbrains.kotlin:kotlin-stdlib:1.3.50"))
include(dependency("io.papermc:paperlib:1.0.2")) include(dependency("io.papermc:paperlib:1.0.2"))
include(dependency("net.kyori:text-adapter-bukkit:3.0.3")) include(dependency("net.kyori:text-adapter-bukkit:3.0.3"))
} }

View File

@ -2039,13 +2039,14 @@ import java.util.regex.Pattern;
if (type == Material.AIR) { if (type == Material.AIR) {
type = offType; type = offType;
} }
// in the following, lb needs to have the material of the item in hand i.e. type
lb = new BukkitLazyBlock(PlotBlock.get(type.toString()));
if (type.isBlock()) { if (type.isBlock()) {
location = BukkitUtil location = BukkitUtil
.getLocation(block.getRelative(event.getBlockFace()).getLocation()); .getLocation(block.getRelative(event.getBlockFace()).getLocation());
eventType = PlayerBlockEventType.PLACE_BLOCK; eventType = PlayerBlockEventType.PLACE_BLOCK;
break; break;
} }
lb = new BukkitLazyBlock(PlotBlock.get(type.toString()));
if (type.toString().toLowerCase().endsWith("egg")) { if (type.toString().toLowerCase().endsWith("egg")) {
eventType = PlayerBlockEventType.SPAWN_MOB; eventType = PlayerBlockEventType.SPAWN_MOB;
} else { } else {

View File

@ -6,6 +6,7 @@ load: STARTUP
description: > description: >
Easy, yet powerful Plot World generation and management. Easy, yet powerful Plot World generation and management.
authors: [Citymonstret, Empire92, MattBDev, dordsor21] authors: [Citymonstret, Empire92, MattBDev, dordsor21]
website: https://github.com/IntellectualSites/
softdepend: [BarAPI, CameraAPI, Vault] softdepend: [BarAPI, CameraAPI, Vault]
loadbefore: [MultiWorld, Multiverse-Core] loadbefore: [MultiWorld, Multiverse-Core]
depend: [WorldEdit] depend: [WorldEdit]

View File

@ -4,20 +4,20 @@ repositories {
def textVersion = "3.0.2" def textVersion = "3.0.2"
dependencies { dependencies {
implementation("org.yaml:snakeyaml:1.23") implementation("org.yaml:snakeyaml:1.25")
implementation("com.google.code.gson:gson:2.8.0") { implementation("com.google.code.gson:gson:2.8.6") {
because("Minecraft uses GSON 2.8.0") because("Minecraft uses GSON 2.8.0")
force = true force = true
} }
implementation("org.projectlombok:lombok:1.18.8") implementation("org.projectlombok:lombok:1.18.10")
compileOnly("org.projectlombok:lombok:1.18.8") compileOnly("org.projectlombok:lombok:1.18.8")
testCompileOnly("org.projectlombok:lombok:1.18.8") testCompileOnly("org.projectlombok:lombok:1.18.8")
annotationProcessor("org.projectlombok:lombok:1.18.8") annotationProcessor("org.projectlombok:lombok:1.18.8")
testAnnotationProcessor("org.projectlombok:lombok:1.18.8") testAnnotationProcessor("org.projectlombok:lombok:1.18.8")
implementation("com.github.Sauilitired:Jenkins4J:2.0-SNAPSHOT") implementation("com.github.Sauilitired:Jenkins4J:2.0-SNAPSHOT")
implementation("com.squareup.okhttp3:okhttp:3.14.0") implementation("com.squareup.okhttp3:okhttp:4.2.2")
implementation("com.squareup.okio:okio:2.2.2") implementation("com.squareup.okio:okio:2.4.1")
implementation("org.jetbrains.kotlin:kotlin-stdlib:1.3.30") implementation("org.jetbrains.kotlin:kotlin-stdlib:1.3.50")
} }
sourceCompatibility = 1.8 sourceCompatibility = 1.8

View File

@ -24,9 +24,9 @@ import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@CommandDeclaration(command = "debugpaste", aliases = "dp", usage = "/plot debugpaste", @CommandDeclaration(command = "debugpaste", aliases = "dp", usage = "/plot debugpaste",
description = "Upload settings.yml, worlds.yml, PlotSquared.use_THIS.yml and your latest.log to https://athion.net/ISPaster/paste", description = "Upload settings.yml, worlds.yml, PlotSquared.use_THIS.yml your latest.log and Multiverse's worlds.yml (if being used) to https://athion.net/ISPaster/paste",
permission = "plots.debugpaste", category = CommandCategory.DEBUG) public class DebugPaste permission = "plots.debugpaste", category = CommandCategory.DEBUG, confirmation = true, requiredType = RequiredType.NONE)
extends SubCommand { public class DebugPaste extends SubCommand {
private static String readFile(@NonNull final File file) throws IOException { private static String readFile(@NonNull final File file) throws IOException {
final List<String> lines; final List<String> lines;
@ -115,6 +115,15 @@ import java.util.stream.Collectors;
"&cSkipping PlotSquared.use_THIS.yml because it's empty"); "&cSkipping PlotSquared.use_THIS.yml because it's empty");
} }
try {
final File MultiverseWorlds =
new File(PlotSquared.get().IMP.getDirectory(), "../Multiverse-Core/worlds.yml");
incendoPaster
.addFile(new IncendoPaster.PasteFile("MultiverseCore/worlds.yml", readFile(MultiverseWorlds)));
} catch (final IOException ignored) {
MainUtil.sendMessage(player, "&cSkipping Multiverse worlds.yml because the plugin is not in use");
}
try { try {
final String rawResponse = incendoPaster.upload(); final String rawResponse = incendoPaster.upload();
final JsonObject jsonObject = final JsonObject jsonObject =

View File

@ -26,7 +26,7 @@ public class Settings extends Config {
@Final public static String COMMIT; // These values are set from P2 before loading @Final public static String COMMIT; // These values are set from P2 before loading
@Final public static String PLATFORM; // These values are set from P2 before loading @Final public static String PLATFORM; // These values are set from P2 before loading
@Comment("Show additional information in console") public static boolean DEBUG = true; @Comment("Show additional information in console") public static boolean DEBUG = false;
@Comment({"The big annoying text that appears when you enter a plot", @Comment({"The big annoying text that appears when you enter a plot",
"For a single plot: `/plot flag set titles false`", "For just you: `/plot toggle titles`"}) "For a single plot: `/plot flag set titles false`", "For just you: `/plot toggle titles`"})
public static boolean TITLES = true; public static boolean TITLES = true;
@ -256,10 +256,10 @@ public class Settings extends Config {
public static final class Done { public static final class Done {
@Comment("Require a done plot to download") public static boolean REQUIRED_FOR_DOWNLOAD = @Comment("Require a plot marked as done to download") public static boolean REQUIRED_FOR_DOWNLOAD =
false; false;
@Comment("Only done plots can be rated") public static boolean REQUIRED_FOR_RATINGS = false; @Comment("Only plots marked as done can be rated") public static boolean REQUIRED_FOR_RATINGS = false;
@Comment("Restrict building when a plot is done") public static boolean RESTRICT_BUILDING = @Comment("Restrict building when a plot is marked as done") public static boolean RESTRICT_BUILDING =
false; false;
@Comment("The limit being how many plots a player can claim") public static boolean @Comment("The limit being how many plots a player can claim") public static boolean
COUNTS_TOWARDS_LIMIT = true; COUNTS_TOWARDS_LIMIT = true;
@ -269,14 +269,15 @@ public class Settings extends Config {
public static final class Chat { public static final class Chat {
@Comment("Sometimes console color doesn't work, you can disable it here") @Comment("Sometimes console color doesn't work, you can disable it here")
public static boolean CONSOLE_COLOR = true; public static boolean CONSOLE_COLOR = true;
@Comment("Should chat be interactive") public static boolean INTERACTIVE = true; @Comment("Should the chat be interactive?") public static boolean INTERACTIVE = true;
} }
@Comment("Relating to how many plots someone can claim ") public static final class Limit { @Comment("Relating to how many plots someone can claim ") public static final class Limit {
@Comment("Should the limit be global (over multiple worlds)") public static boolean GLOBAL = @Comment("Should the limit be global (over multiple worlds)") public static boolean GLOBAL =
false; false;
@Comment("The range of permissions to check e.g. plots.plot.127") public static int @Comment({"The max. range of permissions to check e.g. plots.plot.127", "The value covers the range to check only, you need to assign the permission to players/groups still",
"Modifying the value does NOT change the amount of plots players can claim"}) public static int
MAX_PLOTS = 127; MAX_PLOTS = 127;
} }
@ -291,7 +292,7 @@ public class Settings extends Config {
@Comment("Teleport to your plot on death") public static boolean ON_DEATH = false; @Comment("Teleport to your plot on death") public static boolean ON_DEATH = false;
@Comment("Teleport to your plot on login") public static boolean ON_LOGIN = false; @Comment("Teleport to your plot on login") public static boolean ON_LOGIN = false;
@Comment("Teleport to your plot on claim") public static boolean ON_CLAIM = true; @Comment("Teleport to your plot on claim") public static boolean ON_CLAIM = true;
@Comment("Add a teleportation delay to all commands") public static int DELAY = 0; @Comment("Add a delay to all teleport commands") public static int DELAY = 0;
@Comment("The visit command is ordered by world instead of globally") public static boolean @Comment("The visit command is ordered by world instead of globally") public static boolean
PER_WORLD_VISIT = false; PER_WORLD_VISIT = false;
} }
@ -322,7 +323,7 @@ public class Settings extends Config {
@Comment( @Comment(
{"Enable or disable part of the plugin", "Note: A cache will use some memory if enabled"}) {"Enable or disable parts of the plugin", "Note: A cache will use some memory if enabled"})
public static final class Enabled_Components { // Group the following values into a new config section public static final class Enabled_Components { // Group the following values into a new config section
@Comment("The database stores all the plots") public static boolean DATABASE = true; @Comment("The database stores all the plots") public static boolean DATABASE = true;
@Comment("Events are needed to track a lot of things") public static boolean EVENTS = true; @Comment("Events are needed to track a lot of things") public static boolean EVENTS = true;
@ -339,7 +340,7 @@ public class Settings extends Config {
@Comment("Allow WorldEdit to be restricted to plots") public static boolean @Comment("Allow WorldEdit to be restricted to plots") public static boolean
WORLDEDIT_RESTRICTIONS = true; WORLDEDIT_RESTRICTIONS = true;
@Comment("Allow economy to be used") public static boolean ECONOMY = true; @Comment("Allow economy to be used") public static boolean ECONOMY = true;
@Comment("Send anonymous usage statistics. Bukkit only setting.") public static boolean @Comment("Send anonymous usage statistics to bStats. Bukkit only setting.") public static boolean
METRICS = true; METRICS = true;
@Comment("Expiry will clear old or simplistic plots") public static boolean PLOT_EXPIRY = @Comment("Expiry will clear old or simplistic plots") public static boolean PLOT_EXPIRY =
false; false;
@ -355,7 +356,7 @@ public class Settings extends Config {
@Comment("Actively purge invalid database entries") public static boolean DATABASE_PURGER = @Comment("Actively purge invalid database entries") public static boolean DATABASE_PURGER =
false; false;
@Comment("Delete plots when a player is banned") public static boolean BAN_DELETER = false; @Comment("Delete plots when a player is banned") public static boolean BAN_DELETER = false;
@Comment("Prevent possibly unsafe blocks from being used in plot components") @Comment({"Prevent possibly unsafe blocks from being used in plot components", "Can be bypassed with `/plot debugallowunsafe`"})
public static boolean PREVENT_UNSAFE = true; public static boolean PREVENT_UNSAFE = true;
} }
} }

View File

@ -48,7 +48,17 @@ Suggestions are welcome! We have a separate issue tracker for suggestions, that
* [HoloPlots](https://www.spigotmc.org/resources/holoplots.4880/) * [HoloPlots](https://www.spigotmc.org/resources/holoplots.4880/)
# Sponsors # Sponsors
<p align="center"><a href="https://www.jetbrains.com/idea/" title="IntelliJ IDEA"><img height="75" src="https://i.imgur.com/xa2XsRN.png"/></a></p> <p align="center"><a href="https://www.jetbrains.com/idea/" title="IntelliJ IDEA"><img height="75" src="https://i.imgur.com/xa2XsRN.png"/></a><br>
<p align="center"><a href="https://www.athion.net/" title="Athion"><img height="150" src="https://i.imgur.com/Z4E1Hcb.png"/></a></p> IntelliJ IDEA is a Java integrated development environment (IDE) for developing computer software. It is developed by <a href="https://jetbrains.com">JetBrains</a> and our top used development tool. Every aspect of IntelliJ IDEA is specifically designed to maximize developer productivity.
<p align="center"><a href="https://www.buildersrefuge.com/" title="Builder's Refuge"><img height="150" src="https://i.imgur.com/mjT5Ogz.png"/></a></p> Together, the powerful static code analysis and ergonomic design make development not only productive but also an enjoyable experience.</p>
<p align="center"><a href="https://ajgaming.net/" title="AJGaming Network"><img height="120" src="https://ajgaming.net/images/AJGaming.png"/></a></p> <p align="center"><a href="https://www.yourkit.com/java/profiler/" title="YourKit Java Profiler"><img height="75" src="https://www.yourkit.com/images/yklogo.png"/></a><br>
YourKit supports open source projects with innovative and intelligent tools for monitoring and profiling Java and .NET applications.
YourKit is the creator of <a href="https://www.yourkit.com/java/profiler/">YourKit Java Profiler</a>, <a href="https://www.yourkit.com/.net/profiler/">YourKit .NET Profiler</a>, and <a href="https://www.yourkit.com/youmonitor/">YourKit YouMonitor</a>. We are using YourKit to profile the performance of our plugins.</p>
<p align="center"><a href="https://www.athion.net/" title="Athion"><img height="150" src="https://i.imgur.com/Z4E1Hcb.png"/></a><br>
<a href="https://athion.net">Athion</a> is the result of the merging of two of the oldest creative servers around in the community Mithrintia and Pwego-Insomnia fusing together to perfect a creative experience like no other to develop and harness your skills.</p>
<p align="center"><a href="https://www.buildersrefuge.com/" title="Builder's Refuge"><img height="150" src="https://i.imgur.com/mjT5Ogz.png"/></a><br>
Welcome to the <a href="https://www.buildersrefuge.com/">Builders's Refuge</a>. The refuge is a passion project we started to accommodate professional Minecraft builders who are looking for a personal or commercial space to build and create art. We offer premium services at no charge along with a network of other builders and resources to help you become successful.
</p>
<p align="center"><a href="https://ajgaming.net/" title="AJGaming Network"><img height="120" src="https://ajgaming.net/images/AJGaming.png"/></a><br>
The <a href="https://ajgaming.net/">AJGaming Network</a> is a modded and vanilla network. Either delve into magic on our magic servers, fight your enemies on our hardcore PvP modpacks or have a good time on our vanilla servers. The mods for our modpacks are handpicked by suggestions from our community making sure we can crate packs you love to play.
</p>

View File

@ -11,7 +11,7 @@ buildscript {
} }
configurations.all { configurations.all {
resolutionStrategy { resolutionStrategy {
force("org.ow2.asm:asm:7.1") force("org.ow2.asm:asm:7.2")
force("org.jetbrains:annotations:17.0.0") force("org.jetbrains:annotations:17.0.0")
} }
} }
@ -75,7 +75,7 @@ subprojects {
because("Minecraft uses Guava 21 as of 1.13") because("Minecraft uses Guava 21 as of 1.13")
} }
compileOnly("org.jetbrains:annotations:17.0.0") compileOnly("org.jetbrains:annotations:17.0.0")
compileClasspath("org.projectlombok:lombok:1.18.8") compileClasspath("org.projectlombok:lombok:1.18.10")
testCompileOnly("org.projectlombok:lombok:1.18.8") testCompileOnly("org.projectlombok:lombok:1.18.8")
annotationProcessor("org.projectlombok:lombok:1.18.8") annotationProcessor("org.projectlombok:lombok:1.18.8")
testAnnotationProcessor("org.projectlombok:lombok:1.18.8") testAnnotationProcessor("org.projectlombok:lombok:1.18.8")