Skip to content

Commit

Permalink
Merge pull request Civcraft#13 from okx-code/civ14
Browse files Browse the repository at this point in the history
refactoring and minor improvements
  • Loading branch information
Maxopoly authored Oct 26, 2019
2 parents 933cacf + 38f70ea commit e8da0cd
Show file tree
Hide file tree
Showing 35 changed files with 230 additions and 253 deletions.
10 changes: 5 additions & 5 deletions src/main/java/vg/civcraft/mc/civmodcore/CoreConfigManager.java
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
package vg.civcraft.mc.civmodcore;

import java.util.LinkedList;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.configuration.file.FileConfiguration;

import java.util.ArrayList;
import java.util.List;
import java.util.function.Function;
import java.util.logging.Logger;

import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.configuration.file.FileConfiguration;

public abstract class CoreConfigManager {

protected ACivMod plugin;
Expand Down Expand Up @@ -52,7 +52,7 @@ protected static <T> List<T> parseList(ConfigurationSection config, String key,
if (!config.isList(key)) {
return null;
}
List<T> result = new LinkedList<>();
List<T> result = new ArrayList<>();
for (String entry : config.getStringList(key)) {
T item = function.apply(entry);
if (item != null) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package vg.civcraft.mc.civmodcore.chatDialog;

import java.util.List;

import org.bukkit.Bukkit;
import org.bukkit.conversations.Conversation;
import org.bukkit.conversations.ConversationContext;
import org.bukkit.conversations.ConversationFactory;
Expand All @@ -10,6 +9,8 @@
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;

import java.util.List;

public abstract class Dialog {

protected Player player;
Expand All @@ -24,6 +25,8 @@ public Dialog(Player player, JavaPlugin plugin, final String toDisplay) {
DialogManager.registerDialog(player, this);
this.player = player;

Bukkit.getScheduler().runTask(plugin, player::closeInventory);

convo = new ConversationFactory(plugin).withModality(false).withLocalEcho(false)
.withFirstPrompt(new StringPrompt() {

Expand Down
Original file line number Diff line number Diff line change
@@ -1,18 +1,17 @@
package vg.civcraft.mc.civmodcore.command;

import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;

import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;

import vg.civcraft.mc.civmodcore.ratelimiting.RateLimiter;
import vg.civcraft.mc.civmodcore.util.TextUtil;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@Deprecated
public abstract class CommandHandler {

Expand Down Expand Up @@ -83,7 +82,7 @@ public List<String> complete(CommandSender sender, org.bukkit.command.Command cm
completeArg = args[args.length - 1].toLowerCase();
}
if (completes == null) {
completes = new LinkedList<String>();
completes = new ArrayList<>();
for (Player p : Bukkit.getOnlinePlayers()) {
if (p.getName().toLowerCase().startsWith(completeArg)) {
completes.add(p.getName());
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,14 @@
package vg.civcraft.mc.civmodcore.command;

import java.util.Collection;
import java.util.LinkedList;
import java.util.List;
import java.util.function.Function;

import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;

import vg.civcraft.mc.civmodcore.ratelimiting.RateLimiter;

import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.function.Function;

public abstract class StandaloneCommand {

protected int minArgs = 0;
Expand Down Expand Up @@ -91,7 +90,7 @@ protected static List<String> doTabComplete(String arg, Collection<String> candi
}

protected static <T> List<String> doTabComplete(String arg, Collection<T> suppliers, Function<T, String> function, boolean caseSensitive) {
List<String> result = new LinkedList<>();
List<String> result = new ArrayList<>();
if (!caseSensitive) {
arg = arg.toLowerCase();
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,20 +1,5 @@
package vg.civcraft.mc.civmodcore.command;

import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.jar.JarEntry;
import java.util.jar.JarFile;

import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender;
Expand All @@ -25,19 +10,33 @@
import org.bukkit.plugin.SimplePluginManager;
import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.plugin.java.JavaPluginLoader;

import vg.civcraft.mc.civmodcore.ratelimiting.RateLimiter;
import vg.civcraft.mc.civmodcore.ratelimiting.RateLimiting;
import vg.civcraft.mc.civmodcore.util.ConfigParsing;

import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.jar.JarEntry;
import java.util.jar.JarFile;

public class StandaloneCommandHandler {

private JavaPlugin plugin;
private Map<String, StandaloneCommand> commands;

public StandaloneCommandHandler(JavaPlugin plugin) {
this.plugin = plugin;
this.commands = new HashMap<String, StandaloneCommand>();
this.commands = new HashMap<>();
loadAll();
}

Expand Down Expand Up @@ -99,23 +98,23 @@ public List<String> tabCompleteCommand(CommandSender sender, org.bukkit.command.
if (command == null) {
plugin.getLogger().warning(
"Could not tab complete command " + cmd.getName() + ", no implementation was provided");
return new LinkedList<String>();
return Collections.emptyList();
}
if (sender instanceof Player) {
if (!command.canBeRunByPlayers()) {
sender.sendMessage(ChatColor.RED + "This command can only be used from console");
return new LinkedList<String>();
return Collections.emptyList();
}
if (command.isRateLimitedToTabComplete((Player) sender)) {
sender.sendMessage(ChatColor.RED
+ "You are rate limited and have to wait before tab completing this command again");
return new LinkedList<String>();
return Collections.emptyList();
}
} else {
// console
if (!command.canBeRunByConsole()) {
sender.sendMessage(ChatColor.RED + "This command can only be used by players");
return new LinkedList<String>();
return Collections.emptyList();
}
}
return command.tabComplete(sender, args);
Expand Down
20 changes: 10 additions & 10 deletions src/main/java/vg/civcraft/mc/civmodcore/dao/ConnectionPool.java
Original file line number Diff line number Diff line change
@@ -1,29 +1,29 @@
package vg.civcraft.mc.civmodcore.dao;

import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource;

import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.logging.Level;
import java.util.logging.Logger;

import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource;

/**
* Handy Connection Pool / Database wrapper for use by all plugins.
*
*
* @author ProgrammerDan
*
*/
public class ConnectionPool {

private HikariDataSource datasource;

private Logger logger;
private final Logger logger;

/**
* Creates the Database connection pool backed by HikariCP.
*
*
* @param log
* The logger to use
* @param user
Expand Down Expand Up @@ -74,7 +74,7 @@ public ConnectionPool(Logger log, String user, String pass, String host, int por

/**
* Gets a single connection from the pool for use. Checks for null database first.
*
*
* @return A new Connection
* @throws SQLException
*/
Expand All @@ -85,7 +85,7 @@ public Connection getConnection() throws SQLException {

/**
* Closes all connections and this connection pool.
*
*
* @throws SQLException
*/
public void close() throws SQLException {
Expand All @@ -96,7 +96,7 @@ public void close() throws SQLException {

/**
* Quick test; either ends or throws an exception if data source isn't configured.
*
*
* @throws SQLException
*/
public void available() throws SQLException {
Expand All @@ -107,7 +107,7 @@ public void available() throws SQLException {

/**
* Available for direct use within this package, use the provided public methods for anything else
*
*
* @return DataSource being used
*/
HikariDataSource getHikariDataSource() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,10 @@
import java.sql.SQLException;
import java.sql.SQLWarning;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.NavigableMap;
import java.util.TreeMap;
Expand Down Expand Up @@ -69,8 +70,8 @@
*/
public class ManagedDatasource implements ConfigurationSerializable {

private static final long MAX_WAIT_FOR_LOCK = 600000l;
private static final long WAIT_PERIOD = 500l;
private static final long MAX_WAIT_FOR_LOCK = 600000L;
private static final long WAIT_PERIOD = 500L;

private ConnectionPool connections;
private Logger logger;
Expand Down Expand Up @@ -364,7 +365,7 @@ private boolean doMigrations(NavigableMap<Integer, Migration> newApply) {

}

private boolean doMigration(Integer migration, LinkedList<String> queries, boolean ignoreErrors,
private boolean doMigration(Integer migration, List<String> queries, boolean ignoreErrors,
Callable<Boolean> post) {
try (Connection connection = getConnection();) {
for (String query : queries) {
Expand Down Expand Up @@ -546,12 +547,12 @@ public void close() throws SQLException {
}

private static class Migration {
public LinkedList<String> migrations;
public List<String> migrations;
public boolean ignoreErrors;
public Callable<Boolean> postMigration;

public Migration(boolean ignoreErrors, Callable<Boolean> postMigration, String... migrations) {
this.migrations = new LinkedList<>(Arrays.asList(migrations));
this.migrations = new ArrayList<>(Arrays.asList(migrations));
this.ignoreErrors = ignoreErrors;
this.postMigration = postMigration;
}
Expand Down
4 changes: 2 additions & 2 deletions src/main/java/vg/civcraft/mc/civmodcore/dao/package-info.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@
*
* Wraps HikariCP for easy connection pooling.
*
* Plugins should use the {@link ManagedDatasource} class.
* Plugins should use the {@link vg.civcraft.mc.civmodcore.dao.ManagedDatasource} class.
*
* If you know what you're doing and know that the Managed class isn't fit for you,
* you can directly leverage {@link ConnectionPool}.
* you can directly leverage {@link vg.civcraft.mc.civmodcore.dao.ConnectionPool}.
*
* @author ProgrammerDan
*
Expand Down
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
package vg.civcraft.mc.civmodcore.inventorygui;

import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import java.util.logging.Logger;

import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.inventory.InventoryType;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
import org.bukkit.scheduler.BukkitTask;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import java.util.logging.Logger;

/**
* Represents an inventory filled with Clickables. Whenever one of those is clicked by a player, the clickables specific
* action is executed. To use those, either extend your main plugin class from ACivMod or register
Expand Down Expand Up @@ -76,7 +76,7 @@ private ClickableInventory(String name) {
log.warning("ClickableInventory title exceeds Bukkit limits: " + name);
name = name.substring(0, 32);
}
this.runnables = new LinkedList<>();
this.runnables = new ArrayList<>();
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ public void inventoryClick(InventoryClickEvent e) {
@EventHandler
public void inventoryClose(InventoryCloseEvent e) {
// for some reason getPlayer apparently isnt always a player here, but
// just a LivingEntity
// just a HumanEntity
if (!(e.getPlayer() instanceof Player)) {
return;
}
Expand Down
Loading

0 comments on commit e8da0cd

Please sign in to comment.