Skip to content

Commit

Permalink
Version 0.9
Browse files Browse the repository at this point in the history
- add option to choose if orphan check is verbose or not
- minor code changes
- wording in pom.xml / plugin.yml
- remove useless Listener implementation in TCPlugin
  • Loading branch information
BuildTools committed Dec 20, 2019
1 parent 42a1362 commit 82fad37
Show file tree
Hide file tree
Showing 5 changed files with 34 additions and 47 deletions.
4 changes: 2 additions & 2 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

<groupId>me.arboriginal</groupId>
<artifactId>TidyingChest</artifactId>
<version>0.8</version>
<version>0.9</version>

<developers>
<developer>
Expand All @@ -23,7 +23,7 @@
<maven.compiler.target>1.8</maven.compiler.target>
<spigot-api>1.13</spigot-api>
<spigot-id>tidyingchest.64206</spigot-id>
<spigo-main>TCPlugin</spigo-main>
<spigot-main>TCPlugin</spigot-main>
</properties>

<repositories>
Expand Down
71 changes: 29 additions & 42 deletions src/main/java/me/arboriginal/TidyingChest/TCManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
import java.util.List;
import java.util.UUID;
import java.util.concurrent.Callable;
import java.util.concurrent.CompletableFuture;
import java.util.function.Supplier;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
Expand Down Expand Up @@ -141,9 +140,7 @@ void del(Sign sign, Player player) {

void transfer(Inventory inventory) {
String[] sides = getChestSides(inventory);
if (sides == null) return;

asyncGet(sides, new ReSyncAction() {
if (sides != null) asyncGet(sides, new ReSyncAction() {
@Override
void execute() {
if (result == null) return;
Expand Down Expand Up @@ -189,13 +186,12 @@ void orphansCleanup() {
waitingForCleanup = new ArrayList<String>();
List<String> plugins = tc.config.getStringList("world_plugins");

if (plugins != null && !plugins.isEmpty())
for (Plugin plugin : Bukkit.getPluginManager().getPlugins()) {
String name = plugin.getName();
if (plugins != null && !plugins.isEmpty()) for (Plugin plugin : Bukkit.getPluginManager().getPlugins()) {
String name = plugin.getName();

if (plugins.contains(name) && !Bukkit.getPluginManager().isPluginEnabled(plugin))
waitingForCleanup.add(name);
}
if (plugins.contains(name) && !Bukkit.getPluginManager().isPluginEnabled(plugin))
waitingForCleanup.add(name);
}

removeOrphans();
}
Expand All @@ -206,8 +202,8 @@ void removeOrphans() {
if (waitingForCleanup.isEmpty()) {
waitingForCleanup = null;

removeOrphans(tc.config.getInt("cleanOrphans.maxRows"),
tc.config.getBoolean("cleanOrphans.checkTypes"), tc.config.getBoolean("cleanOrphans.delete"));
removeOrphans(tc.config.getInt("cleanOrphans.maxRows"), tc.config.getBoolean("cleanOrphans.checkTypes"),
tc.config.getBoolean("cleanOrphans.delete"), tc.config.getBoolean("cleanOrphans.verbose"));
}
else tc.getLogger().info(tc.prepareText("orphan_wait", "plugins", String.join(", ", waitingForCleanup)));
}
Expand All @@ -226,7 +222,6 @@ private boolean isOrphan(String location, String type) {

try {
if (signType(sign, (Types.valueOf(type) == Types.ROOT))) return false;

tc.getLogger().warning(tc.prepareText("orphan_wrong_type", "key", location));
}
catch (Exception e) {
Expand All @@ -236,7 +231,7 @@ private boolean isOrphan(String location, String type) {
return true;
}

private void removeOrphans(int maxRows, boolean checkTypes, boolean delete) {
private void removeOrphans(int maxRows, boolean checkTypes, boolean delete, boolean verbose) {
tc.getLogger().info(tc.prepareText("orphan_search"));
checkTypes &= tc.reqSign;

Expand All @@ -248,7 +243,7 @@ private void removeOrphans(int maxRows, boolean checkTypes, boolean delete) {
int count = rows.size();
if (count == 0) break;

tc.getLogger().info(
if (verbose) tc.getLogger().info(
tc.prepareText("orphan_pass", ImmutableMap.of("pass", (pass + 1) + "", "maxRows", maxRows + "")));

ArrayList<String> orphans = new ArrayList<String>();
Expand All @@ -260,8 +255,9 @@ private void removeOrphans(int maxRows, boolean checkTypes, boolean delete) {

total += count;

if (orphans.isEmpty())
tc.getLogger().info(tc.prepareText("orphan_finish", "number", count + ""));
if (orphans.isEmpty()) {
if (verbose) tc.getLogger().info(tc.prepareText("orphan_finish", "number", count + ""));
}
else if (!delete) {
removed += orphans.size();
tc.getLogger().warning(tc.prepareText("orphan_warning", "number", orphans.size() + "")
Expand All @@ -273,7 +269,7 @@ else if (tc.db.del(orphans, "orphans")) {
}
}

tc.getLogger().info(delete
if (verbose || removed > 0) tc.getLogger().info(delete
? tc.prepareText("orphan_complete", ImmutableMap.of("verified", total + "", "removed", removed + ""))
: tc.prepareText("orphans_not_del", ImmutableMap.of("verified", total + "", "orphans", removed + "")));
}
Expand Down Expand Up @@ -445,8 +441,7 @@ private boolean signRefresh(Sign sign, Player player, Types type, Material item)

if (type == Types.TARGET) {
if (item == null) signRow(sign, type, Rows.ITEM, "not_set");
else signRow(sign, type, Rows.ITEM, "item", "{item}",
(item == Material.AIR) ? TARGET_catch : item.name());
else signRow(sign, type, Rows.ITEM, "item", "{item}", (item == Material.AIR) ? TARGET_catch : item.name());
}

return sign.update();
Expand All @@ -471,13 +466,9 @@ private Types signType(Sign sign) {

private boolean signType(Sign sign, boolean root) {
String typeRow = tc.cleanText(sign.getLine(signRows.get(root ? Types.ROOT : Types.TARGET).get(Rows.TYPE)));

if (typeRow.isEmpty()) return false;
if (typeRow.equals(tc.cleanText(root ? ROOT_type : TARGET_type))) return true;

for (String alias : root ? ROOT_alias : TARGET_alias)
if (typeRow.equals(tc.cleanText(alias))) return true;

for (String alias : root ? ROOT_alias : TARGET_alias) if (typeRow.equals(tc.cleanText(alias))) return true;
return false;
}

Expand All @@ -491,12 +482,10 @@ private String[] getChestSides(Inventory inventory) {
InventoryHolder holder = inventory.getHolder();
if (holder == null) return null;

if (holder instanceof DoubleChest) {
return new String[] {
locationEncode(((DoubleChest) holder).getLeftSide().getInventory().getLocation()),
locationEncode(((DoubleChest) holder).getRightSide().getInventory().getLocation())
};
}
if (holder instanceof DoubleChest) return new String[] {
locationEncode(((DoubleChest) holder).getLeftSide().getInventory().getLocation()),
locationEncode(((DoubleChest) holder).getRightSide().getInventory().getLocation())
};

String side = locationEncode(inventory.getLocation());
return (side == null) ? null : new String[] { side };
Expand Down Expand Up @@ -541,10 +530,8 @@ private Sign getConnectedSign(Block origin, Sign sign) {

private Sign getConnectedSign(Chest chest, Sign sign) {
if (!(chest.getInventory() instanceof DoubleChestInventory)) return getConnectedSign(chest.getBlock(), sign);

DoubleChest dc = (DoubleChest) chest.getInventory().getHolder();

Sign left = getConnectedSign(((Chest) dc.getLeftSide()).getBlock(), sign);
DoubleChest dc = (DoubleChest) chest.getInventory().getHolder();
Sign left = getConnectedSign(((Chest) dc.getLeftSide()).getBlock(), sign);
return (left == null) ? getConnectedSign(((Chest) dc.getRightSide()).getBlock(), sign) : left;
}

Expand Down Expand Up @@ -691,13 +678,13 @@ private boolean transfer(Inventory inventory, UUID uid) {
// ----------------------------------------------------------------------------------------------

private void async(ReSyncAction action, Supplier<?> supplier) {
CompletableFuture.supplyAsync(supplier).whenComplete((result, errors) -> {
if (errors != null) errors.printStackTrace();
action.result = result;
// @formatter:off
try { Bukkit.getScheduler().callSyncMethod(tc, action).get(); }
catch (Exception e) { e.printStackTrace(); } // @formatter:on
});
new BukkitRunnable() {
@Override
public void run() {
action.result = supplier.get();
Bukkit.getScheduler().callSyncMethod(tc, action);
}
}.runTaskAsynchronously(tc);
}

private void asyncDel(String location, ReSyncAction action) {
Expand Down
3 changes: 1 addition & 2 deletions src/main/java/me/arboriginal/TidyingChest/TCPlugin.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,11 @@
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.event.Listener;
import org.bukkit.plugin.java.JavaPlugin;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.UnmodifiableIterator;

public class TCPlugin extends JavaPlugin implements Listener {
public class TCPlugin extends JavaPlugin {
boolean hoppers, reqSign;
FileConfiguration config;
TCManager chests;
Expand Down
1 change: 1 addition & 0 deletions src/main/resources/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,7 @@ world_aliases: {} # <== « {} » means no aliases, if you want to set aliases, s

cleanOrphans:
enabled: true # If true, when the plugin loads, it search for orphan tidying chest to remove
verbose: true # If true, you'll have more details displayed in the console when it search for orphans
delete: true # If true, found orphans are removed from database. If false, a simple warning is displayed.
maxRows: 100 # Max DB rows in each pass to interact with the database (don't put very high values of datas could be lost)
# This is to prevent databases sends or receives 1000000 rows in one time, which could be more than communication tunnel can.
Expand Down
2 changes: 1 addition & 1 deletion src/main/resources/plugin.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ author: arboriginal
website: https://www.spigotmc.org/resources/${spigot-id}/
dev-url: https://github.com/arboriginal/${project.artifactId}

main: ${project.groupId}.${project.artifactId}.${spigo-main}
main: ${project.groupId}.${project.artifactId}.${spigot-main}
api-version: ${spigot-api}

depend: [ ]
Expand Down

0 comments on commit 82fad37

Please sign in to comment.