Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
624adbf
Add basic implementation for world folder creation
thomasmny Jun 16, 2025
3880858
Continue work on world folders
thomasmny Jun 17, 2025
9e11895
Change folder behaviour
thomasmny Jun 17, 2025
dfdbb4e
Only allow worlds to be added to folders of the same navigator catego…
thomasmny Jun 17, 2025
16d52ce
Use `WorldPermissionsImpl.of(buildWorld)` for permissions where world…
thomasmny Jun 17, 2025
f15c8be
Add permissions to folders, add the ability to alter folder icons
thomasmny Jun 17, 2025
0752ca4
Fix permission check sometimes being inverted
thomasmny Jun 17, 2025
6d3916f
Only display folders to player which they can view
thomasmny Jun 17, 2025
f48ae89
Add command to delete empty folders
thomasmny Jun 17, 2025
d8c9854
Fix world info item being displayed at the wrong position
thomasmny Jun 17, 2025
e1e3fee
Fix circular loading on startup
thomasmny Jun 19, 2025
8411689
Fix inventory click listener not being registered when using pagination
thomasmny Jun 19, 2025
000ffcd
Fix player skull textures not being set
thomasmny Jun 19, 2025
4c15859
Fix deletion cancellation item misalignment
thomasmny Jun 19, 2025
d6167f7
Automatically add world to folder if created in one
thomasmny Jun 19, 2025
ded1368
Perform world sorting on folders as well
thomasmny Jun 19, 2025
a726f37
Allow folders to override world project
thomasmny Jun 19, 2025
5d0c3f9
Remove world from folder on deletion
thomasmny Jun 19, 2025
4d41150
Add permission checks to folder subcommands
thomasmny Jun 24, 2025
b13e4bf
Fix `/worlds import` tab complete suggesting already imported worlds
thomasmny Jun 24, 2025
2bc0366
Store folder creator
thomasmny Jun 24, 2025
3bd5bbe
Only suggest folder subcommands which the player has permission for
thomasmny Jun 24, 2025
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
8 changes: 4 additions & 4 deletions buildsystem-api/javadoc/overview.html
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
<body>
<p>
BuildSystem is a utility plugin targeted towards build-teams.
It allows worlds to be easily managed and also provides handy tools to assist with building.
BuildSystem is a utility plugin targeted towards build-teams.
It allows worlds to be easily managed and also provides handy tools to assist with building.
</p>
<h1>Useful Links</h1>
<ul>
<li><a target="_top" href="https://buildsystem.eintosti.de">Project Website</a></li>
<li><a target="_top" href="https://github.com/thomasmny/BuildSystem">Source Code</a></li>
<li><a target="_top" href="https://buildsystem.eintosti.de">Project Website</a></li>
<li><a target="_top" href="https://github.com/thomasmny/BuildSystem">Source Code</a></li>
</ul>
</body>
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@

