Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
a1f648d
Working on new features:
LM-Wolfert May 5, 2025
f4d2c05
Added /plotsystem update location [name] <xmin> <ymin> <zmin> <xmax> …
LM-Wolfert May 10, 2025
24ce454
Record create and update location to share part of the code as it use…
LM-Wolfert May 10, 2025
fd840ea
Before deleting a location make sure there are no players in that world.
LM-Wolfert May 10, 2025
39bd41a
Update outlines when changing plot difficulty, fix bug with location …
LM-Wolfert May 15, 2025
b8dec3f
Don't allow the update location to make the location smaller.
LM-Wolfert May 24, 2025
5d3bf1f
Don't allow plots to be under review or under verification on server …
LM-Wolfert Jun 12, 2025
45ff505
Merge remote-tracking branch 'refs/remotes/origin/release/1.7.1' into…
Jun 22, 2025
570ec51
Merge pull request #12 from BTEUK/feature/recommended-tutorials
george112n Jun 22, 2025
4556ae0
Merge branch 'develop' into release/1.7.1
LM-Wolfert Jun 22, 2025
d502cbd
Merge pull request #10 from BTEUK/release/1.7.1
LM-Wolfert Jun 22, 2025
4b056e3
Start updating the plot system to use the NetworkAPI instead of havin…
LM-Wolfert Oct 24, 2025
dffb5e5
Progress with updating to Network API.
LM-Wolfert Oct 27, 2025
df2bc10
Progress
LM-Wolfert Nov 1, 2025
e3b339b
More progress
LM-Wolfert Nov 2, 2025
c2ad3cd
Complete migration to NetworkAPI.
LM-Wolfert Nov 15, 2025
e8d3328
Up to 1.8.0
LM-Wolfert Nov 30, 2025
a0a3a0c
Small fixes
LM-Wolfert Nov 30, 2025
7e12358
Fixed Create Zone Gui title.
LM-Wolfert Dec 11, 2025
f8bf8f6
Fix sql statement in verification menu.
LM-Wolfert Dec 13, 2025
e2fe43d
When creating a zone, add the creator as owner.
LM-Wolfert Dec 14, 2025
b616cc4
Fixed timers for inactive plots/zones.
LM-Wolfert Dec 18, 2025
30cf9e0
Revert FAWE copy-paste code.
LM-Wolfert Dec 19, 2025
179c7ca
Fixed bug that teleported all players when deleting a location, rathe…
LM-Wolfert Jan 16, 2026
ef27b1a
Added /ps updateflags to set all the flags in a plotsystem location.
LM-Wolfert Jan 24, 2026
bc35735
Merge branch 'develop' into release/1.8.0
LM-Wolfert Feb 11, 2026
91eb3cd
Merge pull request #14 from BuildtheUK/release/1.8.0
LM-Wolfert Feb 11, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
81 changes: 54 additions & 27 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,24 +6,40 @@

<groupId>net.bteuk</groupId>
<artifactId>PlotSystem</artifactId>
<version>1.7.0</version>
<version>1.8.0</version>
<packaging>jar</packaging>

<name>PlotSystem</name>

<properties>
<java.version>21</java.version>
<java-version>21</java-version>
<maven.compiler.release>${java-version}</maven.compiler.release>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

<paper.api.version>1.21.8-R0.1-SNAPSHOT</paper.api.version>

<bteuk.network.version>0c82879524</bteuk.network.version>
<bteuk.lib.version>5958727df9</bteuk.lib.version>

<multiverse.version>5.3.3</multiverse.version>

<lombok.version>1.18.42</lombok.version>
</properties>

<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<version>3.11.0</version>
<configuration>
<release>${java.version}</release>
<annotationProcessorPaths>
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
</path>
</annotationProcessorPaths>
</configuration>
</plugin>
<plugin>
Expand Down Expand Up @@ -68,6 +84,11 @@
<id>papermc</id>
<url>https://repo.papermc.io/repository/maven-public/</url>
</repository>
<repository>
<id>smyler-releases</id>
<name>Smyler's maven repository</name>
<url>https://maven.smyler.net/releases</url>
</repository>
<repository>
<id>sonatype</id>
<url>https://oss.sonatype.org/content/groups/public/</url>
Expand Down Expand Up @@ -95,7 +116,7 @@
<dependency>
<groupId>com.intellectualsites.bom</groupId>
<artifactId>bom-newest</artifactId>
<version>1.37</version>
<version>1.55</version>
<scope>import</scope>
<type>pom</type>
</dependency>
Expand All @@ -106,16 +127,33 @@
<dependency>
<groupId>io.papermc.paper</groupId>
<artifactId>paper-api</artifactId>
<version>1.21.4-R0.1-SNAPSHOT</version>
<version>${paper.api.version}</version>
<scope>provided</scope>
</dependency>

