diff --git a/.github/workflows/checkstyle-and-build.yml b/.github/workflows/checkstyle-and-build.yml new file mode 100644 index 0000000..1f365e7 --- /dev/null +++ b/.github/workflows/checkstyle-and-build.yml @@ -0,0 +1,38 @@ +# This workflow will build a Java project with Maven +# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-gradle + +name: Java CI with Maven + +on: [pull_request, push] + +jobs: + checkstyle_job: + runs-on: ubuntu-latest + name: Checkstyle + steps: + - name: Checkout + uses: actions/checkout@v2 + - name: Run check style + uses: nikitasavinov/checkstyle-action@master + with: + fail_on_error: true + reporter: 'github-pr-check' + tool_name: 'checkstyle' + level: error + filter_mode: nofilter + checkstyle_config: checkstyle.xml + + build: + runs-on: ubuntu-latest + name: Build + steps: + - uses: actions/checkout@v2 + - name: Set up JDK 16 + uses: actions/setup-java@v2 + with: + java-version: '16' + distribution: 'adopt' + - name: Build with Maven + run: mvn package + - name: Test with Maven + run: mvn test diff --git a/checkstyle.xml b/checkstyle.xml new file mode 100644 index 0000000..e55e4a6 --- /dev/null +++ b/checkstyle.xml @@ -0,0 +1,355 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/pom.xml b/pom.xml index ecfae60..7634e14 100644 --- a/pom.xml +++ b/pom.xml @@ -1,105 +1,104 @@ - 4.0.0 - edu.whimc - WHIMC-Observations - 2.4.5 - WHIMC Observations - Create holographic observations in worlds + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> + 4.0.0 + edu.whimc + WHIMC-Observations + 2.5.1 + WHIMC Observations + Create holographic observations in worlds - - - - spigot-repo - https://hub.spigotmc.org/nexus/content/repositories/snapshots/ - - - - codemc-repo - https://repo.codemc.io/repository/maven-public/ - - - - elmakers-repo - https://maven.elmakers.com/repository/ - - - - dmulloy2-repo - https://repo.dmulloy2.net/repository/public/ - - + + + + spigot-repo + https://hub.spigotmc.org/nexus/content/repositories/snapshots/ + + + + codemc-repo + https://repo.codemc.io/repository/maven-public/ + + + + jitpack.io + https://jitpack.io + + + + dmulloy2-repo + https://repo.dmulloy2.net/repository/public/ + + - - - - org.spigotmc - spigot-api - 1.14.4-R0.1-SNAPSHOT - provided - - - - com.gmail.filoghost.holographicdisplays - holographicdisplays-api - 2.4.0 - provided - - - - me.blackvein.quests - quests - 3.6.2 - provided - - - - com.comphenix.protocol - ProtocolLib - 4.7.0 - provided - - + + + + org.spigotmc + spigot-api + 1.14.4-R0.1-SNAPSHOT + provided + + + + com.gmail.filoghost.holographicdisplays + holographicdisplays-api + 2.4.0 + provided + + + + com.github.PikaMug.Quests + quests-main + 4.0.8 + + + + com.comphenix.protocol + ProtocolLib + 4.7.0 + provided + + - - 1.8 - 1.8 - UTF-8 - + + 1.8 + 1.8 + UTF-8 + - - - scm:git:git@github.com:whimc/Observation-Displayer.git - HEAD - + + + scm:git:git@github.com:whimc/Observation-Displayer.git + HEAD + - - - - - src/main/resources - true - - + + + + + src/main/resources + true + + - - - - de.jutzig - github-release-plugin - 1.1.1 - - Release for v${project.version} - ${project.artifactId}-${project.version} - ${project.version} - - - ${project.build.directory} - - - - - - - + + + + de.jutzig + github-release-plugin + 1.1.1 + + Release for v${project.version} + ${project.artifactId}-${project.version} + ${project.version} + + + ${project.build.directory} + + + + + + + \ No newline at end of file diff --git a/src/main/java/edu/whimc/observations/Observations.java b/src/main/java/edu/whimc/observations/Observations.java index 3da6bf1..4bccb63 100644 --- a/src/main/java/edu/whimc/observations/Observations.java +++ b/src/main/java/edu/whimc/observations/Observations.java @@ -73,7 +73,8 @@ public SignMenuFactory getSignMenuFactory() { @Override public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { - Utils.msg(sender, "&cThis plugin is disabled because it was unable to connect to the configured database. " + + Utils.msg(sender, "&cThis plugin is disabled because it was unable to connect to the configured database. " + + "Please modify the config to ensure the credentials are correct then restart the server."); return true; } diff --git a/src/main/java/edu/whimc/observations/commands/AbstractSubCommand.java b/src/main/java/edu/whimc/observations/commands/AbstractSubCommand.java index 53d9e1a..00f1fe0 100644 --- a/src/main/java/edu/whimc/observations/commands/AbstractSubCommand.java +++ b/src/main/java/edu/whimc/observations/commands/AbstractSubCommand.java @@ -2,12 +2,6 @@ import edu.whimc.observations.Observations; import edu.whimc.observations.utils.Utils; -import org.bukkit.Bukkit; -import org.bukkit.ChatColor; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; -import org.bukkit.permissions.Permission; - import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -15,6 +9,11 @@ import java.util.regex.Pattern; import java.util.stream.Collectors; import java.util.stream.Stream; +import org.bukkit.Bukkit; +import org.bukkit.ChatColor; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; +import org.bukkit.permissions.Permission; public abstract class AbstractSubCommand { @@ -53,9 +52,9 @@ protected void description(String desc) { } protected void arguments(String args) { - String[] parsed_replaced = parseArgs(args, "[", "]", true); + String[] parsedReplaced = parseArgs(args, "[", "]", true); String[] parsed = parseArgs(args, "[", "]", false); - this.arguments.add(parsed_replaced); + this.arguments.add(parsedReplaced); this.minArgs = 0; for (String arg : parsed) { if (arg.startsWith("[") && arg.endsWith("]")) { diff --git a/src/main/java/edu/whimc/observations/commands/ObserveCommand.java b/src/main/java/edu/whimc/observations/commands/ObserveCommand.java index 67e468c..2905f18 100644 --- a/src/main/java/edu/whimc/observations/commands/ObserveCommand.java +++ b/src/main/java/edu/whimc/observations/commands/ObserveCommand.java @@ -4,6 +4,11 @@ import edu.whimc.observations.models.Observation; import edu.whimc.observations.models.ObserveEvent; import edu.whimc.observations.utils.Utils; +import java.sql.Timestamp; +import java.time.Instant; +import java.time.temporal.ChronoUnit; +import java.util.Arrays; +import java.util.List; import org.apache.commons.lang.StringUtils; import org.bukkit.Bukkit; import org.bukkit.ChatColor; @@ -13,12 +18,6 @@ import org.bukkit.command.TabCompleter; import org.bukkit.entity.Player; -import java.sql.Timestamp; -import java.time.Instant; -import java.time.temporal.ChronoUnit; -import java.util.Arrays; -import java.util.List; - public class ObserveCommand implements CommandExecutor, TabCompleter { public static final String TEMPLATED_PERM = Observations.PERM_PREFIX + ".observe"; @@ -35,7 +34,8 @@ public static void makeObservation(Observations plugin, String observation, Play int days = plugin.getConfig().getInt("expiration-days"); Timestamp expiration = Timestamp.from(Instant.now().plus(days, ChronoUnit.DAYS)); - Observation obs = Observation.createObservation(plugin, player, player.getLocation(), observation, expiration, null); + Observation obs = Observation.createObservation(plugin, player, player.getLocation(), observation, + expiration, null); Utils.msg(player, "&7Your observation has been placed:", " &8\"&f&l" + observation + "&8\""); diff --git a/src/main/java/edu/whimc/observations/commands/observations/ObservationsCommand.java b/src/main/java/edu/whimc/observations/commands/observations/ObservationsCommand.java index 421dd06..bfc311e 100644 --- a/src/main/java/edu/whimc/observations/commands/observations/ObservationsCommand.java +++ b/src/main/java/edu/whimc/observations/commands/observations/ObservationsCommand.java @@ -3,16 +3,15 @@ import edu.whimc.observations.Observations; import edu.whimc.observations.commands.AbstractSubCommand; import edu.whimc.observations.utils.Utils; -import org.bukkit.command.Command; -import org.bukkit.command.CommandExecutor; -import org.bukkit.command.CommandSender; -import org.bukkit.command.TabCompleter; - import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.stream.Collectors; +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.command.TabCompleter; public class ObservationsCommand implements CommandExecutor, TabCompleter { diff --git a/src/main/java/edu/whimc/observations/commands/observations/ObservationsInfo.java b/src/main/java/edu/whimc/observations/commands/observations/ObservationsInfo.java index 99e18e8..c15529e 100644 --- a/src/main/java/edu/whimc/observations/commands/observations/ObservationsInfo.java +++ b/src/main/java/edu/whimc/observations/commands/observations/ObservationsInfo.java @@ -4,9 +4,8 @@ import edu.whimc.observations.commands.AbstractSubCommand; import edu.whimc.observations.models.Observation; import edu.whimc.observations.utils.Utils; -import org.bukkit.command.CommandSender; - import java.util.List; +import org.bukkit.command.CommandSender; public class ObservationsInfo extends AbstractSubCommand { @@ -19,15 +18,22 @@ public ObservationsInfo(Observations plugin, String baseCommand, String subComma @Override protected boolean onCommand(CommandSender sender, String[] args) { Observation obs = Utils.getObervationWithError(sender, args[0]); - if (obs == null) return true; + if (obs == null) { + return true; + } Utils.msgNoPrefix(sender, "&7&m-----------------&r &9&lObservation Info&r &7&m------------------", - " &9ID: &7" + obs.getId(), - " &9Created: &7" + Utils.getDate(obs.getTimestamp()), - " &9Expires: &7" + (obs.getExpiration() == null ? "Never" : Utils.getDate(obs.getExpiration())), - " &9Player: &7" + obs.getPlayer(), - " &9Observation: &8\"&f&l" + obs.getObservation() + "&8\"", + " &9ID: &7" + + obs.getId(), + " &9Created: &7" + + Utils.getDate(obs.getTimestamp()), + " &9Expires: &7" + + (obs.getExpiration() == null ? "Never" : Utils.getDate(obs.getExpiration())), + " &9Player: &7" + + obs.getPlayer(), + " &9Observation: &8\"&f&l" + obs.getObservation() + + "&8\"", "", " &9Holo Location:", " " + Utils.locationString(obs.getHoloLocation(), false), @@ -42,4 +48,4 @@ protected List onTabComplete(CommandSender sender, java.lang.S return Observation.getObservationsTabComplete(args[0]); } -} +} \ No newline at end of file diff --git a/src/main/java/edu/whimc/observations/commands/observations/ObservationsList.java b/src/main/java/edu/whimc/observations/commands/observations/ObservationsList.java index 591a5a7..67e0f7c 100644 --- a/src/main/java/edu/whimc/observations/commands/observations/ObservationsList.java +++ b/src/main/java/edu/whimc/observations/commands/observations/ObservationsList.java @@ -3,9 +3,8 @@ import edu.whimc.observations.Observations; import edu.whimc.observations.commands.AbstractSubCommand; import edu.whimc.observations.utils.Utils; -import org.bukkit.command.CommandSender; - import java.util.List; +import org.bukkit.command.CommandSender; public class ObservationsList extends AbstractSubCommand { diff --git a/src/main/java/edu/whimc/observations/commands/observations/ObservationsNear.java b/src/main/java/edu/whimc/observations/commands/observations/ObservationsNear.java index 5275e3d..fb0d5b9 100644 --- a/src/main/java/edu/whimc/observations/commands/observations/ObservationsNear.java +++ b/src/main/java/edu/whimc/observations/commands/observations/ObservationsNear.java @@ -4,11 +4,10 @@ import edu.whimc.observations.commands.AbstractSubCommand; import edu.whimc.observations.models.Observation; import edu.whimc.observations.utils.Utils; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; - import java.util.List; import java.util.stream.Collectors; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; public class ObservationsNear extends AbstractSubCommand { @@ -37,7 +36,8 @@ protected boolean onCommand(CommandSender sender, String[] args) { .collect(Collectors.toList()); if (inRadius.isEmpty()) { - Utils.msg(sender, "&cThere are no observations within &4" + + Utils.msg(sender, "&cThere are no observations within &4" + + radius + " &cblock" + (radius == 1 ? "" : "s") + " of you!"); return true; } diff --git a/src/main/java/edu/whimc/observations/commands/observations/ObservationsPurge.java b/src/main/java/edu/whimc/observations/commands/observations/ObservationsPurge.java index ba68830..1f4a1d7 100644 --- a/src/main/java/edu/whimc/observations/commands/observations/ObservationsPurge.java +++ b/src/main/java/edu/whimc/observations/commands/observations/ObservationsPurge.java @@ -4,10 +4,9 @@ import edu.whimc.observations.commands.AbstractSubCommand; import edu.whimc.observations.models.Observation; import edu.whimc.observations.utils.Utils; -import org.bukkit.command.CommandSender; - import java.util.List; import java.util.stream.Collectors; +import org.bukkit.command.CommandSender; public class ObservationsPurge extends AbstractSubCommand { diff --git a/src/main/java/edu/whimc/observations/commands/observations/ObservationsReactivate.java b/src/main/java/edu/whimc/observations/commands/observations/ObservationsReactivate.java index a6787ec..69b0613 100644 --- a/src/main/java/edu/whimc/observations/commands/observations/ObservationsReactivate.java +++ b/src/main/java/edu/whimc/observations/commands/observations/ObservationsReactivate.java @@ -4,11 +4,10 @@ import edu.whimc.observations.commands.AbstractSubCommand; import edu.whimc.observations.models.Observation; import edu.whimc.observations.utils.Utils; -import org.bukkit.command.CommandSender; - import java.sql.Timestamp; import java.util.Arrays; import java.util.List; +import org.bukkit.command.CommandSender; public class ObservationsReactivate extends AbstractSubCommand { @@ -78,7 +77,8 @@ protected boolean onCommand(CommandSender sender, String[] args) { String formattedStart = Utils.getDate(startTime); String formattedEnd = Utils.getDate(endTime); - Utils.msg(sender, "&aTemporarily reactivating observations between \"&2" + formattedStart + "&a\" and \"&2" + formattedEnd + "&a\"!"); + Utils.msg(sender, "&aTemporarily reactivating observations between \"&2" + formattedStart + + "&a\" and \"&2" + formattedEnd + "&a\"!"); plugin.getQueryer().reactivateObservations(startTime, endTime, count -> { Utils.msg(sender, "&7" + count + " observations reactivated"); }); @@ -129,7 +129,8 @@ private void sendHelp(CommandSender sender, String error) { Utils.msgNoPrefix(sender, " &7Examples:", " &7/observations &breactivate &31", " &7/observations &breactivate &31 100", - " &7/observations &breactivate &7\"&3August 13 1999, 7:00 pm CST&7\" \"&3" + Utils.getDateNow() + "&7\""); + " &7/observations &breactivate &7\"&3August 13 1999, 7:00 pm CST&7\" \"&3" + + Utils.getDateNow() + "&7\""); } @Override diff --git a/src/main/java/edu/whimc/observations/commands/observations/ObservationsRemove.java b/src/main/java/edu/whimc/observations/commands/observations/ObservationsRemove.java index 8f8e32c..645f374 100644 --- a/src/main/java/edu/whimc/observations/commands/observations/ObservationsRemove.java +++ b/src/main/java/edu/whimc/observations/commands/observations/ObservationsRemove.java @@ -4,9 +4,8 @@ import edu.whimc.observations.commands.AbstractSubCommand; import edu.whimc.observations.models.Observation; import edu.whimc.observations.utils.Utils; -import org.bukkit.command.CommandSender; - import java.util.List; +import org.bukkit.command.CommandSender; public class ObservationsRemove extends AbstractSubCommand { @@ -19,7 +18,9 @@ public ObservationsRemove(Observations plugin, String baseCommand, String subCom @Override protected boolean onCommand(CommandSender sender, String[] args) { Observation obs = Utils.getObervationWithError(sender, args[0]); - if (obs == null) return true; + if (obs == null) { + return true; + } obs.deleteAndSetInactive(() -> { Utils.msg(sender, "&aObservation \"&2" + obs.getId() + "&a\" removed!"); diff --git a/src/main/java/edu/whimc/observations/commands/observations/ObservationsRemoveAll.java b/src/main/java/edu/whimc/observations/commands/observations/ObservationsRemoveAll.java index 8845a9d..b1aec00 100644 --- a/src/main/java/edu/whimc/observations/commands/observations/ObservationsRemoveAll.java +++ b/src/main/java/edu/whimc/observations/commands/observations/ObservationsRemoveAll.java @@ -4,10 +4,9 @@ import edu.whimc.observations.commands.AbstractSubCommand; import edu.whimc.observations.models.Observation; import edu.whimc.observations.utils.Utils; -import org.bukkit.command.CommandSender; - import java.util.List; import java.util.stream.Collectors; +import org.bukkit.command.CommandSender; public class ObservationsRemoveAll extends AbstractSubCommand { @@ -17,6 +16,7 @@ public ObservationsRemoveAll(Observations plugin, String baseCommand, String sub super.arguments("[-p ] [-w <\"world...\">]"); } + @SuppressWarnings("checkstyle:LineLength") @Override protected boolean onCommand(CommandSender sender, String[] args) { String player = null; diff --git a/src/main/java/edu/whimc/observations/commands/observations/ObservationsSetExpiration.java b/src/main/java/edu/whimc/observations/commands/observations/ObservationsSetExpiration.java index 3f9ba6e..4c21a90 100644 --- a/src/main/java/edu/whimc/observations/commands/observations/ObservationsSetExpiration.java +++ b/src/main/java/edu/whimc/observations/commands/observations/ObservationsSetExpiration.java @@ -4,11 +4,10 @@ import edu.whimc.observations.commands.AbstractSubCommand; import edu.whimc.observations.models.Observation; import edu.whimc.observations.utils.Utils; -import org.bukkit.command.CommandSender; - import java.sql.Timestamp; import java.util.Arrays; import java.util.List; +import org.bukkit.command.CommandSender; public class ObservationsSetExpiration extends AbstractSubCommand { @@ -44,7 +43,8 @@ protected boolean onCommand(CommandSender sender, String[] args) { if (newExpiration == null) { Utils.msg(sender, "&aRemoved the expiration from \"&2" + obs.getId() + "&a\""); } else { - Utils.msg(sender, "&aExpiration of \"&2" + obs.getId() + "&a\" set to \"&2" + Utils.getDate(newExpiration) + "&a\""); + Utils.msg(sender, "&aExpiration of \"&2" + obs.getId() + "&a\" set to \"&2" + + Utils.getDate(newExpiration) + "&a\""); } }); return true; diff --git a/src/main/java/edu/whimc/observations/commands/observations/ObservationsTeleport.java b/src/main/java/edu/whimc/observations/commands/observations/ObservationsTeleport.java index 5b92dad..1e5ee0c 100644 --- a/src/main/java/edu/whimc/observations/commands/observations/ObservationsTeleport.java +++ b/src/main/java/edu/whimc/observations/commands/observations/ObservationsTeleport.java @@ -4,11 +4,10 @@ import edu.whimc.observations.commands.AbstractSubCommand; import edu.whimc.observations.models.Observation; import edu.whimc.observations.utils.Utils; +import java.util.List; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -import java.util.List; - public class ObservationsTeleport extends AbstractSubCommand { public ObservationsTeleport(Observations plugin, String baseCommand, String subCommand) { @@ -21,7 +20,9 @@ public ObservationsTeleport(Observations plugin, String baseCommand, String subC @Override protected boolean onCommand(CommandSender sender, String[] args) { Observation obs = Utils.getObervationWithError(sender, args[0]); - if (obs == null) return true; + if (obs == null) { + return true; + } ((Player) sender).teleport(obs.getViewLocation()); Utils.msg(sender, "&aYou have been teleported to observation \"&2" + obs.getId() + "&a\"!"); diff --git a/src/main/java/edu/whimc/observations/libraries/CenteredText.java b/src/main/java/edu/whimc/observations/libraries/CenteredText.java index 9aace95..b2195d0 100644 --- a/src/main/java/edu/whimc/observations/libraries/CenteredText.java +++ b/src/main/java/edu/whimc/observations/libraries/CenteredText.java @@ -5,7 +5,7 @@ public final class CenteredText { - private final static int CENTER_PX = 158; + private static final int CENTER_PX = 158; public static int getMessagePxSize(String message) { int messagePxSize = 0; @@ -22,8 +22,8 @@ public static int getMessagePxSize(String message) { previousCode = false; isBold = c == 'l' || c == 'L'; } else { - DefaultFontInfo dFI = DefaultFontInfo.getDefaultFontInfo(c); - messagePxSize += isBold ? dFI.getBoldLength() : dFI.getLength(); + DefaultFontInfo dfi = DefaultFontInfo.getDefaultFontInfo(c); + messagePxSize += isBold ? dfi.getBoldLength() : dfi.getLength(); messagePxSize++; } } diff --git a/src/main/java/edu/whimc/observations/libraries/DefaultFontInfo.java b/src/main/java/edu/whimc/observations/libraries/DefaultFontInfo.java index d32117a..7ebfafb 100644 --- a/src/main/java/edu/whimc/observations/libraries/DefaultFontInfo.java +++ b/src/main/java/edu/whimc/observations/libraries/DefaultFontInfo.java @@ -116,13 +116,17 @@ public int getLength() { } public int getBoldLength() { - if (this == DefaultFontInfo.SPACE) return this.getLength(); + if (this == DefaultFontInfo.SPACE) { + return this.getLength(); + } return this.length + 1; } public static DefaultFontInfo getDefaultFontInfo(char c) { - for (DefaultFontInfo dFI : DefaultFontInfo.values()) { - if (dFI.getCharacter() == c) return dFI; + for (DefaultFontInfo dfi : DefaultFontInfo.values()) { + if (dfi.getCharacter() == c) { + return dfi; + } } return DefaultFontInfo.DEFAULT; } diff --git a/src/main/java/edu/whimc/observations/libraries/SignMenuFactory.java b/src/main/java/edu/whimc/observations/libraries/SignMenuFactory.java index ca03d12..0b74be8 100644 --- a/src/main/java/edu/whimc/observations/libraries/SignMenuFactory.java +++ b/src/main/java/edu/whimc/observations/libraries/SignMenuFactory.java @@ -7,19 +7,18 @@ import com.comphenix.protocol.events.PacketEvent; import com.comphenix.protocol.wrappers.BlockPosition; import com.comphenix.protocol.wrappers.nbt.NbtCompound; -import org.bukkit.Bukkit; -import org.bukkit.ChatColor; -import org.bukkit.Location; -import org.bukkit.Material; -import org.bukkit.entity.Player; -import org.bukkit.plugin.Plugin; - import java.lang.reflect.InvocationTargetException; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Objects; import java.util.function.BiPredicate; +import org.bukkit.Bukkit; +import org.bukkit.ChatColor; +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.entity.Player; +import org.bukkit.plugin.Plugin; public final class SignMenuFactory { @@ -44,7 +43,8 @@ public Menu newMenu(List text) { } private void listen() { - ProtocolLibrary.getProtocolManager().addPacketListener(new PacketAdapter(this.plugin, PacketType.Play.Client.UPDATE_SIGN) { + ProtocolLibrary.getProtocolManager().addPacketListener(new PacketAdapter(this.plugin, + PacketType.Play.Client.UPDATE_SIGN) { @Override public void onPacketReceiving(PacketEvent event) { Player player = event.getPlayer(); @@ -102,19 +102,23 @@ public void open(Player player) { return; } Location location = player.getLocation(); - this.position = new BlockPosition(location.getBlockX(), location.getBlockY() + (255 - location.getBlockY()), location.getBlockZ()); + this.position = new BlockPosition(location.getBlockX(), location.getBlockY() + + (255 - location.getBlockY()), location.getBlockZ()); player.sendBlockChange(this.position.toLocation(location.getWorld()), Material.OAK_SIGN.createBlockData()); - PacketContainer openSign = ProtocolLibrary.getProtocolManager().createPacket(PacketType.Play.Server.OPEN_SIGN_EDITOR); - PacketContainer signData = ProtocolLibrary.getProtocolManager().createPacket(PacketType.Play.Server.TILE_ENTITY_DATA); + PacketContainer openSign = + ProtocolLibrary.getProtocolManager().createPacket(PacketType.Play.Server.OPEN_SIGN_EDITOR); + PacketContainer signData = + ProtocolLibrary.getProtocolManager().createPacket(PacketType.Play.Server.TILE_ENTITY_DATA); openSign.getBlockPositionModifier().write(0, this.position); NbtCompound signNBT = (NbtCompound) signData.getNbtModifier().read(0); for (int line = 0; line < SIGN_LINES; line++) { - signNBT.put("Text" + (line + 1), this.text.size() > line ? String.format(NBT_FORMAT, color(this.text.get(line))) : ""); + signNBT.put("Text" + (line + 1), this.text.size() > line ? String.format(NBT_FORMAT, + color(this.text.get(line))) : ""); } signNBT.put("x", this.position.getX()); diff --git a/src/main/java/edu/whimc/observations/libraries/SpigotCallback.java b/src/main/java/edu/whimc/observations/libraries/SpigotCallback.java index e6715f2..ebf3428 100644 --- a/src/main/java/edu/whimc/observations/libraries/SpigotCallback.java +++ b/src/main/java/edu/whimc/observations/libraries/SpigotCallback.java @@ -1,5 +1,12 @@ package edu.whimc.observations.libraries; +import java.util.Arrays; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; +import java.util.Set; +import java.util.UUID; +import java.util.function.Consumer; import net.md_5.bungee.api.chat.ClickEvent; import net.md_5.bungee.api.chat.TextComponent; import org.bukkit.Bukkit; @@ -9,9 +16,6 @@ import org.bukkit.event.player.PlayerCommandPreprocessEvent; import org.bukkit.plugin.Plugin; -import java.util.*; -import java.util.function.Consumer; - public class SpigotCallback { private final Map> callbacks = new HashMap<>(); diff --git a/src/main/java/edu/whimc/observations/models/Observation.java b/src/main/java/edu/whimc/observations/models/Observation.java index f1b714f..8dda5dc 100644 --- a/src/main/java/edu/whimc/observations/models/Observation.java +++ b/src/main/java/edu/whimc/observations/models/Observation.java @@ -6,13 +6,6 @@ import edu.whimc.observations.Observations; import edu.whimc.observations.observetemplate.models.ObservationTemplate; import edu.whimc.observations.utils.Utils; -import org.bukkit.Bukkit; -import org.bukkit.ChatColor; -import org.bukkit.Location; -import org.bukkit.Material; -import org.bukkit.entity.Player; -import org.bukkit.inventory.ItemStack; - import java.sql.Timestamp; import java.time.Instant; import java.util.ArrayList; @@ -20,6 +13,12 @@ import java.util.List; import java.util.Set; import java.util.stream.Collectors; +import org.bukkit.Bukkit; +import org.bukkit.ChatColor; +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.entity.Player; +import org.bukkit.inventory.ItemStack; public class Observation { @@ -68,9 +67,11 @@ protected Observation(Observations plugin, int id, Timestamp timestamp, String p } public static Observation createObservation(Observations plugin, Player player, Location viewLoc, - String observation, Timestamp expiration, ObservationTemplate template) { + String observation, Timestamp expiration, + ObservationTemplate template) { Timestamp timestamp = new Timestamp(System.currentTimeMillis()); - Observation obs = new Observation(plugin, -1, timestamp, player.getName(), viewLoc, observation, expiration, template, false, true); + Observation obs = new Observation(plugin, -1, timestamp, player.getName(), viewLoc, observation, + expiration, template, false, true); observations.add(obs); return obs; } @@ -78,7 +79,8 @@ public static Observation createObservation(Observations plugin, Player player, public static Observation loadObservation(Observations plugin, int id, Timestamp timestamp, String playerName, Location viewLoc, String observation, Timestamp expiration, ObservationTemplate template, boolean isTemporary) { - Observation obs = new Observation(plugin, id, timestamp, playerName, viewLoc, observation, expiration, template, isTemporary, false); + Observation obs = new Observation(plugin, id, timestamp, playerName, viewLoc, observation, expiration, + template, isTemporary, false); observations.add(obs); return obs; } @@ -108,7 +110,9 @@ public static List getObservations() { public static Observation getObservation(int id) { for (Observation obs : observations) { - if (obs.getId() == id) return obs; + if (obs.getId() == id) { + return obs; + } } return null; @@ -214,8 +218,10 @@ public String toString() { text = Utils.coloredSubstring(text, 20) + "&7 . . ."; } - return "&9&l" + this.id + ".&r &8\"" + text + "&8\" &9> &7&o" + this.playerName + " " + - "&7(" + this.holoLoc.getWorld().getName() + ", " + this.holoLoc.getBlockX() + ", " + + return "&9&l" + this.id + ".&r &8\"" + text + "&8\" &9> &7&o" + this.playerName + " " + + + "&7(" + this.holoLoc.getWorld().getName() + ", " + this.holoLoc.getBlockX() + ", " + + this.holoLoc.getBlockY() + ", " + this.holoLoc.getBlockZ() + "&7)"; } diff --git a/src/main/java/edu/whimc/observations/observetemplate/TemplateManager.java b/src/main/java/edu/whimc/observations/observetemplate/TemplateManager.java index 5ac0842..b054f21 100644 --- a/src/main/java/edu/whimc/observations/observetemplate/TemplateManager.java +++ b/src/main/java/edu/whimc/observations/observetemplate/TemplateManager.java @@ -6,7 +6,6 @@ import edu.whimc.observations.observetemplate.gui.TemplateSelection; import edu.whimc.observations.observetemplate.models.ObservationTemplate; import edu.whimc.observations.observetemplate.models.ObservationType; - import java.util.HashMap; import java.util.Map; diff --git a/src/main/java/edu/whimc/observations/observetemplate/gui/TemplateGui.java b/src/main/java/edu/whimc/observations/observetemplate/gui/TemplateGui.java index d75c1ea..016331e 100644 --- a/src/main/java/edu/whimc/observations/observetemplate/gui/TemplateGui.java +++ b/src/main/java/edu/whimc/observations/observetemplate/gui/TemplateGui.java @@ -6,6 +6,13 @@ import edu.whimc.observations.observetemplate.models.ObservationTemplate; import edu.whimc.observations.observetemplate.models.ObservationType; import edu.whimc.observations.utils.Utils; +import java.util.Arrays; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.function.Consumer; +import java.util.stream.Collectors; import org.apache.commons.lang.StringUtils; import org.bukkit.Bukkit; import org.bukkit.Material; @@ -17,18 +24,12 @@ import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; -import org.bukkit.ChatColor; - -import java.util.*; -import java.util.function.Consumer; -import java.util.stream.Collectors; public final class TemplateGui implements Listener { private final Observations plugin; private final TemplateManager manager; - private final Map> slotActions = new HashMap<>(); /* The inventory that will hold the GUI */ @@ -104,7 +105,8 @@ private void loadTemplateInventory() { .newMenu(Collections.singletonList(Utils.color(signHeader))) .reopenIfFail(false) .response((signPlayer, strings) -> { - String response = StringUtils.join(Arrays.copyOfRange(strings,0, strings.length), ' ').trim(); + String response = StringUtils.join(Arrays.copyOfRange(strings, 0, + strings.length), ' ').trim(); if (response.isEmpty()) { return false; } diff --git a/src/main/java/edu/whimc/observations/observetemplate/gui/TemplateSelection.java b/src/main/java/edu/whimc/observations/observetemplate/gui/TemplateSelection.java index b63c528..44bfa10 100644 --- a/src/main/java/edu/whimc/observations/observetemplate/gui/TemplateSelection.java +++ b/src/main/java/edu/whimc/observations/observetemplate/gui/TemplateSelection.java @@ -9,6 +9,18 @@ import edu.whimc.observations.observetemplate.models.ObservationPrompt; import edu.whimc.observations.observetemplate.models.ObservationTemplate; import edu.whimc.observations.utils.Utils; +import java.sql.Timestamp; +import java.time.Instant; +import java.time.temporal.ChronoUnit; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.UUID; +import java.util.function.Consumer; +import java.util.regex.Pattern; import net.md_5.bungee.api.chat.ComponentBuilder; import net.md_5.bungee.api.chat.HoverEvent; import net.md_5.bungee.api.chat.HoverEvent.Action; @@ -21,13 +33,6 @@ import org.bukkit.event.player.PlayerChangedWorldEvent; import org.bukkit.event.player.PlayerQuitEvent; -import java.sql.Timestamp; -import java.time.Instant; -import java.time.temporal.ChronoUnit; -import java.util.*; -import java.util.function.Consumer; -import java.util.regex.Pattern; - public class TemplateSelection implements Listener { /* Unicode for check character */ @@ -59,7 +64,8 @@ public class TemplateSelection implements Listener { /* The response index that is being selected */ private int responseIndex = 0; - public TemplateSelection(Observations plugin, SpigotCallback spigotCallback, Player player, ObservationTemplate template) { + public TemplateSelection(Observations plugin, SpigotCallback spigotCallback, Player player, + ObservationTemplate template) { UUID uuid = player.getUniqueId(); if (ongoingSelections.containsKey(uuid)) { ongoingSelections.get(uuid).destroySelection(); @@ -122,7 +128,8 @@ private void doSelectResponse() { Player player = getPlayer(); List responses = this.prompt.getResponses(player.getWorld(), this.responseIndex); String highlight = this.template.getColor() + "&l"; - String filledIn = replaceFirst(getFilledInPrompt(), ObservationPrompt.FILLIN, highlight + "[&n " + highlight + "]&r"); + String filledIn = replaceFirst(getFilledInPrompt(), ObservationPrompt.FILLIN, highlight + "[&n " + + highlight + "]&r"); sendHeader(); Utils.msgNoPrefix(player, filledIn, ""); @@ -149,8 +156,10 @@ private void doSelectResponse() { // Send component for custom input if they have permission if (player.hasPermission(ObserveCommand.CUSTOM_RESPONSE_PERM)) { - String signHeader = this.plugin.getConfig().getString("template-gui.text.custom-response-sign-header", "&f&nYour response"); - String customResponse = this.plugin.getConfig().getString("template-gui.text.write-your-own-response", "Write your own response"); + String signHeader = this.plugin.getConfig().getString("template-gui.text.custom-response-sign-header", + "&f&nYour response"); + String customResponse = this.plugin.getConfig().getString("template-gui.text.write-your-own-response", + "Write your own response"); sendComponent( player, @@ -160,7 +169,8 @@ private void doSelectResponse() { .newMenu(Collections.singletonList(Utils.color(signHeader))) .reopenIfFail(true) .response((signPlayer, strings) -> { - String response = StringUtils.join(Arrays.copyOfRange(strings, 0, strings.length), ' ').trim(); + String response = StringUtils.join(Arrays.copyOfRange(strings, 0, strings.length), + ' ').trim(); if (response.isEmpty()) { return false; } @@ -203,7 +213,8 @@ private void doConfirm() { // Create observation object for custom event int days = plugin.getConfig().getInt("expiration-days"); Timestamp expiration = Timestamp.from(Instant.now().plus(days, ChronoUnit.DAYS)); - Observation obs = Observation.createObservation(plugin, player, player.getLocation(), filledIn, expiration, null); + Observation obs = Observation.createObservation(plugin, player, player.getLocation(), filledIn, expiration, + null); // Call custom event ObserveEvent observeEvent = new ObserveEvent(obs, player); @@ -254,7 +265,8 @@ private void sendFooter(boolean withConfirm, Consumer goBackCallback) { int days = this.plugin.getConfig().getInt("expiration-days"); Timestamp expiration = Timestamp.from(Instant.now().plus(days, ChronoUnit.DAYS)); - Observation.createObservation(this.plugin, player, player.getLocation(), text, expiration, this.template); + Observation.createObservation(this.plugin, player, player.getLocation(), text, expiration, + this.template); Utils.msg(player, "&7Your observation has been placed:", diff --git a/src/main/java/edu/whimc/observations/observetemplate/models/ObservationPrompt.java b/src/main/java/edu/whimc/observations/observetemplate/models/ObservationPrompt.java index 20d26e5..c3ce4fd 100644 --- a/src/main/java/edu/whimc/observations/observetemplate/models/ObservationPrompt.java +++ b/src/main/java/edu/whimc/observations/observetemplate/models/ObservationPrompt.java @@ -1,12 +1,11 @@ package edu.whimc.observations.observetemplate.models; -import org.bukkit.Bukkit; -import org.bukkit.World; - import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; +import org.bukkit.Bukkit; +import org.bukkit.World; public class ObservationPrompt { diff --git a/src/main/java/edu/whimc/observations/observetemplate/models/ObservationTemplate.java b/src/main/java/edu/whimc/observations/observetemplate/models/ObservationTemplate.java index 03dc462..ec955c8 100644 --- a/src/main/java/edu/whimc/observations/observetemplate/models/ObservationTemplate.java +++ b/src/main/java/edu/whimc/observations/observetemplate/models/ObservationTemplate.java @@ -2,13 +2,12 @@ import edu.whimc.observations.Observations; import edu.whimc.observations.utils.Utils; -import org.bukkit.ChatColor; -import org.bukkit.Material; -import org.bukkit.configuration.file.FileConfiguration; - import java.util.ArrayList; import java.util.List; import java.util.Map; +import org.bukkit.ChatColor; +import org.bukkit.Material; +import org.bukkit.configuration.file.FileConfiguration; public class ObservationTemplate { diff --git a/src/main/java/edu/whimc/observations/utils/Utils.java b/src/main/java/edu/whimc/observations/utils/Utils.java index 2bcb84c..95ccff4 100644 --- a/src/main/java/edu/whimc/observations/utils/Utils.java +++ b/src/main/java/edu/whimc/observations/utils/Utils.java @@ -2,10 +2,6 @@ import edu.whimc.observations.Observations; import edu.whimc.observations.models.Observation; -import net.md_5.bungee.api.chat.BaseComponent; -import org.bukkit.*; -import org.bukkit.command.CommandSender; - import java.sql.Timestamp; import java.text.DecimalFormat; import java.text.NumberFormat; @@ -17,6 +13,9 @@ import java.util.List; import java.util.stream.Collectors; import java.util.stream.Stream; +import net.md_5.bungee.api.chat.BaseComponent; +import org.bukkit.*; +import org.bukkit.command.CommandSender; public class Utils { @@ -35,7 +34,9 @@ public static void setDebug(boolean shouldDebug) { * @param str Message to print */ public static void debug(String str) { - if (!debug) return; + if (!debug) { + return; + } Bukkit.getLogger().info(color(debugPrefix + str)); } @@ -104,8 +105,13 @@ public static void listObservations(CommandSender sender, String player, String } Utils.msgNoPrefix(sender, "&7&m-----------------&r &9&lObservation List&r &7&m------------------", - " &9Player: " + (player == null ? "&7N/A" : "&8\"&7&o" + player + "&8\"") + - " &9World: " + (world == null ? "&7N/A" : "&8\"&7&o" + world + "&8\""), + " &9Player: " + + (player == null ? "&7N/A" : "&8\"&7&o" + + player + + "&8\"") + + " &9World: " + + (world == null ? "&7N/A" : "&8\"&7&o" + + world + "&8\""), ""); List matches = Observation.getObservations().stream() @@ -126,7 +132,9 @@ public static String coloredSubstring(String str, int length) { int count = 0; boolean ignore = false; for (char chr : str.toCharArray()) { - if (count >= length) break; + if (count >= length) { + break; + } newStr.append(chr); if (ignore) { @@ -134,8 +142,12 @@ public static String coloredSubstring(String str, int length) { continue; } - if (chr == ChatColor.COLOR_CHAR) ignore = true; - if (chr != ChatColor.COLOR_CHAR && !ignore) count++; + if (chr == ChatColor.COLOR_CHAR) { + ignore = true; + } + if (chr != ChatColor.COLOR_CHAR && !ignore) { + count++; + } } return newStr.toString().replace(ChatColor.COLOR_CHAR, '&'); @@ -220,7 +232,8 @@ public static List getFlaggedTabComplete(CommandSender sender, String[] public static Material matchMaterial(Observations plugin, String materialName, Material fallback) { Material material = Material.matchMaterial(materialName); if (material == null) { - plugin.getLogger().warning(Utils.color("&cUnknown material '&4" + materialName + "&c'! replacing with STONE.")); + plugin.getLogger().warning(Utils.color("&cUnknown material '&4" + materialName + + "&c'! replacing with STONE.")); return fallback; } diff --git a/src/main/java/edu/whimc/observations/utils/sql/MySQLConnection.java b/src/main/java/edu/whimc/observations/utils/sql/MySQLConnection.java index fdcbf51..1dff4d8 100644 --- a/src/main/java/edu/whimc/observations/utils/sql/MySQLConnection.java +++ b/src/main/java/edu/whimc/observations/utils/sql/MySQLConnection.java @@ -2,7 +2,6 @@ import edu.whimc.observations.Observations; import edu.whimc.observations.utils.sql.migration.SchemaManager; - import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; diff --git a/src/main/java/edu/whimc/observations/utils/sql/Queryer.java b/src/main/java/edu/whimc/observations/utils/sql/Queryer.java index 1a4ee0a..34db331 100644 --- a/src/main/java/edu/whimc/observations/utils/sql/Queryer.java +++ b/src/main/java/edu/whimc/observations/utils/sql/Queryer.java @@ -5,15 +5,19 @@ import edu.whimc.observations.observetemplate.models.ObservationTemplate; import edu.whimc.observations.observetemplate.models.ObservationType; import edu.whimc.observations.utils.Utils; +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; +import java.sql.Timestamp; +import java.sql.Types; +import java.util.function.Consumer; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.World; -import java.sql.*; -import java.util.function.Consumer; - -/** - * Handles storing position data +/** Handles storing position data. * * @author Jack Henhapl */ @@ -23,63 +27,85 @@ public class Queryer { * Query for inserting an observation into the database. */ private static final String QUERY_SAVE_OBSERVATION = - "INSERT INTO whimc_observations " + - "(time, uuid, username, world, x, y, z, yaw, pitch, observation, active, expiration, category) " + + "INSERT INTO whimc_observations " + + + "(time, uuid, username, world, x, y, z, yaw, pitch, observation, active, expiration, category) " + + "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"; /** * Query for getting all observations from the database. */ private static final String QUERY_GET_ACTIVE_OBSERVATIONS = - "SELECT * " + - "FROM whimc_observations " + + "SELECT * " + + + "FROM whimc_observations " + + "WHERE active = 1 AND (expiration IS NULL OR (expiration - time > 0))"; /** * Query for making an observation inactive. */ private static final String QUERY_MAKE_OBSERVATION_INACTIVE = - "UPDATE whimc_observations " + - "SET active=0 " + + "UPDATE whimc_observations " + + + "SET active=0 " + + "WHERE rowid=? AND active=1"; private static final String QUERY_MAKE_PLAYER_OBSERVATIONS_INACTIVE = - "UPDATE whimc_observations " + - "SET active=0 " + + "UPDATE whimc_observations " + + + "SET active=0 " + + "WHERE username=? AND active=1"; private static final String QUERY_MAKE_WORLD_OBSERVATIONS_INACTIVE = - "UPDATE whimc_observations " + - "SET active=0 " + + "UPDATE whimc_observations " + + + "SET active=0 " + + "WHERE active=1 AND world=?"; private static final String QUERY_MAKE_OBSERVATIONS_INACTIVE = - "UPDATE whimc_observations " + - "SET active=0 " + + "UPDATE whimc_observations " + + + "SET active=0 " + + "WHERE username=? AND active=1 AND world=?"; private static final String QUERY_MAKE_EXPIRED_INACTIVE = - "UPDATE whimc_observations " + - "SET active=0 " + + "UPDATE whimc_observations " + + + "SET active=0 " + + "WHERE ? > expiration"; private static final String QUERY_SET_EXPIRATION = - "UPDATE whimc_observations " + - "SET expiration=? " + + "UPDATE whimc_observations " + + + "SET expiration=? " + + "WHERE rowid=?"; private static final String QUERY_GET_INACTIVE_ID = - "SELECT * " + - "FROM whimc_observations " + + "SELECT * " + + + "FROM whimc_observations " + + "WHERE rowid=?"; private static final String QUERY_GET_INACTIVE_RANGE = - "SELECT * " + - "FROM whimc_observations " + + "SELECT * " + + + "FROM whimc_observations " + + "WHERE rowid BETWEEN ? AND ?"; private static final String QUERY_GET_INACTIVE_TIME = - "SELECT * " + - "FROM whimc_observations " + + "SELECT * " + + + "FROM whimc_observations " + + "WHERE time BETWEEN ? AND ?"; private final Observations plugin; @@ -101,10 +127,11 @@ public Queryer(Observations plugin, Consumer callback) { * @param connection MySQL Connection * @param obs Observation to save * @return PreparedStatement - * @throws SQLException + * @throws SQLException error report */ private PreparedStatement getStatement(Connection connection, Observation obs) throws SQLException { - PreparedStatement statement = connection.prepareStatement(QUERY_SAVE_OBSERVATION, Statement.RETURN_GENERATED_KEYS); + PreparedStatement statement = connection.prepareStatement(QUERY_SAVE_OBSERVATION, + Statement.RETURN_GENERATED_KEYS); String category = null; if (obs.getTemplate() != null) { @@ -149,7 +176,8 @@ private void loadObservationFromResultSet(ResultSet results, int id, boolean isT long expNum = results.getLong("expiration"); Timestamp expiration = expNum == 0 ? null : new Timestamp(expNum); String category = results.getString("category"); - ObservationTemplate template = category == null ? null : this.plugin.getTemplateManager().getTemplate(ObservationType.valueOf(category)); + ObservationTemplate template = category == null ? null : + this.plugin.getTemplateManager().getTemplate(ObservationType.valueOf(category)); sync(() -> { World world = Bukkit.getWorld(worldName); @@ -159,18 +187,30 @@ private void loadObservationFromResultSet(ResultSet results, int id, boolean isT } Location loc = new Location(world, x, y, z, yaw, pitch); - Utils.debug(" - " + id + - " | " + timestamp.getTime() + - " | " + name + - " | (" + loc.getBlockX() + ", " + loc.getBlockY() + ", " + loc.getBlockZ() + ")" + - " | " + observation + " | " + - " | " + (expiration == null ? "n/a" : expiration.getTime())); - Observation.loadObservation(this.plugin, id, timestamp, name, loc, observation, expiration, template, isTemporary); + Utils.debug(" - " + + id + + " | " + + timestamp.getTime() + + " | " + + name + + " | (" + + loc.getBlockX() + + ", " + + loc.getBlockY() + + ", " + + loc.getBlockZ() + + ")" + + " | " + + observation + + " | " + + " | " + + (expiration == null ? "n/a" : expiration.getTime())); + Observation.loadObservation(this.plugin, id, timestamp, name, loc, observation, expiration, + template, isTemporary); }); } - /** - * Stores an observation into the database and returns the obervation's ID + /** Stores an observation into the database and returns the obervation's ID. * * @param observation Observation to save * @param callback Function to call once the observation has been saved @@ -322,7 +362,8 @@ public void reactivateObservation(int id, Consumer callback) { }, callback); } - private void loadTemporaryObservation(String query, Consumer prepare, Consumer callback) { + private void loadTemporaryObservation(String query, Consumer prepare, + Consumer callback) { async(() -> { try (Connection connection = this.sqlConnection.getConnection()) { try (PreparedStatement statement = connection.prepareStatement(query)) { diff --git a/src/main/java/edu/whimc/observations/utils/sql/migration/SchemaManager.java b/src/main/java/edu/whimc/observations/utils/sql/migration/SchemaManager.java index 7a96cb4..b9be6a5 100644 --- a/src/main/java/edu/whimc/observations/utils/sql/migration/SchemaManager.java +++ b/src/main/java/edu/whimc/observations/utils/sql/migration/SchemaManager.java @@ -2,7 +2,6 @@ import edu.whimc.observations.Observations; import edu.whimc.observations.utils.sql.migration.schemas.Schema_1; - import java.io.File; import java.io.IOException; import java.nio.file.Files; diff --git a/src/main/java/edu/whimc/observations/utils/sql/migration/SchemaVersion.java b/src/main/java/edu/whimc/observations/utils/sql/migration/SchemaVersion.java index 771c5c3..a72324e 100644 --- a/src/main/java/edu/whimc/observations/utils/sql/migration/SchemaVersion.java +++ b/src/main/java/edu/whimc/observations/utils/sql/migration/SchemaVersion.java @@ -1,7 +1,6 @@ package edu.whimc.observations.utils.sql.migration; import com.google.common.io.Files; - import java.io.IOException; import java.sql.Connection; import java.sql.SQLException; diff --git a/src/main/java/edu/whimc/observations/utils/sql/migration/schemas/Schema_1.java b/src/main/java/edu/whimc/observations/utils/sql/migration/schemas/Schema_1.java index 8f928a3..240086f 100644 --- a/src/main/java/edu/whimc/observations/utils/sql/migration/schemas/Schema_1.java +++ b/src/main/java/edu/whimc/observations/utils/sql/migration/schemas/Schema_1.java @@ -1,7 +1,6 @@ package edu.whimc.observations.utils.sql.migration.schemas; import edu.whimc.observations.utils.sql.migration.SchemaVersion; - import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.SQLException; @@ -9,22 +8,38 @@ public class Schema_1 extends SchemaVersion { private static final String CREATE_TABLE = - "CREATE TABLE IF NOT EXISTS `whimc_observations` (" + - " `rowid` INT AUTO_INCREMENT NOT NULL," + - " `time` BIGINT NOT NULL," + - " `uuid` VARCHAR(36) NOT NULL," + - " `username` VARCHAR(16) NOT NULL," + - " `world` VARCHAR(64) NOT NULL," + - " `x` DOUBLE NOT NULL," + - " `y` DOUBLE NOT NULL," + - " `z` DOUBLE NOT NULL," + - " `yaw` FLOAT NOT NULL," + - " `pitch` FLOAT NOT NULL," + - " `observation` TEXT NOT NULL," + - " `active` BOOLEAN NOT NULL," + - " `expiration` BIGINT ," + - " PRIMARY KEY (`rowid`)," + - " INDEX uuid (`uuid`)," + + "CREATE TABLE IF NOT EXISTS `whimc_observations` (" + + + " `rowid` INT AUTO_INCREMENT NOT NULL," + + + " `time` BIGINT NOT NULL," + + + " `uuid` VARCHAR(36) NOT NULL," + + + " `username` VARCHAR(16) NOT NULL," + + + " `world` VARCHAR(64) NOT NULL," + + + " `x` DOUBLE NOT NULL," + + + " `y` DOUBLE NOT NULL," + + + " `z` DOUBLE NOT NULL," + + + " `yaw` FLOAT NOT NULL," + + + " `pitch` FLOAT NOT NULL," + + + " `observation` TEXT NOT NULL," + + + " `active` BOOLEAN NOT NULL," + + + " `expiration` BIGINT ," + + + " PRIMARY KEY (`rowid`)," + + + " INDEX uuid (`uuid`)," + + " INDEX username (`username`));"; public Schema_1() { diff --git a/src/main/java/edu/whimc/observations/utils/sql/migration/schemas/Schema_2.java b/src/main/java/edu/whimc/observations/utils/sql/migration/schemas/Schema_2.java index 7292e86..8b9ccab 100644 --- a/src/main/java/edu/whimc/observations/utils/sql/migration/schemas/Schema_2.java +++ b/src/main/java/edu/whimc/observations/utils/sql/migration/schemas/Schema_2.java @@ -1,7 +1,6 @@ package edu.whimc.observations.utils.sql.migration.schemas; import edu.whimc.observations.utils.sql.migration.SchemaVersion; - import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.SQLException; diff --git a/src/main/java/edu/whimc/observations/utils/sql/migration/schemas/Schema_3.java b/src/main/java/edu/whimc/observations/utils/sql/migration/schemas/Schema_3.java index b62143e..fb36093 100644 --- a/src/main/java/edu/whimc/observations/utils/sql/migration/schemas/Schema_3.java +++ b/src/main/java/edu/whimc/observations/utils/sql/migration/schemas/Schema_3.java @@ -1,7 +1,6 @@ package edu.whimc.observations.utils.sql.migration.schemas; import edu.whimc.observations.utils.sql.migration.SchemaVersion; - import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.SQLException;