/**
* The BuildSystem API.
*
* @since 3.0.0
*/
public interface BuildSystem {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@

/**
* Provides static access to the {@link BuildSystem} API.
*
* @since 3.0.0
*/
public class BuildSystemProvider {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@

/**
* Represents a {@link BuildWorld} related event.
*
* @since 3.0.0
*/
public class BuildWorldEvent extends Event {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@

/**
* Called when a {@link BuildWorld} is loaded.
*
* @since 3.0.0
*/
public class BuildWorldLoadEvent extends BuildWorldEvent implements Cancellable {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@

/**
* Called after a {@link BuildWorld} has loaded.
*
* @since 3.0.0
*/
public class BuildWorldPostLoadEvent extends BuildWorldEvent {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@

/**
* Called after a {@link BuildWorld} has unloaded.
*
* @since 3.0.0
*/
public class BuildWorldPostUnloadEvent extends BuildWorldEvent {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@

/**
* Called when a {@link BuildWorld} is unloaded.
*
* @since 3.0.0
*/
public class BuildWorldUnloadEvent extends BuildWorldEvent implements Cancellable {

Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,11 @@
*/
package de.eintosti.buildsystem.api.navigator.settings;

/**
* Represents the type of the navigator.
*
* @since 3.0.0
*/
public enum NavigatorType {
OLD,
NEW;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,11 @@

import de.eintosti.buildsystem.api.world.BuildWorld;

/**
* Interface for managing the display settings of worlds in the navigator.
*
* @since 3.0.0
*/
public interface WorldDisplay {

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,11 @@
import java.util.function.Predicate;
import org.jetbrains.annotations.ApiStatus.Internal;

/**
* Interface for a world filter that restricts which {@link BuildWorld}s are shown to a user in the navigator.
*
* @since 3.0.0
*/
public interface WorldFilter {

enum Mode {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,11 @@

import org.jetbrains.annotations.ApiStatus.Internal;

/**
* Represents the sorting options for worlds in the navigator.
*
* @since 3.0.0
*/
public enum WorldSort {

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,13 @@
*/
package de.eintosti.buildsystem.api.player;

import de.eintosti.buildsystem.api.navigator.settings.NavigatorInventoryType;
import de.eintosti.buildsystem.api.player.settings.Settings;
import de.eintosti.buildsystem.api.world.BuildWorld;
import de.eintosti.buildsystem.api.world.display.NavigatorCategory;
import java.util.UUID;
import javax.annotation.Nullable;
import org.bukkit.Location;
import org.bukkit.entity.Player;

import java.util.UUID;
import org.jetbrains.annotations.ApiStatus.Internal;

public interface BuildPlayer {
Expand Down Expand Up @@ -110,19 +109,19 @@ public interface BuildPlayer {
void setPreviousLocation(Location location);

/**
* Gets the {@link NavigatorInventoryType} the player last looked at.
* Gets the {@link NavigatorCategory} the player last looked at.
*
* @return The last looked navigator inventory type
*/
@Internal
@Nullable
NavigatorInventoryType getLastLookedAt();
NavigatorCategory getLastLookedAt();

/**
* Sets the {@link NavigatorInventoryType} the player last looked at.
* Sets the {@link NavigatorCategory} the player last looked at.
*
* @param type The last looked navigator inventory type
*/
@Internal
void setLastLookedAt(NavigatorInventoryType type);
void setLastLookedAt(NavigatorCategory type);
}
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,11 @@
import org.bukkit.inventory.ItemStack;
import org.jetbrains.annotations.ApiStatus.Internal;

/**
* Interface for managing cached values of a player.
*
* @since 3.0.0
*/
@Internal
public interface CachedValues {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,11 @@
import org.bukkit.Location;
import org.jetbrains.annotations.ApiStatus.Internal;

/**
* Represents a player's logout location, which includes the world name and the location coordinates.
*
* @since 3.0.0
*/
@Internal
public interface LogoutLocation {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,16 +18,17 @@
package de.eintosti.buildsystem.api.player;

import de.eintosti.buildsystem.api.storage.PlayerStorage;
import de.eintosti.buildsystem.api.storage.WorldStorage;
import de.eintosti.buildsystem.api.world.BuildWorld;
import de.eintosti.buildsystem.api.world.data.Visibility;
import org.bukkit.entity.Player;
import org.jetbrains.annotations.Unmodifiable;

import java.util.Collection;
import java.util.Set;
import java.util.UUID;
import org.bukkit.entity.Player;

/**
* Service for managing {@link BuildPlayer}.
*
* @since 3.0.0
*/
public interface PlayerService {

PlayerStorage getPlayerStorage();
Expand All @@ -49,8 +50,7 @@ public interface PlayerService {
boolean isInBuildMode(Player player);

/**
* Gets whether the given player is allowed to create a new {@link BuildWorld}.<br>
* This depends on the following factors:
* Gets whether the given player is allowed to create a new {@link BuildWorld}.<br> This depends on the following factors:
* <ul>
* <li>Is the maximum number of worlds set by the config less than the amount of existing worlds?</li>
* <li>Is the maximum number of worlds created by the player less than the amount of worlds said player is allowed to create?</li>
Expand All @@ -65,8 +65,7 @@ public interface PlayerService {
/**
* Returns the maximum amount of {@link BuildWorld}s a player can create.
* <p>
* If the player has the permission {@code buildsystem.admin}, unlimited worlds can be created.
* Otherwise, there are two different permissions to set said amount:
* If the player has the permission {@code buildsystem.admin}, unlimited worlds can be created. Otherwise, there are two different permissions to set said amount:
* <p>
* To set the maximum of...
* <ul>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@

/**
* A {@link DesignColor} is the color which glass panes are tinted to in different menus.
*
* @since 3.0.0
*/
public enum DesignColor {
RED,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,17 @@

import de.eintosti.buildsystem.api.navigator.settings.NavigatorType;
import de.eintosti.buildsystem.api.navigator.settings.WorldDisplay;
import de.eintosti.buildsystem.api.player.BuildPlayer;
import org.bukkit.GameMode;
import org.bukkit.potion.PotionEffectType;
import org.bukkit.scheduler.BukkitTask;
import org.jetbrains.annotations.ApiStatus.Internal;

/**
* Different settings a {@link BuildPlayer} can modify for themselves.
*
* @since 3.0.0
*/
public interface Settings {

/**
Expand Down
Loading
Loading