<dependency>
<groupId>com.github.BTEUK</groupId>
<artifactId>Network</artifactId>
<version>c8a9ff8b97</version>
<groupId>com.github.BTEUK.Network</groupId>
<artifactId>api</artifactId>
<version>${bteuk.network.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.github.BTEUK.Network</groupId>
<artifactId>papercore</artifactId>
<version>${bteuk.network.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.github.BTEUK.BTEUKLib</groupId>
<artifactId>Minecraft</artifactId>
<version>${bteuk.lib.version}</version>
</dependency>

<dependency>
<groupId>net.buildtheearth.terraminusminus</groupId>
<artifactId>terraminusminus-core</artifactId>
<version>2.0.0-1.21.4</version>
</dependency>

<dependency>
<groupId>com.fastasyncworldedit</groupId>
Expand All @@ -137,35 +175,30 @@
<dependency>
<groupId>com.sk89q.worldguard</groupId>
<artifactId>worldguard-bukkit</artifactId>
<version>7.0.12</version>
<version>7.0.14</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-dbcp2</artifactId>
<version>2.9.0</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.13.0</version>
<version>2.20.0</version>
</dependency>
<dependency>
<groupId>com.onarandombox.multiversecore</groupId>
<artifactId>Multiverse-Core</artifactId>
<version>4.3.11</version>
<groupId>org.mvplugins.multiverse.core</groupId>
<artifactId>multiverse-core</artifactId>
<version>${multiverse.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.34</version>
<version>${lombok.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.github.decentsoftware-eu</groupId>
<artifactId>decentholograms</artifactId>
<version>2.8.11</version>
<version>2.9.7</version>
<scope>provided</scope>
</dependency>

Expand All @@ -175,11 +208,5 @@
<version>5.9.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>5.4.0</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
124 changes: 72 additions & 52 deletions src/main/java/net/bteuk/plotsystem/PlotSystem.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,27 @@
import io.papermc.paper.plugin.lifecycle.event.LifecycleEventManager;
import io.papermc.paper.plugin.lifecycle.event.types.LifecycleEvents;
import lombok.Getter;
import net.bteuk.network.Network;
import net.bteuk.minecraft.gui.GuiListener;
import net.bteuk.minecraft.gui.GuiManager;
import net.bteuk.network.api.NetworkAPI;
import net.bteuk.network.lib.utils.ChatUtils;
import net.bteuk.network.sql.GlobalSQL;
import net.bteuk.network.sql.PlotSQL;
import net.bteuk.plotsystem.commands.ClaimCommand;
import net.bteuk.plotsystem.commands.LocationCommand;
import net.bteuk.plotsystem.commands.PlotSystemCommand;
import net.bteuk.plotsystem.commands.ReviewCommand;
import net.bteuk.plotsystem.commands.ToggleOutlines;
import net.bteuk.plotsystem.events.ClaimEvent;
import net.bteuk.plotsystem.events.CloseEvent;
import net.bteuk.plotsystem.events.DeleteEvent;
import net.bteuk.plotsystem.events.JoinEvent;
import net.bteuk.plotsystem.events.LeaveEvent;
import net.bteuk.plotsystem.events.OutlinesEvent;
import net.bteuk.plotsystem.events.PlotsystemKickEvent;
import net.bteuk.plotsystem.events.PlotsystemTeleportEvent;
import net.bteuk.plotsystem.events.RetractEvent;
import net.bteuk.plotsystem.events.ReviewEvent;
import net.bteuk.plotsystem.events.SubmitEvent;
import net.bteuk.plotsystem.events.VerifyEvent;
import net.bteuk.plotsystem.listeners.ClaimEnter;
import net.bteuk.plotsystem.listeners.CloseInventory;
import net.bteuk.plotsystem.listeners.HologramClickEvent;
Expand All @@ -24,14 +37,17 @@
import net.bteuk.plotsystem.utils.PlotHologram;
import net.bteuk.plotsystem.utils.User;
import net.bteuk.plotsystem.utils.plugins.Multiverse;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.configuration.serialization.ConfigurationSerializable;
import org.bukkit.configuration.serialization.ConfigurationSerialization;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.plugin.Plugin;
import org.bukkit.plugin.RegisteredServiceProvider;
import org.bukkit.plugin.java.JavaPlugin;
import org.jetbrains.annotations.NotNull;

import java.util.ArrayList;
import java.util.List;
Expand All @@ -51,10 +67,6 @@ public class PlotSystem extends JavaPlugin {
// Returns an instance of the plugin.
@Getter
static PlotSystem instance;
// SQL Classes.
public GlobalSQL globalSQL;
public PlotSQL plotSQL;
public Timers timers;
// Listeners
public ClaimEnter claimEnter;
// Returns the User ArrayList.
Expand All @@ -67,6 +79,10 @@ public class PlotSystem extends JavaPlugin {
@Getter
private boolean isClosing = false;

private GuiManager guiManager;

private PlotHelper plotHelper;;

@Override
public void onEnable() {

Expand All @@ -93,55 +109,48 @@ public void onEnable() {

}

// Set databases from Network dependency.
globalSQL = Network.getInstance().getGlobalSQL();
plotSQL = Network.getInstance().getPlotSQL();

// Set the server name from config.
SERVER_NAME = CONFIG.getString("server_name");

// If the server is in the database.
if (globalSQL.hasRow("SELECT name FROM server_data WHERE name='" + SERVER_NAME + "';")) {
// Add save world if it does not yet exist.
// Save world name is in config.
// This implies first launch with plugin.
if (!Multiverse.hasWorld(CONFIG.getString("save_world"))) {
// Create save world.
if (!Multiverse.createVoidWorld(CONFIG.getString("save_world"))) {

// Add save world if it does not yet exist.
// Save world name is in config.
// This implies first launch with plugin.
if (!Multiverse.hasWorld(CONFIG.getString("save_world"))) {
// Create save world.
if (!Multiverse.createVoidWorld(CONFIG.getString("save_world"))) {
LOGGER.warning("Failed to create save world!");

LOGGER.warning("Failed to create save world!");

}
}

LOGGER.info("Enabling Plugin");
enablePlugin();

} else {

// If the server is not in the database the network plugin was not successful.
LOGGER.severe("Server is not in database, check that the Network plugin is working correctly.");

}

LOGGER.info("Enabling Plugin");
enablePlugin();
}

// Server enabling procedure when the config has been set up.
public void enablePlugin() {

// Get the NetworkAPI.
RegisteredServiceProvider<NetworkAPI> networkProvider = Bukkit.getServicesManager().getRegistration(NetworkAPI.class);
if (networkProvider == null) {
LOGGER.severe("Failed to get NetworkAPI, disabling plugin!");
return;
}
final NetworkAPI networkAPI = networkProvider.getProvider();

this.guiManager = new GuiManager();
new GuiListener(guiManager).register(this);
this.plotHelper = new PlotHelper(networkAPI.getPlotAPI());

// Register hologram click event.
new HologramClickEvent(this);

// Initialise the plot helper.
PlotHelper.init(plotSQL);

// General Setup
// Create list of users.
users = new ArrayList<>();

// Remove all plots 'under review' on this server.
plotSQL.update(
"UPDATE plot_data AS pd INNER JOIN location_data AS ld ON ld.name=pd.location SET pd.status='submitted' WHERE pd.status='reviewing' AND ld.server='" + SERVER_NAME + "';");
networkAPI.getPlotAPI().resetPlotSubmissions(SERVER_NAME);

// Create gui item
gui = new ItemStack(Material.NETHER_STAR);
Expand All @@ -152,10 +161,6 @@ public void enablePlugin() {
// Outlines, this will be accessed from other classes, so it must have a getter and setter.
outlines = new Outlines();

// Setup Timers
timers = new Timers(this, globalSQL);
timers.startTimers();

// Create bungeecord channel
this.getServer().getMessenger().registerOutgoingPluginChannel(this, "BungeeCord");

Expand All @@ -166,31 +171,46 @@ public void enablePlugin() {
selectionTool.setItemMeta(meta);

// Listeners
new JoinServer(this, globalSQL, plotSQL);
new JoinServer(this, networkAPI, plotHelper);
new QuitServer(this);
new PlayerInteract(instance, plotSQL);
new PlayerInteract(instance, networkAPI.getPlotAPI());
new CloseInventory(this);

// Events
networkAPI.getEventAPI().registerEvent("claim", new ClaimEvent(networkAPI, guiManager, plotHelper));
networkAPI.getEventAPI().registerEvent("close", new CloseEvent(networkAPI.getPlotAPI(), networkAPI.getChat()));
networkAPI.getEventAPI().registerEvent("retract", new RetractEvent(networkAPI.getPlotAPI(), plotHelper, networkAPI.getChat()));
networkAPI.getEventAPI().registerEvent("plotsystemteleport", new PlotsystemTeleportEvent(networkAPI.getPlotAPI(), networkAPI.getEventAPI(), networkAPI.getServerAPI()));
networkAPI.getEventAPI().registerEvent("review", new ReviewEvent(networkAPI, plotHelper, guiManager));
networkAPI.getEventAPI().registerEvent("delete", new DeleteEvent(networkAPI.getPlotAPI(), plotHelper, networkAPI.getChat()));
networkAPI.getEventAPI().registerEvent("submit", new SubmitEvent(networkAPI.getPlotAPI(), plotHelper, networkAPI.getGlobalSQL(), networkAPI.getChat()));
networkAPI.getEventAPI().registerEvent("leave", new LeaveEvent(networkAPI.getPlotAPI(), plotHelper, networkAPI.getChat()));
networkAPI.getEventAPI().registerEvent("join", new JoinEvent(networkAPI.getPlotAPI(), plotHelper, networkAPI.getChat(), networkAPI.getGlobalSQL()));
networkAPI.getEventAPI().registerEvent("plotsystemkick", new PlotsystemKickEvent(networkAPI.getPlotAPI(), networkAPI.getChat(), networkAPI.getGlobalSQL()));
networkAPI.getEventAPI().registerEvent("outlines", new OutlinesEvent(networkAPI.getPlotAPI()));
networkAPI.getEventAPI().registerEvent("verify", new VerifyEvent(networkAPI, plotHelper, guiManager));

// Deals with tracking where players are in relation to plots.
claimEnter = new ClaimEnter(this, plotSQL, globalSQL);
claimEnter = new ClaimEnter(this, networkAPI.getPlotAPI(), networkAPI.getGlobalSQL());

// Commands
LifecycleEventManager<Plugin> manager = instance.getLifecycleManager();
LifecycleEventManager<@NotNull Plugin> manager = instance.getLifecycleManager();
manager.registerEventHandler(LifecycleEvents.COMMANDS, event -> {
final Commands commands = event.registrar();

commands.register("plotsystem", "Deals will all plotsystem related commands.", List.of("ps"), new PlotSystemCommand(globalSQL, plotSQL));
commands.register("claim", "Used to claim the plot you're standing in.", List.of("claim"), new ClaimCommand(plotSQL));
commands.register("toggleoutlines", "Toggles the visibility of outlines.", new ToggleOutlines(this));
commands.register("plotsystem", "Deals will all plotsystem related commands.", List.of("ps"), new PlotSystemCommand(networkAPI.getPlotAPI(), plotHelper, networkAPI.getCoordinateAPI(), guiManager, new LocationCommand(networkAPI)));
commands.register("claim", "Used to claim the plot you're standing in.", List.of("claim"), new ClaimCommand(networkAPI, guiManager, plotHelper));
commands.register("toggleoutlines", "Toggles the visibility of outlines.", new ToggleOutlines(this, networkAPI.getPlotAPI()));
commands.register("review", "Command for editing selections to reviewing categories during the reviewing process.", new ReviewCommand(this));

});

// Get all active plots (unclaimed, claimed, submitted, reviewing) and add holograms.
List<Integer> active_plots = plotSQL.getIntList(
"SELECT pd.id FROM plot_data AS pd INNER JOIN location_data AS ld ON ld.name=pd.location WHERE pd.status IN ('unclaimed','claimed','submitted','reviewing') AND " +
"ld.server='" + SERVER_NAME + "';");
active_plots.forEach(plot -> PlotHelper.addPlotHologram(new PlotHologram(plot)));
List<Integer> active_plots = networkAPI.getPlotAPI().getActivePlots(SERVER_NAME);
active_plots.forEach(plot -> plotHelper.addPlotHologram(new PlotHologram(plot, networkAPI.getPlotAPI(), networkAPI.getCoordinateAPI())));

// Setup Timers
Timers.registerTimers(networkAPI, plotHelper, outlines, users);
}

public void onDisable() {
Expand Down
Loading