mirror of
https://github.com/IntellectualSites/PlotSquared.git
synced 2025-07-03 22:24:43 +02:00
Compare commits
2 Commits
docs/ploti
...
feature/ed
Author | SHA1 | Date | |
---|---|---|---|
ef88851ac9 | |||
2d0b3316e7 |
@ -37,6 +37,7 @@ import com.plotsquared.bukkit.listener.EntityEventListener;
|
||||
import com.plotsquared.bukkit.listener.EntitySpawnListener;
|
||||
import com.plotsquared.bukkit.listener.PaperListener;
|
||||
import com.plotsquared.bukkit.listener.PlayerEventListener;
|
||||
import com.plotsquared.bukkit.listener.PlayerEventListener120;
|
||||
import com.plotsquared.bukkit.listener.ProjectileEventListener;
|
||||
import com.plotsquared.bukkit.listener.ServerListener;
|
||||
import com.plotsquared.bukkit.listener.SingleWorldListener;
|
||||
@ -50,7 +51,6 @@ import com.plotsquared.bukkit.util.BukkitUtil;
|
||||
import com.plotsquared.bukkit.util.BukkitWorld;
|
||||
import com.plotsquared.bukkit.util.SetGenCB;
|
||||
import com.plotsquared.bukkit.util.TranslationUpdateManager;
|
||||
import com.plotsquared.bukkit.util.UpdateUtility;
|
||||
import com.plotsquared.bukkit.util.task.BukkitTaskManager;
|
||||
import com.plotsquared.bukkit.util.task.PaperTimeConverter;
|
||||
import com.plotsquared.bukkit.util.task.SpigotTimeConverter;
|
||||
@ -303,9 +303,11 @@ public final class BukkitPlatform extends JavaPlugin implements Listener, PlotPl
|
||||
|
||||
this.serverLocale = Locale.forLanguageTag(Settings.Enabled_Components.DEFAULT_LOCALE);
|
||||
|
||||
/* TODO Enable update checker before v7 is released to GA
|
||||
if (PremiumVerification.isPremium() && Settings.Enabled_Components.UPDATE_NOTIFICATIONS) {
|
||||
injector.getInstance(UpdateUtility.class).updateChecker();
|
||||
}
|
||||
*/
|
||||
|
||||
if (PremiumVerification.isPremium()) {
|
||||
LOGGER.info("PlotSquared version licensed to Spigot user {}", getUserID());
|
||||
@ -357,6 +359,9 @@ public final class BukkitPlatform extends JavaPlugin implements Listener, PlotPl
|
||||
|
||||
if (Settings.Enabled_Components.EVENTS) {
|
||||
getServer().getPluginManager().registerEvents(injector().getInstance(PlayerEventListener.class), this);
|
||||
if ((serverVersion()[1] == 20 && serverVersion()[2] >= 1) || serverVersion()[1] > 20) {
|
||||
getServer().getPluginManager().registerEvents(injector().getInstance(PlayerEventListener120.class), this);
|
||||
}
|
||||
getServer().getPluginManager().registerEvents(injector().getInstance(BlockEventListener.class), this);
|
||||
if (serverVersion()[1] >= 17) {
|
||||
getServer().getPluginManager().registerEvents(injector().getInstance(BlockEventListener117.class), this);
|
||||
@ -550,7 +555,7 @@ public final class BukkitPlatform extends JavaPlugin implements Listener, PlotPl
|
||||
this.startMetrics();
|
||||
|
||||
if (Settings.Enabled_Components.WORLDS) {
|
||||
TaskManager.getPlatformImplementation().taskRepeat(this::unload, TaskTime.seconds(10L));
|
||||
TaskManager.getPlatformImplementation().taskRepeat(this::unload, TaskTime.seconds(1L));
|
||||
try {
|
||||
singleWorldListener = injector().getInstance(SingleWorldListener.class);
|
||||
Bukkit.getPluginManager().registerEvents(singleWorldListener, this);
|
||||
|
@ -1872,5 +1872,4 @@ public class PlayerEventListener implements Listener {
|
||||
event.setCancelled(true);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -0,0 +1,62 @@
|
||||
/*
|
||||
* 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.bukkit.listener;
|
||||
|
||||
import org.bukkit.block.Sign;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.player.PlayerSignOpenEvent;
|
||||
import com.plotsquared.bukkit.util.BukkitUtil;
|
||||
import com.plotsquared.core.location.Location;
|
||||
import com.plotsquared.core.plot.Plot;
|
||||
import com.plotsquared.core.plot.PlotArea;
|
||||
import com.plotsquared.core.plot.flag.implementations.EditSignFlag;
|
||||
import com.plotsquared.core.util.PlotFlagUtil;
|
||||
|
||||
/**
|
||||
* For events since 1.20.1
|
||||
*/
|
||||
public class PlayerEventListener120 implements Listener {
|
||||
|
||||
@EventHandler(ignoreCancelled = true)
|
||||
@SuppressWarnings({"removal", "UnstableApiUsage"}) // thanks Paper, thanks Spigot
|
||||
public void onPlayerSignOpenEvent(PlayerSignOpenEvent event) {
|
||||
Sign sign = event.getSign();
|
||||
Location location = BukkitUtil.adapt(sign.getLocation());
|
||||
PlotArea area = location.getPlotArea();
|
||||
if (area == null) {
|
||||
return;
|
||||
}
|
||||
Plot plot = location.getOwnedPlot();
|
||||
if (plot == null) {
|
||||
if (PlotFlagUtil.isAreaRoadFlagsAndFlagEquals(area, EditSignFlag.class, false)) {
|
||||
event.setCancelled(true);
|
||||
}
|
||||
return;
|
||||
}
|
||||
if (plot.isAdded(event.getPlayer().getUniqueId())) {
|
||||
return; // allow for added players
|
||||
}
|
||||
if (!plot.getFlag(EditSignFlag.class)) {
|
||||
plot.debug(event.getPlayer().getName() + " could not edit the sign because of edit-sign = false");
|
||||
event.setCancelled(true);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@ -44,10 +44,6 @@ public class TranslationUpdateManager {
|
||||
String minheightReplacement = "minheight";
|
||||
String maxHeight = "maxHeight";
|
||||
String maxheightReplacement = "maxheight";
|
||||
String usedGrants = "usedGrants";
|
||||
String usedGrantsReplacement = "used_grants";
|
||||
String remainingGrants = "remainingGrants";
|
||||
String rremainingGrantsReplacement = "remaining_grants";
|
||||
|
||||
try (Stream<Path> paths = Files.walk(Paths.get(PlotSquared.platform().getDirectory().toPath().resolve("lang").toUri()))) {
|
||||
paths
|
||||
@ -57,8 +53,6 @@ public class TranslationUpdateManager {
|
||||
replaceInFile(p, suggestCommand, suggestCommandReplacement);
|
||||
replaceInFile(p, minHeight, minheightReplacement);
|
||||
replaceInFile(p, maxHeight, maxheightReplacement);
|
||||
replaceInFile(p, usedGrants, usedGrantsReplacement);
|
||||
replaceInFile(p, remainingGrants, rremainingGrantsReplacement);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
76
CODE_OF_CONDUCT.md
Normal file
76
CODE_OF_CONDUCT.md
Normal file
@ -0,0 +1,76 @@
|
||||
# Contributor Covenant Code of Conduct
|
||||
|
||||
## Our Pledge
|
||||
|
||||
In the interest of fostering an open and welcoming environment, we as
|
||||
contributors and maintainers pledge to making participation in our project and
|
||||
our community a harassment-free experience for everyone, regardless of age, body
|
||||
size, disability, ethnicity, sex characteristics, gender identity and expression,
|
||||
level of experience, education, socio-economic status, nationality, personal
|
||||
appearance, race, religion, or sexual identity and orientation.
|
||||
|
||||
## Our Standards
|
||||
|
||||
Examples of behavior that contributes to creating a positive environment
|
||||
include:
|
||||
|
||||
* Using welcoming and inclusive language
|
||||
* Being respectful of differing viewpoints and experiences
|
||||
* Gracefully accepting constructive criticism
|
||||
* Focusing on what is best for the community
|
||||
* Showing empathy towards other community members
|
||||
|
||||
Examples of unacceptable behavior by participants include:
|
||||
|
||||
* The use of sexualized language or imagery and unwelcome sexual attention or
|
||||
advances
|
||||
* Trolling, insulting/derogatory comments, and personal or political attacks
|
||||
* Public or private harassment
|
||||
* Publishing others' private information, such as a physical or electronic
|
||||
address, without explicit permission
|
||||
* Other conduct which could reasonably be considered inappropriate in a
|
||||
professional setting
|
||||
|
||||
## Our Responsibilities
|
||||
|
||||
Project maintainers are responsible for clarifying the standards of acceptable
|
||||
behavior and are expected to take appropriate and fair corrective action in
|
||||
response to any instances of unacceptable behavior.
|
||||
|
||||
Project maintainers have the right and responsibility to remove, edit, or
|
||||
reject comments, commits, code, wiki edits, issues, and other contributions
|
||||
that are not aligned to this Code of Conduct, or to ban temporarily or
|
||||
permanently any contributor for other behaviors that they deem inappropriate,
|
||||
threatening, offensive, or harmful.
|
||||
|
||||
## Scope
|
||||
|
||||
This Code of Conduct applies both within project spaces and in public spaces
|
||||
when an individual is representing the project or its community. Examples of
|
||||
representing a project or community include using an official project e-mail
|
||||
address, posting via an official social media account, or acting as an appointed
|
||||
representative at an online or offline event. Representation of a project may be
|
||||
further defined and clarified by project maintainers.
|
||||
|
||||
## Enforcement
|
||||
|
||||
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
||||
reported by contacting the project team at contact<at>intellectualsites.com. All
|
||||
complaints will be reviewed and investigated and will result in a response that
|
||||
is deemed necessary and appropriate to the circumstances. The project team is
|
||||
obligated to maintain confidentiality with regard to the reporter of an incident.
|
||||
Further details of specific enforcement policies may be posted separately.
|
||||
|
||||
Project maintainers who do not follow or enforce the Code of Conduct in good
|
||||
faith may face temporary or permanent repercussions as determined by other
|
||||
members of the project's leadership.
|
||||
|
||||
## Attribution
|
||||
|
||||
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
|
||||
available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
|
||||
|
||||
[homepage]: https://www.contributor-covenant.org
|
||||
|
||||
For answers to common questions about this code of conduct, see
|
||||
https://www.contributor-covenant.org/faq
|
@ -1281,7 +1281,7 @@ public class PlotSquared {
|
||||
}
|
||||
|
||||
/**
|
||||
* Set up the database connection.
|
||||
* Setup the database connection.
|
||||
*/
|
||||
public void setupDatabase() {
|
||||
try {
|
||||
|
@ -131,8 +131,8 @@ public class Auto extends SubCommand {
|
||||
player.sendMessage(
|
||||
TranslatableCaption.of("economy.removed_granted_plot"),
|
||||
TagResolver.builder()
|
||||
.tag("used_grants", Tag.inserting(Component.text(grantedPlots - left)))
|
||||
.tag("remaining_grants", Tag.inserting(Component.text(left)))
|
||||
.tag("usedGrants", Tag.inserting(Component.text(grantedPlots - left)))
|
||||
.tag("remainingGrants", Tag.inserting(Component.text(left)))
|
||||
.build()
|
||||
);
|
||||
}
|
||||
|
@ -186,8 +186,8 @@ public class Claim extends SubCommand {
|
||||
player.sendMessage(
|
||||
TranslatableCaption.of("economy.removed_granted_plot"),
|
||||
TagResolver.builder()
|
||||
.tag("used_grants", Tag.inserting(Component.text(grants - 1)))
|
||||
.tag("remaining_grants", Tag.inserting(Component.text(grants)))
|
||||
.tag("usedGrants", Tag.inserting(Component.text(grants - 1)))
|
||||
.tag("remainingGrants", Tag.inserting(Component.text(grants)))
|
||||
.build()
|
||||
);
|
||||
}
|
||||
|
@ -96,7 +96,6 @@ public class DebugRoadRegen extends SubCommand {
|
||||
PlotArea area = location.getPlotArea();
|
||||
if (area == null) {
|
||||
player.sendMessage(TranslatableCaption.of("errors.not_in_plot_world"));
|
||||
return false;
|
||||
}
|
||||
Plot plot = player.getCurrentPlot();
|
||||
if (plot == null) {
|
||||
|
@ -77,10 +77,6 @@ public class HybridUtils {
|
||||
private static final Logger LOGGER = LogManager.getLogger("PlotSquared/" + HybridUtils.class.getSimpleName());
|
||||
private static final BlockState AIR = BlockTypes.AIR.getDefaultState();
|
||||
|
||||
/**
|
||||
* Deprecated and likely to be removed in a future release.
|
||||
*/
|
||||
@Deprecated(forRemoval = true, since = "7.0.0")
|
||||
public static HybridUtils manager;
|
||||
public static Set<BlockVector2> regions;
|
||||
public static int height;
|
||||
|
@ -25,9 +25,9 @@ import java.util.UUID;
|
||||
public interface OfflinePlotPlayer extends PermissionHolder {
|
||||
|
||||
/**
|
||||
* Returns the UUID of the player.
|
||||
* Gets the {@code UUID} of this player
|
||||
*
|
||||
* @return the UUID of the player
|
||||
* @return the player {@link UUID}
|
||||
*/
|
||||
UUID getUUID();
|
||||
|
||||
@ -39,9 +39,9 @@ public interface OfflinePlotPlayer extends PermissionHolder {
|
||||
long getLastPlayed();
|
||||
|
||||
/**
|
||||
* Returns the name of the player.
|
||||
* Gets the name of this player.
|
||||
*
|
||||
* @return the name of the player
|
||||
* @return the player name
|
||||
*/
|
||||
String getName();
|
||||
|
||||
|
@ -273,9 +273,8 @@ public abstract class PlotPlayer<P> implements CommandCaller, OfflinePlotPlayer,
|
||||
return this.meta == null ? null : this.meta.remove(key);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Returns the name of the player.
|
||||
* This player's name.
|
||||
*
|
||||
* @return the name of the player
|
||||
*/
|
||||
|
@ -26,8 +26,8 @@ import java.util.Iterator;
|
||||
import java.util.NoSuchElementException;
|
||||
|
||||
/**
|
||||
* The PlotId class represents a Plot's x and y coordinates within a {@link PlotArea}. PlotId x,y values do not correspond to Block locations.
|
||||
* A PlotId instance can be created using the {@link #of(int, int)} method or parsed from a string using the {@link #fromString(String)} method.
|
||||
* Plot (X,Y) tuples for plot locations
|
||||
* within a plot area
|
||||
*/
|
||||
public final class PlotId {
|
||||
|
||||
@ -36,10 +36,10 @@ public final class PlotId {
|
||||
private final int hash;
|
||||
|
||||
/**
|
||||
* Constructs a new PlotId with the given x and y coordinates.
|
||||
* PlotId class (PlotId x,y values do not correspond to Block locations)
|
||||
*
|
||||
* @param x the x-coordinate of the plot
|
||||
* @param y the y-coordinate of the plot
|
||||
* @param x The plot x coordinate
|
||||
* @param y The plot y coordinate
|
||||
*/
|
||||
private PlotId(final int x, final int y) {
|
||||
this.x = x;
|
||||
@ -48,11 +48,11 @@ public final class PlotId {
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a new PlotId instance with the specified x and y coordinates.
|
||||
* Create a new plot ID instance
|
||||
*
|
||||
* @param x the x-coordinate of the plot
|
||||
* @param y the y-coordinate of the plot
|
||||
* @return a new PlotId instance with the specified x and y coordinates
|
||||
* @param x The plot x coordinate
|
||||
* @param y The plot y coordinate
|
||||
* @return a new PlotId at x,y
|
||||
*/
|
||||
public static @NonNull PlotId of(final int x, final int y) {
|
||||
return new PlotId(x, y);
|
||||
@ -74,13 +74,10 @@ public final class PlotId {
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a PlotId object from the given string, or null if the string is invalid.
|
||||
* The string should be in the format "x;y" where x and y are integers.
|
||||
* The string can also contain any combination of the characters ";_,."
|
||||
* as delimiters.
|
||||
* Attempt to parse a plot ID from a string
|
||||
*
|
||||
* @param string the string to parse
|
||||
* @return a PlotId object parsed from the given string, or null if the string is invalid
|
||||
* @param string ID string
|
||||
* @return Plot ID, or {@code null} if none could be parsed
|
||||
*/
|
||||
public static @Nullable PlotId fromStringOrNull(final @NonNull String string) {
|
||||
final String[] parts = string.split("[;_,.]");
|
||||
@ -98,39 +95,39 @@ public final class PlotId {
|
||||
return of(x, y);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Returns a new PlotId instance from the given hash.
|
||||
* Gets the PlotId from the HashCode<br>
|
||||
* Note: Only accurate for small x,z values (short)
|
||||
*
|
||||
* @param hash the hash to unpair
|
||||
* @return a new PlotId instance
|
||||
* @param hash ID hash
|
||||
* @return Plot ID
|
||||
*/
|
||||
public static @NonNull PlotId unpair(final int hash) {
|
||||
return PlotId.of(hash >> 16, hash & 0xFFFF);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the x-coordinate of this Plot ID.
|
||||
* Get the ID X component
|
||||
*
|
||||
* @return the x-coordinate of this Plot ID
|
||||
* @return X component
|
||||
*/
|
||||
public int getX() {
|
||||
return this.x;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the y-coordinate of this Plot ID.
|
||||
* Get the ID Y component
|
||||
*
|
||||
* @return the y-coordinate of this Plot ID
|
||||
* @return Y component
|
||||
*/
|
||||
public int getY() {
|
||||
return this.y;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the next Plot ID for claiming purposes based on the current Plot ID.
|
||||
* Get the next plot ID for claiming purposes
|
||||
*
|
||||
* @return the next Plot ID
|
||||
* @return Next plot ID
|
||||
*/
|
||||
public @NonNull PlotId getNextId() {
|
||||
final int absX = Math.abs(x);
|
||||
@ -162,11 +159,10 @@ public final class PlotId {
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a new Plot ID in the specified relative direction based on the
|
||||
* current Plot ID.
|
||||
* Get the PlotId in a relative direction
|
||||
*
|
||||
* @param direction the direction in which to get the relative Plot ID
|
||||
* @return the relative Plot ID
|
||||
* @param direction Direction
|
||||
* @return Relative plot ID
|
||||
*/
|
||||
public @NonNull PlotId getRelative(final @NonNull Direction direction) {
|
||||
return switch (direction) {
|
||||
@ -197,11 +193,10 @@ public final class PlotId {
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a string representation of this Plot ID in the format "x;y".
|
||||
* Get a String representation of the plot ID where the
|
||||
* components are separated by ";"
|
||||
*
|
||||
* <p> The format is {@code x + ";" + y}
|
||||
*
|
||||
* @return a string representation of this Plot ID
|
||||
* @return {@code x + ";" + y}
|
||||
*/
|
||||
@Override
|
||||
public @NonNull String toString() {
|
||||
@ -209,40 +204,41 @@ public final class PlotId {
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a string representation of this Plot ID with the specified separator.
|
||||
* <p>
|
||||
* The format is {@code x + separator + y}
|
||||
* Get a String representation of the plot ID where the
|
||||
* components are separated by a specified string
|
||||
*
|
||||
* @param separator the separator to use between the X and Y coordinates
|
||||
* @return a string representation of this Plot ID with the specified separator
|
||||
* @param separator Separator
|
||||
* @return {@code x + separator + y}
|
||||
*/
|
||||
public @NonNull String toSeparatedString(String separator) {
|
||||
return this.getX() + separator + this.getY();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a string representation of this Plot ID in the format "x,y".
|
||||
* Get a String representation of the plot ID where the
|
||||
* components are separated by ","
|
||||
*
|
||||
* @return a string representation of this Plot ID
|
||||
* @return {@code x + "," + y}
|
||||
*/
|
||||
public @NonNull String toCommaSeparatedString() {
|
||||
return this.getX() + "," + this.getY();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a string representation of this Plot ID in the format "x_y".
|
||||
* Get a String representation of the plot ID where the
|
||||
* components are separated by "_"
|
||||
*
|
||||
* @return a string representation of this Plot ID
|
||||
* @return {@code x + "_" + y}
|
||||
*/
|
||||
|
||||
public @NonNull String toUnderscoreSeparatedString() {
|
||||
return this.getX() + "_" + this.getY();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a string representation of this Plot ID in the format "x-y".
|
||||
* Get a String representation of the plot ID where the
|
||||
* components are separated by "-"
|
||||
*
|
||||
* @return a string representation of this Plot ID
|
||||
* @return {@code x + "-" + y}
|
||||
*/
|
||||
public @NonNull String toDashSeparatedString() {
|
||||
return this.getX() + "-" + this.getY();
|
||||
@ -254,10 +250,6 @@ public final class PlotId {
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* An iterator that iterates over a range of {@link PlotId}s.
|
||||
* The range is defined by a start and end {@link PlotId}.
|
||||
*/
|
||||
public static final class PlotRangeIterator implements Iterator<PlotId>, Iterable<PlotId> {
|
||||
|
||||
private final PlotId start;
|
||||
@ -273,13 +265,6 @@ public final class PlotId {
|
||||
this.y = this.start.getY();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a new {@link PlotRangeIterator} that iterates over the range of Plots between the specified start and end Plots (inclusive).
|
||||
*
|
||||
* @param start the starting Plot of the range
|
||||
* @param end the ending Plot of the range
|
||||
* @return a new {@link PlotRangeIterator} that iterates over the range of Plots between the specified start and end Plots (inclusive)
|
||||
*/
|
||||
public static PlotRangeIterator range(final @NonNull PlotId start, final @NonNull PlotId end) {
|
||||
return new PlotRangeIterator(start, end);
|
||||
}
|
||||
|
@ -67,25 +67,14 @@ public class PlotItemStack {
|
||||
return this.type;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the number of items in this stack.
|
||||
* Valid values range from 1-255.
|
||||
*
|
||||
* @return the amount of items in this stack
|
||||
*/
|
||||
public int getAmount() {
|
||||
return amount;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the given name of this stack of items. The name is displayed when
|
||||
* hovering over the item.
|
||||
*
|
||||
* @return the given name of this stack of items
|
||||
*/
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public String[] getLore() {
|
||||
return lore;
|
||||
}
|
||||
|
@ -891,6 +891,7 @@ public final class PlotModificationManager {
|
||||
}
|
||||
|
||||
/**
|
||||
* /**
|
||||
* Sets components such as border, wall, floor.
|
||||
* (components are generator specific)
|
||||
*
|
||||
|
@ -18,25 +18,9 @@
|
||||
*/
|
||||
package com.plotsquared.core.plot;
|
||||
|
||||
/**
|
||||
* The different types of weather that can be set for a Plot.
|
||||
*/
|
||||
public enum PlotWeather {
|
||||
|
||||
/**
|
||||
* Rainy weather conditions
|
||||
*/
|
||||
RAIN,
|
||||
/**
|
||||
* Clear weather conditions
|
||||
*/
|
||||
CLEAR,
|
||||
/**
|
||||
* Use the weather of the world the plot is in
|
||||
*/
|
||||
WORLD,
|
||||
/**
|
||||
* Turn off weather for the plot
|
||||
*/
|
||||
OFF
|
||||
}
|
||||
|
@ -41,6 +41,7 @@ import com.plotsquared.core.plot.flag.implementations.DeviceInteractFlag;
|
||||
import com.plotsquared.core.plot.flag.implementations.DisablePhysicsFlag;
|
||||
import com.plotsquared.core.plot.flag.implementations.DoneFlag;
|
||||
import com.plotsquared.core.plot.flag.implementations.DropProtectionFlag;
|
||||
import com.plotsquared.core.plot.flag.implementations.EditSignFlag;
|
||||
import com.plotsquared.core.plot.flag.implementations.EntityCapFlag;
|
||||
import com.plotsquared.core.plot.flag.implementations.EntityChangeBlockFlag;
|
||||
import com.plotsquared.core.plot.flag.implementations.ExplosionFlag;
|
||||
@ -151,6 +152,7 @@ public final class GlobalFlagContainer extends FlagContainer {
|
||||
this.addFlag(DeviceInteractFlag.DEVICE_INTERACT_FALSE);
|
||||
this.addFlag(DisablePhysicsFlag.DISABLE_PHYSICS_FALSE);
|
||||
this.addFlag(DropProtectionFlag.DROP_PROTECTION_FALSE);
|
||||
this.addFlag(EditSignFlag.EDIT_SIGN_FALSE);
|
||||
this.addFlag(EntityChangeBlockFlag.ENTITY_CHANGE_BLOCK_FALSE);
|
||||
this.addFlag(ExplosionFlag.EXPLOSION_FALSE);
|
||||
this.addFlag(ForcefieldFlag.FORCEFIELD_FALSE);
|
||||
|
@ -0,0 +1,38 @@
|
||||
/*
|
||||
* 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 EditSignFlag extends BooleanFlag<EditSignFlag> {
|
||||
public static final EditSignFlag EDIT_SIGN_TRUE = new EditSignFlag(true);
|
||||
public static final EditSignFlag EDIT_SIGN_FALSE = new EditSignFlag(false);
|
||||
|
||||
private EditSignFlag(final boolean value) {
|
||||
super(value, TranslatableCaption.of("flags.flag_description_edit_sign"));
|
||||
}
|
||||
|
||||
@Override
|
||||
protected EditSignFlag flagOf(@NonNull final Boolean value) {
|
||||
return value ? EDIT_SIGN_TRUE : EDIT_SIGN_FALSE;
|
||||
}
|
||||
|
||||
}
|
@ -124,7 +124,7 @@
|
||||
"economy.cannot_afford_merge": "<prefix><red>You cannot afford to merge the plots. It costs <gold><money></gold>.</red>",
|
||||
"economy.added_balance": "<prefix><gold><money> </gold><gray>has been added to your balance.</gray>",
|
||||
"economy.removed_balance": "<prefix><gold><money> </gold><gray>has been taken from your balance.</gray>",
|
||||
"economy.removed_granted_plot": "<prefix><gray>You used <used_grants> plot grant(s), you've got </gray><gold><remaining_grants></gold> <gray>left.</gray>",
|
||||
"economy.removed_granted_plot": "<prefix><gray>You used <usedGrants> plot grant(s), you've got </gray><gold><remainingGrants></gold> <gray>left.</gray>",
|
||||
"setup.choose_generator": "<gold>What generator do you want?</gold>",
|
||||
"setup.setup_not_started": "<prefix><gold>No setup started.</gold>",
|
||||
"setup.setup_init": "<prefix><gold>Usage: </gold><gray>/plot setup <value></gray>",
|
||||
@ -554,6 +554,7 @@
|
||||
"flags.flag_description_device_interact": "<gray>Set to `true` to allow devices to be interacted with in the plot.</gray>",
|
||||
"flags.flag_description_disable_physics": "<gray>Set to `true` to disable block physics in the plot.</gray>",
|
||||
"flags.flag_description_drop_protection": "<gray>Set to `true` to prevent dropped items from being picked up by non-members of the plot.</gray>",
|
||||
"flags.flag_description_edit_sign": "<gray>Set to `true` to allow editing signs in the plot.</gray>",
|
||||
"flags.flag_description_feed": "<gray>Specify an interval in seconds and an optional amount by which the players will be fed (amount is 1 by default).</gray>",
|
||||
"flags.flag_description_forcefield": "<gray>Set to `true` to enable member forcefield in the plot.</gray>",
|
||||
"flags.flag_description_grass_grow": "<gray>Set to `false` to prevent grass from growing within the plot.</gray>",
|
||||
|
@ -1,7 +1,7 @@
|
||||
import com.diffplug.gradle.spotless.SpotlessPlugin
|
||||
import com.github.jengelman.gradle.plugins.shadow.ShadowPlugin
|
||||
import java.net.URI
|
||||
import xyz.jpenilla.runpaper.task.RunServer
|
||||
import java.net.URI
|
||||
|
||||
plugins {
|
||||
java
|
||||
@ -21,7 +21,7 @@ plugins {
|
||||
}
|
||||
|
||||
group = "com.intellectualsites.plotsquared"
|
||||
version = "7.0.1-SNAPSHOT"
|
||||
version = "7.0.0-SNAPSHOT"
|
||||
|
||||
if (!File("$rootDir/.git").exists()) {
|
||||
logger.lifecycle("""
|
||||
@ -218,16 +218,18 @@ tasks.getByName<Jar>("jar") {
|
||||
enabled = false
|
||||
}
|
||||
|
||||
val supportedVersions = listOf("1.16.5", "1.17", "1.17.1", "1.18.2", "1.19", "1.19.1", "1.19.2", "1.19.3", "1.19.4", "1.20")
|
||||
val supportedVersions = listOf("1.16.5", "1.17.1", "1.18.2", "1.19.4", "1.20.1")
|
||||
tasks {
|
||||
supportedVersions.forEach {
|
||||
register<RunServer>("runServer-$it") {
|
||||
minecraftVersion(it)
|
||||
pluginJars(*project(":plotsquared-bukkit").getTasksByName("shadowJar", false).map { (it as Jar).archiveFile }
|
||||
supportedVersions.forEach { version ->
|
||||
register<RunServer>("runServer-$version") {
|
||||
minecraftVersion(version)
|
||||
pluginJars(*project(":plotsquared-bukkit")
|
||||
.getTasksByName("shadowJar", false)
|
||||
.map { (it as Jar).archiveFile }
|
||||
.toTypedArray())
|
||||
jvmArgs("-DPaper.IgnoreJavaVersion=true", "-Dcom.mojang.eula.agree=true")
|
||||
group = "run paper"
|
||||
runDirectory.set(file("run-$it"))
|
||||
runDirectory.set(file("run-$version"))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -13,10 +13,10 @@ log4j = "2.19.0"
|
||||
|
||||
# Plugins
|
||||
worldedit = "7.2.15"
|
||||
fawe = "2.7.1"
|
||||
fawe = "2.7.0"
|
||||
placeholderapi = "2.11.3"
|
||||
luckperms = "5.4"
|
||||
essentialsx = "2.20.1"
|
||||
essentialsx = "2.20.0"
|
||||
mvdwapi = "3.1.1"
|
||||
|
||||
# Third party
|
||||
@ -30,12 +30,12 @@ bstats = "3.0.2"
|
||||
paperlib = "1.0.8"
|
||||
informative-annotations = "1.3"
|
||||
vault = "1.7.1"
|
||||
serverlib = "2.3.4"
|
||||
serverlib = "2.3.1"
|
||||
|
||||
# Gradle plugins
|
||||
shadow = "8.1.1"
|
||||
grgit = "4.1.1"
|
||||
spotless = "6.21.0"
|
||||
spotless = "6.20.0"
|
||||
nexus = "1.3.0"
|
||||
runPaper = "2.1.0"
|
||||
|
||||
|
BIN
gradle/wrapper/gradle-wrapper.jar
vendored
BIN
gradle/wrapper/gradle-wrapper.jar
vendored
Binary file not shown.
2
gradle/wrapper/gradle-wrapper.properties
vendored
2
gradle/wrapper/gradle-wrapper.properties
vendored
@ -1,6 +1,6 @@
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-bin.zip
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-8.2.1-bin.zip
|
||||
networkTimeout=10000
|
||||
validateDistributionUrl=true
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
|
3
gradlew
vendored
3
gradlew
vendored
@ -83,8 +83,7 @@ done
|
||||
# This is normally unused
|
||||
# shellcheck disable=SC2034
|
||||
APP_BASE_NAME=${0##*/}
|
||||
# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
|
||||
APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit
|
||||
APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit
|
||||
|
||||
# Use the maximum available, or set MAX_FD != -1 to use that value.
|
||||
MAX_FD=maximum
|
||||
|
Reference in New Issue
Block a user