Adjust to better align with code specs

This commit is contained in:
Paul Reilly 2023-05-21 21:47:10 -05:00
parent 288e32b47d
commit 49ad109671
36 changed files with 273 additions and 246 deletions

View File

@ -22,7 +22,7 @@ public final class BanUID implements BanID
final Instant instant = Instant.now(); final Instant instant = Instant.now();
String stringBuilder = String.valueOf(instant.get(ChronoField.DAY_OF_YEAR)) + // The first three numbers between 001 -> 365 final String stringBuilder = String.valueOf(instant.get(ChronoField.DAY_OF_YEAR)) + // The first three numbers between 001 -> 365
instant.get(ChronoField.HOUR_OF_DAY) + // next two numbers between 00 -> 23 instant.get(ChronoField.HOUR_OF_DAY) + // next two numbers between 00 -> 23
instant.get(ChronoField.MINUTE_OF_HOUR) + // next two numbers between 00 -> 59 instant.get(ChronoField.MINUTE_OF_HOUR) + // next two numbers between 00 -> 59
instant.get(ChronoField.MILLI_OF_SECOND); // last three numbers between 000 -> 999 instant.get(ChronoField.MILLI_OF_SECOND); // last three numbers between 000 -> 999

View File

@ -7,7 +7,7 @@ public class UserDataUpdateEvent extends FEvent
{ {
private final UserData data; private final UserData data;
public UserDataUpdateEvent(UserData data) public UserDataUpdateEvent(final UserData data)
{ {
this.data = data; this.data = data;
} }

View File

@ -27,12 +27,12 @@ public class FreedomGroup implements Group
private final Set<Node> permissions; private final Set<Node> permissions;
private final PermissionAttachment attachment; private final PermissionAttachment attachment;
public FreedomGroup(Component name, public FreedomGroup(final Component name,
Component prefix, final Component prefix,
Component abbreviation, final Component abbreviation,
int weight, final int weight,
boolean isDefault, final boolean isDefault,
boolean isHidden) final boolean isHidden)
{ {
this.name = name; this.name = name;
this.prefix = prefix; this.prefix = prefix;
@ -94,21 +94,21 @@ public class FreedomGroup implements Group
} }
@Override @Override
public boolean addPermission(Node node) public boolean addPermission(final Node node)
{ {
return permissions().add(node); return permissions().add(node);
} }
@Override @Override
public boolean removePermission(Node node) public boolean removePermission(final Node node)
{ {
return permissions().remove(node); return permissions().remove(node);
} }
@Override @Override
public boolean isPermissionSet(@NotNull String name) public boolean isPermissionSet(@NotNull final String name)
{ {
Node node = permissions().stream() final Node node = permissions().stream()
.filter(n -> n.key().equalsIgnoreCase(name)) .filter(n -> n.key().equalsIgnoreCase(name))
.findFirst() .findFirst()
.orElse(null); .orElse(null);
@ -117,9 +117,9 @@ public class FreedomGroup implements Group
} }
@Override @Override
public boolean isPermissionSet(@NotNull Permission perm) public boolean isPermissionSet(@NotNull final Permission perm)
{ {
Node node = permissions() final Node node = permissions()
.stream() .stream()
.filter(n -> n.bukkit().equals(perm)) .filter(n -> n.bukkit().equals(perm))
.findFirst() .findFirst()
@ -129,9 +129,9 @@ public class FreedomGroup implements Group
} }
@Override @Override
public boolean hasPermission(@NotNull String name) public boolean hasPermission(@NotNull final String name)
{ {
Node node = permissions().stream() final Node node = permissions().stream()
.filter(n -> n.key().equalsIgnoreCase(name)) .filter(n -> n.key().equalsIgnoreCase(name))
.findFirst() .findFirst()
.orElse(null); .orElse(null);
@ -140,9 +140,9 @@ public class FreedomGroup implements Group
} }
@Override @Override
public boolean hasPermission(@NotNull Permission perm) public boolean hasPermission(@NotNull final Permission perm)
{ {
Node node = permissions() final Node node = permissions()
.stream() .stream()
.filter(n -> n.bukkit().equals(perm)) .filter(n -> n.bukkit().equals(perm))
.findFirst() .findFirst()
@ -164,33 +164,33 @@ public class FreedomGroup implements Group
* @return This group's PermissionAttachment. * @return This group's PermissionAttachment.
*/ */
@Override @Override
public @NotNull PermissionAttachment addAttachment(@NotNull Plugin plugin, @NotNull String name, boolean value) public @NotNull PermissionAttachment addAttachment(@NotNull final Plugin plugin, @NotNull final String name, final boolean value)
{ {
attachment.setPermission(name, value); attachment.setPermission(name, value);
return attachment; return attachment;
} }
@Override @Override
public @NotNull PermissionAttachment addAttachment(@NotNull Plugin plugin) public @NotNull PermissionAttachment addAttachment(@NotNull final Plugin plugin)
{ {
return new PermissionAttachment(plugin, this); return new PermissionAttachment(plugin, this);
} }
@Override @Override
public @Nullable PermissionAttachment addAttachment(@NotNull Plugin plugin, @NotNull String name, boolean value, int ticks) public @Nullable PermissionAttachment addAttachment(@NotNull final Plugin plugin, @NotNull final String name, final boolean value, final int ticks)
{ {
attachment.setPermission(name, value); attachment.setPermission(name, value);
return attachment; return attachment;
} }
@Override @Override
public @Nullable PermissionAttachment addAttachment(@NotNull Plugin plugin, int ticks) public @Nullable PermissionAttachment addAttachment(@NotNull final Plugin plugin, final int ticks)
{ {
return new PermissionAttachment(plugin, this); return new PermissionAttachment(plugin, this);
} }
@Override @Override
public void removeAttachment(@NotNull PermissionAttachment attachment) public void removeAttachment(@NotNull final PermissionAttachment attachment)
{ {
// This method shouldn't do anything, because we don't want to remove our attachment. // This method shouldn't do anything, because we don't want to remove our attachment.
} }
@ -217,7 +217,7 @@ public class FreedomGroup implements Group
@Override @Override
public boolean isOp() public boolean isOp()
{ {
Node node = permissions() final Node node = permissions()
.stream() .stream()
.filter(n -> n.equals(DefaultNodes.OP)) .filter(n -> n.equals(DefaultNodes.OP))
.findFirst() .findFirst()
@ -227,7 +227,7 @@ public class FreedomGroup implements Group
} }
@Override @Override
public void setOp(boolean value) public void setOp(final boolean value)
{ {
if (value) if (value)
{ {

View File

@ -16,7 +16,11 @@ import org.bukkit.plugin.Plugin;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import java.util.*; import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import java.util.UUID;
/** /**
* The superinterface User extends PermissionHolder, * The superinterface User extends PermissionHolder,
@ -32,13 +36,13 @@ public class FreedomUser implements User
private final String NOT_ONLINE = "Player is not online"; private final String NOT_ONLINE = "Player is not online";
private final UserData userData; private final UserData userData;
public FreedomUser(Player player) public FreedomUser(final Player player)
{ {
this.uuid = player.getUniqueId(); this.uuid = player.getUniqueId();
this.permissions = new HashSet<>(); this.permissions = new HashSet<>();
this.displayName = player.displayName(); this.displayName = player.displayName();
Datura datura = CommonsBase.getInstance() final Datura datura = CommonsBase.getInstance()
.getRegistrations() .getRegistrations()
.getModuleRegistry() .getModuleRegistry()
.getModule(Datura.class) .getModule(Datura.class)
@ -77,15 +81,15 @@ public class FreedomUser implements User
} }
@Override @Override
public boolean addPermission(Node node) public boolean addPermission(final Node node)
{ {
PermissionAttachment attachment = addAttachment(CommonsBase.getInstance(), node.key(), node.value()); final PermissionAttachment attachment = addAttachment(CommonsBase.getInstance(), node.key(), node.value());
bukkitAttachments.put(node, attachment); bukkitAttachments.put(node, attachment);
return permissions().add(node); return permissions().add(node);
} }
@Override @Override
public boolean removePermission(Node node) public boolean removePermission(final Node node)
{ {
removeAttachment(bukkitAttachments.get(node)); removeAttachment(bukkitAttachments.get(node));
bukkitAttachments.remove(node); bukkitAttachments.remove(node);
@ -105,37 +109,37 @@ public class FreedomUser implements User
} }
@Override @Override
public boolean isPermissionSet(@NotNull String name) public boolean isPermissionSet(@NotNull final String name)
{ {
Player player = Bukkit.getPlayer(uuid); final Player player = Bukkit.getPlayer(uuid);
return player != null && player.isPermissionSet(name); return player != null && player.isPermissionSet(name);
} }
@Override @Override
public boolean isPermissionSet(@NotNull Permission perm) public boolean isPermissionSet(@NotNull final Permission perm)
{ {
Player player = Bukkit.getPlayer(uuid); final Player player = Bukkit.getPlayer(uuid);
return player != null && player.isPermissionSet(perm); return player != null && player.isPermissionSet(perm);
} }
@Override @Override
public boolean hasPermission(@NotNull String name) public boolean hasPermission(@NotNull final String name)
{ {
Player player = Bukkit.getPlayer(uuid); final Player player = Bukkit.getPlayer(uuid);
return player != null && player.hasPermission(name); return player != null && player.hasPermission(name);
} }
@Override @Override
public boolean hasPermission(@NotNull Permission perm) public boolean hasPermission(@NotNull final Permission perm)
{ {
Player player = Bukkit.getPlayer(uuid); final Player player = Bukkit.getPlayer(uuid);
return player != null && player.hasPermission(perm); return player != null && player.hasPermission(perm);
} }
@Override @Override
public @NotNull PermissionAttachment addAttachment(@NotNull Plugin plugin, @NotNull String name, boolean value) public @NotNull PermissionAttachment addAttachment(@NotNull final Plugin plugin, @NotNull final String name, final boolean value)
{ {
Player player = Bukkit.getPlayer(uuid); final Player player = Bukkit.getPlayer(uuid);
if (player != null) if (player != null)
{ {
return player.addAttachment(plugin, name, value); return player.addAttachment(plugin, name, value);
@ -145,9 +149,9 @@ public class FreedomUser implements User
} }
@Override @Override
public @NotNull PermissionAttachment addAttachment(@NotNull Plugin plugin) public @NotNull PermissionAttachment addAttachment(@NotNull final Plugin plugin)
{ {
Player player = Bukkit.getPlayer(uuid); final Player player = Bukkit.getPlayer(uuid);
if (player != null) if (player != null)
{ {
return player.addAttachment(plugin); return player.addAttachment(plugin);
@ -157,9 +161,9 @@ public class FreedomUser implements User
} }
@Override @Override
public @Nullable PermissionAttachment addAttachment(@NotNull Plugin plugin, @NotNull String name, boolean value, int ticks) public @Nullable PermissionAttachment addAttachment(@NotNull final Plugin plugin, @NotNull final String name, final boolean value, final int ticks)
{ {
Player player = Bukkit.getPlayer(uuid); final Player player = Bukkit.getPlayer(uuid);
if (player != null) if (player != null)
{ {
return player.addAttachment(plugin, name, value, ticks); return player.addAttachment(plugin, name, value, ticks);
@ -169,9 +173,9 @@ public class FreedomUser implements User
} }
@Override @Override
public @Nullable PermissionAttachment addAttachment(@NotNull Plugin plugin, int ticks) public @Nullable PermissionAttachment addAttachment(@NotNull final Plugin plugin, final int ticks)
{ {
Player player = Bukkit.getPlayer(uuid); final Player player = Bukkit.getPlayer(uuid);
if (player != null) if (player != null)
{ {
return player.addAttachment(plugin, ticks); return player.addAttachment(plugin, ticks);
@ -181,9 +185,9 @@ public class FreedomUser implements User
} }
@Override @Override
public void removeAttachment(@NotNull PermissionAttachment attachment) public void removeAttachment(@NotNull final PermissionAttachment attachment)
{ {
Player player = Bukkit.getPlayer(uuid); final Player player = Bukkit.getPlayer(uuid);
if (player != null) if (player != null)
{ {
player.removeAttachment(attachment); player.removeAttachment(attachment);
@ -195,7 +199,7 @@ public class FreedomUser implements User
@Override @Override
public void recalculatePermissions() public void recalculatePermissions()
{ {
Player player = Bukkit.getPlayer(uuid); final Player player = Bukkit.getPlayer(uuid);
if (player != null) if (player != null)
{ {
player.recalculatePermissions(); player.recalculatePermissions();
@ -207,7 +211,7 @@ public class FreedomUser implements User
@Override @Override
public @NotNull Set<PermissionAttachmentInfo> getEffectivePermissions() public @NotNull Set<PermissionAttachmentInfo> getEffectivePermissions()
{ {
Player player = Bukkit.getPlayer(uuid); final Player player = Bukkit.getPlayer(uuid);
if (player != null) if (player != null)
{ {
return player.getEffectivePermissions(); return player.getEffectivePermissions();
@ -223,7 +227,7 @@ public class FreedomUser implements User
} }
@Override @Override
public void setOp(boolean value) public void setOp(final boolean value)
{ {
if (value) if (value)
{ {

View File

@ -21,7 +21,7 @@ record PermissionNode(String key,
} }
@Override @Override
public boolean compare(Node node) public boolean compare(final Node node)
{ {
return node.key().equalsIgnoreCase(key()) return node.key().equalsIgnoreCase(key())
&& node.value() == value() && node.value() == value()

View File

@ -14,42 +14,42 @@ public class PermissionNodeBuilder implements NodeBuilder
private boolean negated = false; private boolean negated = false;
@Override @Override
public NodeBuilder key(String key) public NodeBuilder key(final String key)
{ {
this.key = key; this.key = key;
return this; return this;
} }
@Override @Override
public NodeBuilder value(boolean value) public NodeBuilder value(final boolean value)
{ {
this.value = value; this.value = value;
return this; return this;
} }
@Override @Override
public NodeBuilder expiry(long expiry) public NodeBuilder expiry(final long expiry)
{ {
this.expiry = expiry; this.expiry = expiry;
return this; return this;
} }
@Override @Override
public NodeBuilder type(NodeType type) public NodeBuilder type(final NodeType type)
{ {
this.type = type; this.type = type;
return this; return this;
} }
@Override @Override
public NodeBuilder wildcard(boolean wildcard) public NodeBuilder wildcard(final boolean wildcard)
{ {
this.wildcard = wildcard; this.wildcard = wildcard;
return this; return this;
} }
@Override @Override
public NodeBuilder negated(boolean negated) public NodeBuilder negated(final boolean negated)
{ {
this.negated = negated; this.negated = negated;
return this; return this;

View File

@ -12,7 +12,11 @@ import org.bukkit.event.Listener;
import org.bukkit.event.block.BlockBreakEvent; import org.bukkit.event.block.BlockBreakEvent;
import org.bukkit.event.player.PlayerQuitEvent; import org.bukkit.event.player.PlayerQuitEvent;
import java.util.*; import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import java.util.UUID;
import java.util.function.DoubleUnaryOperator; import java.util.function.DoubleUnaryOperator;
public class Cager extends Service public class Cager extends Service
@ -34,18 +38,18 @@ public class Cager extends Service
* *
* @param uuid The UUID of the player to cage. * @param uuid The UUID of the player to cage.
*/ */
public void cagePlayer(UUID uuid) public void cagePlayer(final UUID uuid)
{ {
Player player = Bukkit.getPlayer(uuid); final Player player = Bukkit.getPlayer(uuid);
if (player == null) return; if (player == null) return;
cagedPlayers.add(uuid); cagedPlayers.add(uuid);
cageLocations.put(uuid, createCage(player.getLocation(), Material.GLASS)); cageLocations.put(uuid, createCage(player.getLocation(), Material.GLASS));
} }
public void cagePlayer(UUID uuid, Material material) public void cagePlayer(final UUID uuid, final Material material)
{ {
Player player = Bukkit.getPlayer(uuid); final Player player = Bukkit.getPlayer(uuid);
if (player == null) return; if (player == null) return;
cagedPlayers.add(uuid); cagedPlayers.add(uuid);
@ -57,10 +61,10 @@ public class Cager extends Service
* *
* @param uuid The UUID of the player to uncage. * @param uuid The UUID of the player to uncage.
*/ */
public void uncagePlayer(UUID uuid) public void uncagePlayer(final UUID uuid)
{ {
cagedPlayers.remove(uuid); cagedPlayers.remove(uuid);
Location location = cageLocations.get(uuid); final Location location = cageLocations.get(uuid);
createCage(location, Material.AIR); // Remove the cage (set all blocks to air). createCage(location, Material.AIR); // Remove the cage (set all blocks to air).
@ -78,12 +82,12 @@ public class Cager extends Service
@Override @Override
public void tick() public void tick()
{ {
for (UUID uuid : cagedPlayers) for (final UUID uuid : cagedPlayers)
{ {
Player player = Bukkit.getPlayer(uuid); final Player player = Bukkit.getPlayer(uuid);
if (player == null) continue; if (player == null) continue;
Location cageLocation = getCageLocation(player); final Location cageLocation = getCageLocation(player);
final boolean inside; final boolean inside;
if (!player.getWorld().equals(cageLocation.getWorld())) if (!player.getWorld().equals(cageLocation.getWorld()))
@ -108,7 +112,7 @@ public class Cager extends Service
* @param player The player to check. * @param player The player to check.
* @return Whether the player is caged. * @return Whether the player is caged.
*/ */
public Location getCageLocation(Player player) public Location getCageLocation(final Player player)
{ {
return cageLocations.get(player.getUniqueId()); return cageLocations.get(player.getUniqueId());
} }
@ -119,16 +123,16 @@ public class Cager extends Service
* We use the {@link Shaper} class to generate the cube, which allows us to define * We use the {@link Shaper} class to generate the cube, which allows us to define
* custom shapes using {@link DoubleUnaryOperator}s. * custom shapes using {@link DoubleUnaryOperator}s.
* *
* @param location The location to center the cube around. * @param location The location to center the cube around.
* @param material The material to use for the cube. * @param material The material to use for the cube.
* @return The center location of the cube (the passed location). * @return The center location of the cube (the passed location).
* @see Shaper * @see Shaper
* @see DoubleUnaryOperator * @see DoubleUnaryOperator
*/ */
public Location createCage(Location location, Material material) public Location createCage(final Location location, final Material material)
{ {
Shaper shaper = new Shaper(location.getWorld(), 0.0, 4.0); final Shaper shaper = new Shaper(location.getWorld(), 0.0, 4.0);
List<Location> cubed = new LinkedList<>(); final List<Location> cubed = new LinkedList<>();
cubed.addAll(shaper.generate(5, t -> t, t -> 4.0, t -> t)); cubed.addAll(shaper.generate(5, t -> t, t -> 4.0, t -> t));
cubed.addAll(shaper.generate(5, t -> t, t -> 0.0, t -> t)); cubed.addAll(shaper.generate(5, t -> t, t -> 0.0, t -> t));
cubed.addAll(shaper.generate(5, t -> 0.0, t -> t, t -> t)); cubed.addAll(shaper.generate(5, t -> 0.0, t -> t, t -> t));
@ -136,7 +140,7 @@ public class Cager extends Service
cubed.addAll(shaper.generate(5, t -> t, t -> t, t -> 0.0)); cubed.addAll(shaper.generate(5, t -> t, t -> t, t -> 0.0));
cubed.addAll(shaper.generate(5, t -> t, t -> t, t -> 4.0)); cubed.addAll(shaper.generate(5, t -> t, t -> t, t -> 4.0));
for (Location l : cubed) for (final Location l : cubed)
{ {
location.getWorld().getBlockAt(l).setType(material); location.getWorld().getBlockAt(l).setType(material);
} }
@ -147,7 +151,7 @@ public class Cager extends Service
private final class CageListener implements Listener private final class CageListener implements Listener
{ {
@EventHandler @EventHandler
public void blockBreakEvent(BlockBreakEvent event) public void blockBreakEvent(final BlockBreakEvent event)
{ {
if (cagedPlayers.contains(event.getPlayer().getUniqueId())) if (cagedPlayers.contains(event.getPlayer().getUniqueId()))
{ {
@ -156,7 +160,8 @@ public class Cager extends Service
} }
@EventHandler @EventHandler
public void playerLeaveEvent(PlayerQuitEvent event) { public void playerLeaveEvent(final PlayerQuitEvent event)
{
if (cagedPlayers.contains(event.getPlayer().getUniqueId())) if (cagedPlayers.contains(event.getPlayer().getUniqueId()))
{ {
uncagePlayer(event.getPlayer().getUniqueId()); uncagePlayer(event.getPlayer().getUniqueId());

View File

@ -23,7 +23,7 @@ public class Halter implements Listener
} }
@EventHandler @EventHandler
public void playerMove(PlayerMoveEvent event) public void playerMove(final PlayerMoveEvent event)
{ {
if (haltedPlayers.contains(event.getPlayer().getUniqueId())) if (haltedPlayers.contains(event.getPlayer().getUniqueId()))
{ {

View File

@ -22,7 +22,7 @@ public class Locker extends Service
super("locker-service"); super("locker-service");
} }
public void lock(UUID uuid) public void lock(final UUID uuid)
{ {
lockedPlayers.add(uuid); lockedPlayers.add(uuid);
} }
@ -32,19 +32,19 @@ public class Locker extends Service
{ {
lockedPlayers.removeIf(uuid -> !CommonsBase.getInstance().getServer().getOfflinePlayer(uuid).isOnline()); lockedPlayers.removeIf(uuid -> !CommonsBase.getInstance().getServer().getOfflinePlayer(uuid).isOnline());
for (UUID uuid : lockedPlayers) for (final UUID uuid : lockedPlayers)
{ {
Player player = Bukkit.getPlayer(uuid); final Player player = Bukkit.getPlayer(uuid);
if (player == null) continue; if (player == null) continue;
lockingMethod(player); lockingMethod(player);
} }
} }
private void lockingMethod(@NotNull Player player) private void lockingMethod(@NotNull final Player player)
{ {
double x = player.getLocation().getX(); final double x = player.getLocation().getX();
double z = player.getLocation().getZ(); final double z = player.getLocation().getZ();
if ((x / z % 0.001) < 1) if ((x / z % 0.001) < 1)
{ {

View File

@ -16,12 +16,12 @@ public class DBBan
{ {
private final SQL sql; private final SQL sql;
public DBBan(SQL sql) public DBBan(final SQL sql)
{ {
this.sql = sql; this.sql = sql;
} }
public CompletableFuture<Ban> fromSQL(BanID id) public CompletableFuture<Ban> fromSQL(final BanID id)
{ {
return sql.executeQuery("SELECT * FROM bans WHERE id = ?", id.getID()) return sql.executeQuery("SELECT * FROM bans WHERE id = ?", id.getID())
.thenApplyAsync(result -> .thenApplyAsync(result ->
@ -30,11 +30,11 @@ public class DBBan
{ {
if (result.next()) if (result.next())
{ {
UUID uuid = UUID.fromString(result.getString("uuid")); final UUID uuid = UUID.fromString(result.getString("uuid"));
Instant timestamp = Instant.parse(result.getString("timestamp")); final Instant timestamp = Instant.parse(result.getString("timestamp"));
final Instant expiry; final Instant expiry;
String ex = result.getString("expiry"); final String ex = result.getString("expiry");
if (ex.equals("-1")) if (ex.equals("-1"))
{ {
expiry = null; expiry = null;
@ -58,7 +58,7 @@ public class DBBan
}, CommonsBase.getInstance().getExecutor().getAsync()); }, CommonsBase.getInstance().getExecutor().getAsync());
} }
public void addBan(Ban ban) public void addBan(final Ban ban)
{ {
sql.executeUpdate("INSERT INTO bans (id, uuid, reason, issuer, timestamp, expiry) VALUES (?, ?, ?, ?, ?, ?)", sql.executeUpdate("INSERT INTO bans (id, uuid, reason, issuer, timestamp, expiry) VALUES (?, ?, ?, ?, ?, ?)",
ban.getBanID().getID(), ban.getBanID().getID(),
@ -70,7 +70,7 @@ public class DBBan
); );
} }
public boolean hasEntry(UUID uuid) { public boolean hasEntry(final UUID uuid) {
return sql.executeQuery("SELECT * FROM bans WHERE uuid = ?", uuid.toString()) return sql.executeQuery("SELECT * FROM bans WHERE uuid = ?", uuid.toString())
.thenApplyAsync(result -> .thenApplyAsync(result ->
{ {

View File

@ -3,7 +3,11 @@ package me.totalfreedom.datura.sql;
import me.totalfreedom.base.CommonsBase; import me.totalfreedom.base.CommonsBase;
import me.totalfreedom.sql.SQL; import me.totalfreedom.sql.SQL;
import java.sql.*; import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.concurrent.CompletableFuture; import java.util.concurrent.CompletableFuture;
import java.util.concurrent.CompletionException; import java.util.concurrent.CompletionException;
@ -11,7 +15,7 @@ public class MySQL implements SQL
{ {
private String url = "jdbc:mysql://"; private String url = "jdbc:mysql://";
public MySQL(String host, int port, String database) { public MySQL(final String host, final int port, final String database) {
url += host + ":" + port + "/" + database; url += host + ":" + port + "/" + database;
} }
@ -22,7 +26,7 @@ public class MySQL implements SQL
* @param username The username to add * @param username The username to add
* @param password The password to add * @param password The password to add
*/ */
public void addCredentials(String username, String password) { public void addCredentials(final String username, final String password) {
if (url.contains("?user=")) { if (url.contains("?user=")) {
url = url.split("\\x3f")[0]; url = url.split("\\x3f")[0];
} }
@ -31,7 +35,7 @@ public class MySQL implements SQL
} }
@Override @Override
public CompletableFuture<Connection> getConnection(String url) public CompletableFuture<Connection> getConnection(final String url)
{ {
return CompletableFuture.supplyAsync(() -> { return CompletableFuture.supplyAsync(() -> {
try { try {
@ -44,12 +48,12 @@ public class MySQL implements SQL
} }
@Override @Override
public CompletableFuture<PreparedStatement> prepareStatement(String query, Object... args) public CompletableFuture<PreparedStatement> prepareStatement(final String query, final Object... args)
{ {
return getConnection(url) return getConnection(url)
.thenApplyAsync(connection -> { .thenApplyAsync(connection -> {
try { try {
PreparedStatement statement = connection.prepareStatement(query); final PreparedStatement statement = connection.prepareStatement(query);
for (int i = 0; i < args.length; i++) { for (int i = 0; i < args.length; i++) {
statement.setObject(i + 1, args[i]); statement.setObject(i + 1, args[i]);
} }
@ -62,7 +66,7 @@ public class MySQL implements SQL
} }
@Override @Override
public CompletableFuture<ResultSet> executeQuery(String query, Object... args) public CompletableFuture<ResultSet> executeQuery(final String query, final Object... args)
{ {
return prepareStatement(query, args) return prepareStatement(query, args)
.thenApplyAsync(statement -> { .thenApplyAsync(statement -> {
@ -76,7 +80,7 @@ public class MySQL implements SQL
} }
@Override @Override
public CompletableFuture<Integer> executeUpdate(String query, Object... args) public CompletableFuture<Integer> executeUpdate(final String query, final Object... args)
{ {
return prepareStatement(query, args) return prepareStatement(query, args)
.thenApplyAsync(statement -> { .thenApplyAsync(statement -> {
@ -90,7 +94,7 @@ public class MySQL implements SQL
} }
@Override @Override
public CompletableFuture<Boolean> execute(String query, Object... args) public CompletableFuture<Boolean> execute(final String query, final Object... args)
{ {
return prepareStatement(query, args) return prepareStatement(query, args)
.thenApplyAsync(statement -> { .thenApplyAsync(statement -> {
@ -104,9 +108,9 @@ public class MySQL implements SQL
} }
@Override @Override
public CompletableFuture<Boolean> createTable(String table, String... columns) public CompletableFuture<Boolean> createTable(final String table, final String... columns)
{ {
StringBuilder query = new StringBuilder(); final StringBuilder query = new StringBuilder();
query.append("CREATE TABLE IF NOT EXISTS ? ("); query.append("CREATE TABLE IF NOT EXISTS ? (");
for (int i = 0; i < columns.length; i++) { for (int i = 0; i < columns.length; i++) {

View File

@ -58,7 +58,7 @@ public class SimpleUserData implements UserData
this.caged = caged; this.caged = caged;
} }
public static SimpleUserData fromSQL(SQL sql, String uuid) public static SimpleUserData fromSQL(final SQL sql, final String uuid)
{ {
return sql.executeQuery("SELECT * FROM users WHERE UUID = ?", uuid) return sql.executeQuery("SELECT * FROM users WHERE UUID = ?", uuid)
.thenApplyAsync(result -> .thenApplyAsync(result ->
@ -67,30 +67,30 @@ public class SimpleUserData implements UserData
{ {
if (result.next()) if (result.next())
{ {
String g = result.getString("group"); final String g = result.getString("group");
UUID u = UUID.fromString(uuid); final UUID u = UUID.fromString(uuid);
String username = result.getString("username"); final String username = result.getString("username");
Player player = Bukkit.getPlayer(u); final Player player = Bukkit.getPlayer(u);
if (player == null) if (player == null)
throw new IllegalStateException("Player should be online but they are not!"); throw new IllegalStateException("Player should be online but they are not!");
User user = new FreedomUser(player); final User user = new FreedomUser(player);
Group group = CommonsBase.getInstance() final Group group = CommonsBase.getInstance()
.getRegistrations() .getRegistrations()
.getGroupRegistry() .getGroupRegistry()
.getGroup(g); .getGroup(g);
long playtime = result.getLong("playtime"); final long playtime = result.getLong("playtime");
boolean frozen = result.getBoolean("frozen"); final boolean frozen = result.getBoolean("frozen");
boolean canInteract = result.getBoolean("canInteract"); final boolean canInteract = result.getBoolean("canInteract");
boolean caged = result.getBoolean("caged"); final boolean caged = result.getBoolean("caged");
return new SimpleUserData(u, username, user, group, playtime, frozen, canInteract, caged); return new SimpleUserData(u, username, user, group, playtime, frozen, canInteract, caged);
} }
} catch (SQLException ex) } catch (SQLException ex)
{ {
String sb = "An error occurred while trying to retrieve user data for UUID " + final String sb = "An error occurred while trying to retrieve user data for UUID " +
uuid + uuid +
" from the database." + " from the database." +
"\nCaused by: " + "\nCaused by: " +
@ -102,7 +102,7 @@ public class SimpleUserData implements UserData
.error(sb); .error(sb);
} }
Player player = Bukkit.getPlayer(UUID.fromString(uuid)); final Player player = Bukkit.getPlayer(UUID.fromString(uuid));
if (player == null) throw new IllegalStateException("Player should be online but they are not!"); if (player == null) throw new IllegalStateException("Player should be online but they are not!");
return new SimpleUserData(player); return new SimpleUserData(player);
}, CommonsBase.getInstance() }, CommonsBase.getInstance()
@ -136,7 +136,7 @@ public class SimpleUserData implements UserData
} }
@Override @Override
public void setGroup(@Nullable Group group) public void setGroup(@Nullable final Group group)
{ {
event.ping(); event.ping();
this.group = group; this.group = group;
@ -149,14 +149,14 @@ public class SimpleUserData implements UserData
} }
@Override @Override
public void setPlaytime(long playtime) public void setPlaytime(final long playtime)
{ {
event.ping(); event.ping();
this.playtime = playtime; this.playtime = playtime;
} }
@Override @Override
public void addPlaytime(long playtime) public void addPlaytime(final long playtime)
{ {
event.ping(); event.ping();
this.playtime += playtime; this.playtime += playtime;
@ -176,7 +176,7 @@ public class SimpleUserData implements UserData
} }
@Override @Override
public void setFrozen(boolean frozen) public void setFrozen(final boolean frozen)
{ {
event.ping(); event.ping();
this.frozen = true; this.frozen = true;
@ -189,7 +189,7 @@ public class SimpleUserData implements UserData
} }
@Override @Override
public void setInteractionState(boolean canInteract) public void setInteractionState(final boolean canInteract)
{ {
event.ping(); event.ping();
this.canInteract = canInteract; this.canInteract = canInteract;
@ -202,7 +202,7 @@ public class SimpleUserData implements UserData
} }
@Override @Override
public void setCaged(boolean caged) public void setCaged(final boolean caged)
{ {
event.ping(); event.ping();
this.caged = caged; this.caged = caged;

View File

@ -1,6 +1,6 @@
package me.totalfreedom.fossil.command; package me.totalfreedom.fossil.command;
import me.totalfreedom.command.*; import me.totalfreedom.command.CommandBase;
import me.totalfreedom.command.annotation.Base; import me.totalfreedom.command.annotation.Base;
import me.totalfreedom.command.annotation.Info; import me.totalfreedom.command.annotation.Info;
import me.totalfreedom.command.annotation.Permissive; import me.totalfreedom.command.annotation.Permissive;
@ -14,23 +14,17 @@ import org.bukkit.entity.Player;
@Permissive(perm = "fossil.kick") @Permissive(perm = "fossil.kick")
public class KickCommand extends CommandBase public class KickCommand extends CommandBase
{ {
public KickCommand(Fossil plugin) { public KickCommand(final Fossil plugin) {
super(plugin); super(plugin);
} }
@Base @Base
public void run(CommandSender sender) { public void run(final CommandSender sender) {
sender.sendMessage(Component.text("You must specify a player to kick.")); sender.sendMessage(Component.text("You must specify a player to kick."));
} }
@Subcommand(permission = "fossil.kick", args = {Player.class, String.class}) @Subcommand(permission = "fossil.kick", args = {Player.class, String.class})
public void kickPlayer(Player player, String string) { public void kickPlayer(final Player player, final String string) {
player.kick(Component.text(string)); player.kick(Component.text(string));
} }
// TODO: Write the code to make this work properly.
@Subcommand(name = "info", permission = "fossil.kick.info", args = {Player.class})
public void playerinfo(Player player) {
}
} }

View File

@ -1,6 +1,12 @@
package me.totalfreedom.base; package me.totalfreedom.base;
import me.totalfreedom.data.*; import me.totalfreedom.data.GroupRegistry;
import me.totalfreedom.data.BanRegistry;
import me.totalfreedom.data.ConfigRegistry;
import me.totalfreedom.data.ModuleRegistry;
import me.totalfreedom.data.ServiceRegistry;
import me.totalfreedom.data.UserRegistry;
import me.totalfreedom.data.EventRegistry;
public class Registration public class Registration
{ {
@ -9,6 +15,8 @@ public class Registration
private final ServiceRegistry serviceRegistry; private final ServiceRegistry serviceRegistry;
private final ModuleRegistry moduleRegistry; private final ModuleRegistry moduleRegistry;
private final GroupRegistry groupRegistry; private final GroupRegistry groupRegistry;
private final BanRegistry banRegistry;
private final ConfigRegistry configRegistry;
public Registration() public Registration()
{ {
@ -17,6 +25,8 @@ public class Registration
this.serviceRegistry = new ServiceRegistry(); this.serviceRegistry = new ServiceRegistry();
this.moduleRegistry = new ModuleRegistry(); this.moduleRegistry = new ModuleRegistry();
this.groupRegistry = new GroupRegistry(); this.groupRegistry = new GroupRegistry();
this.banRegistry = new BanRegistry();
this.configRegistry = new ConfigRegistry();
} }
public ModuleRegistry getModuleRegistry() public ModuleRegistry getModuleRegistry()
@ -43,4 +53,14 @@ public class Registration
{ {
return groupRegistry; return groupRegistry;
} }
public BanRegistry getBanRegistry()
{
return banRegistry;
}
public ConfigRegistry getConfigRegistry()
{
return configRegistry;
}
} }

View File

@ -1,6 +1,5 @@
package me.totalfreedom.command; package me.totalfreedom.command;
import jdk.jshell.MethodSnippet;
import me.totalfreedom.api.Context; import me.totalfreedom.api.Context;
import me.totalfreedom.command.annotation.Subcommand; import me.totalfreedom.command.annotation.Subcommand;
import me.totalfreedom.provider.ContextProvider; import me.totalfreedom.provider.ContextProvider;
@ -14,11 +13,7 @@ import org.bukkit.plugin.Plugin;
import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.plugin.java.JavaPlugin;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.Arrays; import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
import java.util.Set; import java.util.Set;
public class BukkitDelegator extends Command implements PluginIdentifiableCommand public class BukkitDelegator extends Command implements PluginIdentifiableCommand
@ -41,7 +36,9 @@ public class BukkitDelegator extends Command implements PluginIdentifiableComman
} }
@Override @Override
public boolean execute(@NotNull CommandSender sender, @NotNull String commandLabel, @NotNull String[] args) public boolean execute(@NotNull final CommandSender sender,
@NotNull final String commandLabel,
@NotNull final String[] args)
{ {
if (commandLabel.isEmpty() || !commandLabel.equalsIgnoreCase(getName())) if (commandLabel.isEmpty() || !commandLabel.equalsIgnoreCase(getName()))
return false; return false;
@ -63,23 +60,26 @@ public class BukkitDelegator extends Command implements PluginIdentifiableComman
if (args.length > 0) if (args.length > 0)
{ {
ContextProvider provider = new ContextProvider(); final ContextProvider provider = new ContextProvider();
Set<Subcommand> nodes = command.getSubcommands().keySet(); final Set<Subcommand> nodes = command.getSubcommands().keySet();
for (Subcommand node : nodes) { for (final Subcommand node : nodes)
Class<?>[] argTypes = node.args(); {
final Class<?>[] argTypes = node.args();
if (argTypes.length != args.length) if (argTypes.length != args.length)
continue; continue;
Object[] objects = new Object[0]; Object[] objects = new Object[0];
for (int i = 0; i < argTypes.length; i++) { for (int i = 0; i < argTypes.length; i++)
Class<?> argType = argTypes[i]; {
String arg = args[i]; final Class<?> argType = argTypes[i];
final String arg = args[i];
if (argType == String.class) if (argType == String.class)
continue; continue;
Context<?> context = () -> provider.fromString(arg); final Context<?> context = () -> provider.fromString(arg);
if (!argType.isInstance(context.get())) { if (!argType.isInstance(context.get()))
{
throw new IllegalStateException(); throw new IllegalStateException();
} }
objects = Arrays.copyOf(objects, objects.length + 1); objects = Arrays.copyOf(objects, objects.length + 1);
@ -98,7 +98,8 @@ public class BukkitDelegator extends Command implements PluginIdentifiableComman
return false; return false;
} }
if (command.getBaseMethodPair() != null) { if (command.getBaseMethodPair() != null)
{
try try
{ {
command.getBaseMethodPair().getValue().invoke(command, sender); command.getBaseMethodPair().getValue().invoke(command, sender);

View File

@ -29,7 +29,7 @@ public abstract class CommandBase
if (this.getClass().isAnnotationPresent(Base.class)) if (this.getClass().isAnnotationPresent(Base.class))
{ {
Method method = Stream.of(this.getClass().getDeclaredMethods()) final Method method = Stream.of(this.getClass().getDeclaredMethods())
.filter(m -> m.isAnnotationPresent(Base.class)) .filter(m -> m.isAnnotationPresent(Base.class))
.findFirst() .findFirst()
.orElseThrow(() -> new RuntimeException("Base annotation present but no method found.")); .orElseThrow(() -> new RuntimeException("Base annotation present but no method found."));

View File

@ -1,14 +1,13 @@
package me.totalfreedom.command; package me.totalfreedom.command;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.command.PluginCommand;
import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.plugin.java.JavaPlugin;
public class CommandHandler public class CommandHandler
{ {
private final JavaPlugin plugin; private final JavaPlugin plugin;
public CommandHandler(JavaPlugin plugin) public CommandHandler(final JavaPlugin plugin)
{ {
this.plugin = plugin; this.plugin = plugin;
} }
@ -17,8 +16,9 @@ public class CommandHandler
// We need to find a way to resolve PluginCommands so we can // We need to find a way to resolve PluginCommands so we can
// set the executor and tab completer as necessary. // set the executor and tab completer as necessary.
// OR we need to find an alternative way to process tab completions. // OR we need to find an alternative way to process tab completions.
public <T extends CommandBase> void registerCommand(T command) { public <T extends CommandBase> void registerCommand(final T command)
BukkitDelegator delegate = new BukkitDelegator(plugin, command); {
final BukkitDelegator delegate = new BukkitDelegator(plugin, command);
Bukkit.getCommandMap().register(plugin.getName(), delegate); Bukkit.getCommandMap().register(plugin.getName(), delegate);
} }

View File

@ -2,7 +2,6 @@ package me.totalfreedom.data;
import me.totalfreedom.security.ban.Ban; import me.totalfreedom.security.ban.Ban;
import me.totalfreedom.security.ban.BanID; import me.totalfreedom.security.ban.BanID;
import me.totalfreedom.sql.SQL;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import java.util.ArrayList; import java.util.ArrayList;
@ -12,18 +11,18 @@ public class BanRegistry
{ {
private final List<Ban> bansList = new ArrayList<>(); private final List<Ban> bansList = new ArrayList<>();
public boolean addBan(Ban ban) { public boolean addBan(final Ban ban) {
return bansList.add(ban); return bansList.add(ban);
} }
public boolean removeBan(Ban ban) { public boolean removeBan(final Ban ban) {
return bansList.remove(ban); return bansList.remove(ban);
} }
@Nullable @Nullable
public Ban getBan(BanID banID) public Ban getBan(final BanID banID)
{ {
for (Ban ban : bansList) for (final Ban ban : bansList)
{ {
if (ban.getBanID().matches(banID)) if (ban.getBanID().matches(banID))
{ {

View File

@ -9,17 +9,17 @@ public class ConfigRegistry
{ {
private final Map<String, Configuration> configurationList = new HashMap<>(); private final Map<String, Configuration> configurationList = new HashMap<>();
public void register(String name, Configuration configuration) public void register(final String name, final Configuration configuration)
{ {
configurationList.put(name, configuration); configurationList.put(name, configuration);
} }
public void unregister(String name) public void unregister(final String name)
{ {
configurationList.remove(name); configurationList.remove(name);
} }
public Configuration getConfiguration(String name) public Configuration getConfiguration(final String name)
{ {
return configurationList.get(name); return configurationList.get(name);
} }

View File

@ -15,18 +15,18 @@ public class GroupRegistry
this.groups = new ArrayList<>(); this.groups = new ArrayList<>();
} }
public boolean registerGroup(Group group) { public boolean registerGroup(final Group group) {
return groups.add(group); return groups.add(group);
} }
public boolean unregisterGroup(Group group) { public boolean unregisterGroup(final Group group) {
return groups.remove(group); return groups.remove(group);
} }
public Group getGroup(String name) { public Group getGroup(final String name) {
PlainTextComponentSerializer s = PlainTextComponentSerializer.plainText(); final PlainTextComponentSerializer s = PlainTextComponentSerializer.plainText();
for (Group group : groups) { for (final Group group : groups) {
String n = s.serialize(group.getName()); final String n = s.serialize(group.getName());
if (n.equalsIgnoreCase(name)) { if (n.equalsIgnoreCase(name)) {
return group; return group;
} }

View File

@ -29,9 +29,9 @@ public class ModuleRegistry
} }
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
public <T extends JavaPlugin> ModuleProvider<T> getModule(Class<T> clazz) public <T extends JavaPlugin> ModuleProvider<T> getModule(final Class<T> clazz)
{ {
for (JavaPlugin plugin : plugins) for (final JavaPlugin plugin : plugins)
{ {
if (clazz.isInstance(plugin)) if (clazz.isInstance(plugin))
{ {

View File

@ -20,7 +20,7 @@ public class ServiceRegistry
public void startAll() public void startAll()
{ {
for (Service service : this.services) for (final Service service : this.services)
{ {
service.start(); service.start();
} }
@ -28,7 +28,7 @@ public class ServiceRegistry
public void stopAll() public void stopAll()
{ {
for (Service service : this.services) for (final Service service : this.services)
{ {
service.stop(); service.stop();
} }
@ -39,7 +39,7 @@ public class ServiceRegistry
// and calling getClass() on this object would effectively be Class<T>, though we may lose // and calling getClass() on this object would effectively be Class<T>, though we may lose
// the identity of the code signature in the process. // the identity of the code signature in the process.
// In this case, that is fine. // In this case, that is fine.
public <T extends Service> void register(Plugin plugin, final T service) public <T extends Service> void register(final Plugin plugin, final T service)
{ {
this.services.add(service); this.services.add(service);
if (!service.getClass().isInstance(service)) if (!service.getClass().isInstance(service))
@ -57,12 +57,12 @@ public class ServiceRegistry
ServicePriority.Normal); ServicePriority.Normal);
} }
public <T extends Service> RegisteredServiceProvider<T> getService(Class<T> clazz) public <T extends Service> RegisteredServiceProvider<T> getService(final Class<T> clazz)
{ {
return Bukkit.getServicesManager().getRegistration(clazz); return Bukkit.getServicesManager().getRegistration(clazz);
} }
public void unregister(Class<? extends Service> clazz, Service service) public void unregister(final Class<? extends Service> clazz, final Service service)
{ {
this.services.remove(service); this.services.remove(service);
Bukkit.getServicesManager().unregister(clazz, service); Bukkit.getServicesManager().unregister(clazz, service);

View File

@ -15,17 +15,17 @@ public class UserRegistry
this.userDataMap = new HashMap<>(); this.userDataMap = new HashMap<>();
} }
public UserData getUserData(User user) public UserData getUserData(final User user)
{ {
return userDataMap.get(user); return userDataMap.get(user);
} }
public void registerUserData(User user, UserData userData) public void registerUserData(final User user, final UserData userData)
{ {
userDataMap.put(user, userData); userDataMap.put(user, userData);
} }
public void unregisterUserData(User user) public void unregisterUserData(final User user)
{ {
userDataMap.remove(user); userDataMap.remove(user);
} }

View File

@ -13,20 +13,20 @@ public class EventBus extends Service
private final Set<FEvent> eventSet = new HashSet<>(); private final Set<FEvent> eventSet = new HashSet<>();
private final SubscriptionBox<?> runningSubscriptions = new SubscriptionBox<>(); private final SubscriptionBox<?> runningSubscriptions = new SubscriptionBox<>();
public EventBus(CommonsBase plugin) public EventBus(final CommonsBase plugin)
{ {
super("event_bus"); super("event_bus");
this.plugin = plugin; this.plugin = plugin;
} }
public void addEvent(FEvent event) public void addEvent(final FEvent event)
{ {
eventSet.add(event); eventSet.add(event);
} }
public <T extends FEvent> T getEvent(Class<T> eventClass) public <T extends FEvent> T getEvent(final Class<T> eventClass)
{ {
FEvent e = eventSet.stream() final FEvent e = eventSet.stream()
.filter(event -> event.getEventClass().equals(eventClass)) .filter(event -> event.getEventClass().equals(eventClass))
.findFirst() .findFirst()
.orElse(null); .orElse(null);
@ -34,9 +34,9 @@ public class EventBus extends Service
return eventClass.cast(e); return eventClass.cast(e);
} }
public <T extends FEvent> EventSubscription<T> subscribe(Class<T> eventClass, Callback<T> callback) public <T extends FEvent> EventSubscription<T> subscribe(final Class<T> eventClass, final Callback<T> callback)
{ {
Context<T> eventContext = () -> eventSet.stream() final Context<T> eventContext = () -> eventSet.stream()
.filter(event -> event.getEventClass().equals(eventClass)) .filter(event -> event.getEventClass().equals(eventClass))
.findFirst() .findFirst()
.map(eventClass::cast) .map(eventClass::cast)
@ -50,7 +50,7 @@ public class EventBus extends Service
return new EventSubscription<>(eventContext.get(), callback); return new EventSubscription<>(eventContext.get(), callback);
} }
public void unsubscribe(EventSubscription<?> subscription) public void unsubscribe(final EventSubscription<?> subscription)
{ {
runningSubscriptions.removeSubscription(subscription); runningSubscriptions.removeSubscription(subscription);
} }

View File

@ -1,7 +1,5 @@
package me.totalfreedom.event; package me.totalfreedom.event;
import com.sun.source.tree.ContinueTree;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@ -13,11 +11,11 @@ class SubscriptionBox<T extends FEvent>
this.subscriptions = new ArrayList<>(); this.subscriptions = new ArrayList<>();
} }
public void addSubscription(EventSubscription<T> subscription) { public void addSubscription(final EventSubscription<T> subscription) {
subscriptions.add(subscription); subscriptions.add(subscription);
} }
public void removeSubscription(EventSubscription<?> subscription) { public void removeSubscription(final EventSubscription<?> subscription) {
subscriptions.remove(subscription); subscriptions.remove(subscription);
} }

View File

@ -14,7 +14,7 @@ import java.util.stream.Stream;
public class ContextProvider public class ContextProvider
{ {
public Object fromString(String string) public Object fromString(final String string)
{ {
return Stream.of(toBoolean(string), return Stream.of(toBoolean(string),
toDouble(string), toDouble(string),
@ -31,7 +31,7 @@ public class ContextProvider
.orElse(string); .orElse(string);
} }
private @Nullable Boolean toBoolean(String string) private @Nullable Boolean toBoolean(final String string)
{ {
try try
{ {
@ -42,7 +42,7 @@ public class ContextProvider
} }
} }
private @Nullable Double toDouble(String string) private @Nullable Double toDouble(final String string)
{ {
try try
{ {
@ -53,7 +53,7 @@ public class ContextProvider
} }
} }
private @Nullable Integer toInt(String string) private @Nullable Integer toInt(final String string)
{ {
try try
{ {
@ -64,7 +64,7 @@ public class ContextProvider
} }
} }
private @Nullable Long toLong(String string) private @Nullable Long toLong(final String string)
{ {
try try
{ {
@ -75,7 +75,7 @@ public class ContextProvider
} }
} }
private @Nullable Float toFloat(String string) private @Nullable Float toFloat(final String string)
{ {
try try
{ {
@ -86,12 +86,12 @@ public class ContextProvider
} }
} }
private @Nullable Player toPlayer(String string) private @Nullable Player toPlayer(final String string)
{ {
return Bukkit.getPlayer(string); return Bukkit.getPlayer(string);
} }
private @Nullable CommandSender toCommandSender(String string) private @Nullable CommandSender toCommandSender(final String string)
{ {
if (toPlayer(string) == null) return null; if (toPlayer(string) == null) return null;
@ -103,9 +103,9 @@ public class ContextProvider
return Bukkit.getWorld(string); return Bukkit.getWorld(string);
} }
private @Nullable Location toLocation(String string) private @Nullable Location toLocation(final String string)
{ {
String[] split = string.split(","); final String[] split = string.split(",");
if (split.length != 4 || toWorld(split[0]) == null) return null; if (split.length != 4 || toWorld(split[0]) == null) return null;
if (toDouble(split[1]) == null if (toDouble(split[1]) == null
|| toDouble(split[2]) == null || toDouble(split[2]) == null
@ -114,7 +114,7 @@ public class ContextProvider
return new Location(toWorld(split[0]), toDouble(split[1]), toDouble(split[2]), toDouble(split[3])); return new Location(toWorld(split[0]), toDouble(split[1]), toDouble(split[2]), toDouble(split[3]));
} }
private @NotNull Component toComponent(String string) private @NotNull Component toComponent(final String string)
{ {
return Component.text(string); return Component.text(string);
} }

View File

@ -2,6 +2,7 @@ package me.totalfreedom.service;
import me.totalfreedom.base.CommonsBase; import me.totalfreedom.base.CommonsBase;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.jetbrains.annotations.NotNull;
import java.util.concurrent.Executor; import java.util.concurrent.Executor;
@ -26,7 +27,7 @@ public class FreedomExecutor
return asyncExecutor; return asyncExecutor;
} }
public Executor scheduled(long delay, long period) public Executor scheduled(final long delay, final long period)
{ {
return r -> Bukkit.getScheduler() return r -> Bukkit.getScheduler()
.runTaskTimer( .runTaskTimer(
@ -36,7 +37,7 @@ public class FreedomExecutor
period); period);
} }
public Executor scheduledAsync(long delay, long period) public Executor scheduledAsync(final long delay, final long period)
{ {
return r -> Bukkit.getScheduler() return r -> Bukkit.getScheduler()
.runTaskTimerAsynchronously( .runTaskTimerAsynchronously(
@ -46,12 +47,12 @@ public class FreedomExecutor
period); period);
} }
public void runSync(Task task) public void runSync(@NotNull final Task task)
{ {
getSync().execute(task); getSync().execute(task);
} }
public void runAsync(Task task) public void runAsync(@NotNull final Task task)
{ {
getAsync().execute(task); getAsync().execute(task);
} }

View File

@ -7,7 +7,7 @@ public abstract class Service
private final String name; private final String name;
private boolean isActive = false; private boolean isActive = false;
protected Service(String name) protected Service(final String name)
{ {
this.name = name; this.name = name;

View File

@ -7,15 +7,15 @@ import java.util.concurrent.CompletableFuture;
public interface SQL public interface SQL
{ {
CompletableFuture<Connection> getConnection(String url); CompletableFuture<Connection> getConnection(final String url);
CompletableFuture<PreparedStatement> prepareStatement(String query, Object... args); CompletableFuture<PreparedStatement> prepareStatement(final String query, final Object... args);
CompletableFuture<ResultSet> executeQuery(String query, Object... args); CompletableFuture<ResultSet> executeQuery(final String query, final Object... args);
CompletableFuture<Integer> executeUpdate(String query, Object... args); CompletableFuture<Integer> executeUpdate(final String query, final Object... args);
CompletableFuture<Boolean> execute(String query, Object... args); CompletableFuture<Boolean> execute(final String query, final Object... args);
CompletableFuture<Boolean> createTable(String table, String... columns); CompletableFuture<Boolean> createTable(final String table, final String... columns);
} }

View File

@ -9,7 +9,7 @@ public interface SQLProperties
default Properties getDefaultProperties() default Properties getDefaultProperties()
{ {
Properties properties = new Properties(); final Properties properties = new Properties();
properties.setProperty("driver", "sqlite"); properties.setProperty("driver", "sqlite");
properties.setProperty("host", "localhost"); properties.setProperty("host", "localhost");
properties.setProperty("port", "3306"); properties.setProperty("port", "3306");

View File

@ -11,17 +11,17 @@ public class FreedomLogger
private final Logger logger; private final Logger logger;
private boolean debug = false; private boolean debug = false;
private FreedomLogger(String moduleName) private FreedomLogger(final String moduleName)
{ {
this.logger = LoggerFactory.getLogger("FreedomNetworkSuite::" + moduleName); this.logger = LoggerFactory.getLogger("FreedomNetworkSuite::" + moduleName);
} }
public static FreedomLogger getLogger(String moduleName) public static FreedomLogger getLogger(final String moduleName)
{ {
return new FreedomLogger(moduleName); return new FreedomLogger(moduleName);
} }
public void setDebugMode(boolean debug) public void setDebugMode(final boolean debug)
{ {
this.debug = debug; this.debug = debug;
} }
@ -31,7 +31,7 @@ public class FreedomLogger
* *
* @param message The message to send. * @param message The message to send.
*/ */
public void info(String message) public void info(final String message)
{ {
logger.info(message); logger.info(message);
} }
@ -44,7 +44,7 @@ public class FreedomLogger
* @param message The message to send. * @param message The message to send.
* @return A component representation of the message. * @return A component representation of the message.
*/ */
public Component info(Supplier<String> message) public Component info(final Supplier<String> message)
{ {
logger.info(message.get()); logger.info(message.get());
return Component.text(message.get()); return Component.text(message.get());
@ -55,7 +55,7 @@ public class FreedomLogger
* *
* @param message The message to send. * @param message The message to send.
*/ */
public void warn(String message) public void warn(final String message)
{ {
logger.warn(message); logger.warn(message);
} }
@ -67,7 +67,7 @@ public class FreedomLogger
* *
* @param message The message to send. * @param message The message to send.
*/ */
public void error(String message) public void error(final String message)
{ {
logger.error(message); logger.error(message);
} }
@ -77,7 +77,7 @@ public class FreedomLogger
* *
* @param th The exception to log. * @param th The exception to log.
*/ */
public void error(Throwable th) public void error(final Throwable th)
{ {
logger.error("An error occurred:\n", th); logger.error("An error occurred:\n", th);
} }
@ -92,7 +92,7 @@ public class FreedomLogger
* @param message The message to send. * @param message The message to send.
* @return A component representation of the message. * @return A component representation of the message.
*/ */
public Component error(Supplier<String> message) public Component error(final Supplier<String> message)
{ {
logger.error(message.get()); logger.error(message.get());
return Component.text(message.get()); return Component.text(message.get());
@ -104,7 +104,7 @@ public class FreedomLogger
* *
* @param message The message to send. * @param message The message to send.
*/ */
public void debug(String message) public void debug(final String message)
{ {
if (debug) if (debug)
logger.debug(message); logger.debug(message);
@ -119,7 +119,7 @@ public class FreedomLogger
* @param message The message to send. * @param message The message to send.
* @return A component representation of the message. * @return A component representation of the message.
*/ */
public Component debug(Supplier<String> message) public Component debug(final Supplier<String> message)
{ {
if (debug) if (debug)
{ {

View File

@ -8,7 +8,7 @@ public class Identity
private final UUID id; private final UUID id;
public Identity(String key) public Identity(final String key)
{ {
this.key = key; this.key = key;
this.id = UUID.nameUUIDFromBytes(key.getBytes()); this.id = UUID.nameUUIDFromBytes(key.getBytes());

View File

@ -1,14 +0,0 @@
package me.totalfreedom.utils;
public class MICheck
{
public double maintainabilityIndex(double fileLength, double vocabulary, double cyclomaticComplexity, double linesOfCode) {
double halsteadVolume = fileLength * (Math.log(vocabulary) / Math.log(2));
double maintainabilityIndexUnbounded = 171 - 5.2 * Math.log(halsteadVolume) - 0.23 * cyclomaticComplexity - 16.2 * Math.log(linesOfCode);
return Math.max(0, maintainabilityIndexUnbounded * 100 / 171);
}
public double complexity(double decisionPoints) {
return decisionPoints + 1;
}
}

View File

@ -5,7 +5,7 @@ public class Pair<K, V>
private final K key; private final K key;
private final V value; private final V value;
public Pair(K key, V value) { public Pair(final K key, final V value) {
this.key = key; this.key = key;
this.value = value; this.value = value;
} }

View File

@ -13,24 +13,24 @@ public class Shaper
private final double end; private final double end;
private final World world; private final World world;
public Shaper(World world, double start, double end) public Shaper(final World world, final double start, final double end)
{ {
this.start = start; this.start = start;
this.end = end; this.end = end;
this.world = world; this.world = world;
} }
public List<Location> generate(int count, DoubleUnaryOperator x, DoubleUnaryOperator y, DoubleUnaryOperator z) public List<Location> generate(final int count, final DoubleUnaryOperator x, final DoubleUnaryOperator y, final DoubleUnaryOperator z)
{ {
double step = (start - end) / (count - 1); final double step = (start - end) / (count - 1);
LinkedList<Location> lset = new LinkedList<>(); final LinkedList<Location> lset = new LinkedList<>();
for (int i = 0; i < count; i++) for (int i = 0; i < count; i++)
{ {
double t = start + i * step; final double t = start + i * step;
double xp = x.applyAsDouble(t); final double xp = x.applyAsDouble(t);
double yp = y.applyAsDouble(t); final double yp = y.applyAsDouble(t);
double zp = z.applyAsDouble(t); final double zp = z.applyAsDouble(t);
lset.add(new Location(world, xp, yp, zp)); lset.add(new Location(world, xp, yp, zp));
} }

15
checkstyle.xml Normal file
View File

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE module PUBLIC
"-//Puppy Crawl//DTD Check Configuration 1.3//EN"
"https://www.checkstyle.org/dtds/configuration_1_3.dtd">
<module name="Checker">
<module name="TreeWalker">
<module name="FinalLocalVariable">
<property name="validateEnhancedForLoopVariable" value="true"/>
</module>
<module name="FinalParameters"/>
<module name="AvoidStaticImport"/>
<module name="UnusedImports"/>
<module name="AvoidStarImportCheck"/>
</module>
</module>