From 650f732dd4767a89bbc090f2f0f0873dd06f4d97 Mon Sep 17 00:00:00 2001 From: ZeroEpoch1969 <13510767+ZeroEpoch1969@users.noreply.github.com> Date: Thu, 28 Jun 2018 11:06:13 -0700 Subject: [PATCH] Logstick stuff --- .../totalfreedommod/admin/Admin.java | 5 ++ .../command/Command_myadmin.java | 10 +++- .../rollback/RollbackManager.java | 58 ++++++++++++++----- 3 files changed, 57 insertions(+), 16 deletions(-) diff --git a/src/main/java/me/totalfreedom/totalfreedommod/admin/Admin.java b/src/main/java/me/totalfreedom/totalfreedommod/admin/Admin.java index caaa2b30..427add8c 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/admin/Admin.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/admin/Admin.java @@ -58,6 +58,9 @@ public class Admin implements ConfigLoadable, ConfigSavable, Validatable @Getter @Setter private Boolean oldTags = null; + @Getter + @Setter + private Boolean logStick = null; public static final String CONFIG_FILENAME = "admins.yml"; @@ -115,6 +118,7 @@ public class Admin implements ConfigLoadable, ConfigSavable, Validatable potionSpy = cs.getBoolean("potion_spy", false); acFormat = cs.getString("acformat", null); oldTags = cs.getBoolean("oldtags", false); + logStick = cs.getBoolean("logstick", false); } @@ -134,6 +138,7 @@ public class Admin implements ConfigLoadable, ConfigSavable, Validatable cs.set("potion_spy", potionSpy); cs.set("acformat", acFormat); cs.set("oldtags", oldTags); + cs.set("logstick", logStick); } public boolean isAtLeast(Rank pRank) diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_myadmin.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_myadmin.java index bbedc2d2..642e096f 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_myadmin.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_myadmin.java @@ -13,7 +13,7 @@ import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; @CommandPermissions(level = Rank.OP, source = SourceType.BOTH) -@CommandParameters(description = "Manage my admin entry", usage = "/ [-o ] | setlogin | clearlogin | settag | cleartag | setacformat | clearacformat> | oldtags>") +@CommandParameters(description = "Manage my admin entry", usage = "/ [-o ] | setlogin | clearlogin | settag | cleartag | setacformat | clearacformat> | oldtags | logstick>") public class Command_myadmin extends FreedomCommand { @@ -206,6 +206,14 @@ public class Command_myadmin extends FreedomCommand msg((target.getOldTags() ? "Enabled" : "Disabled") + " old tags."); return true; } + case "logstick": + { + target.setLogStick(!target.getLogStick()); + plugin.al.save(); + plugin.al.updateTables(); + msg((target.getLogStick() ? "Enabled" : "Disabled") + " log-stick lookup."); + return true; + } default: { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/rollback/RollbackManager.java b/src/main/java/me/totalfreedom/totalfreedommod/rollback/RollbackManager.java index 4161dfde..23293c0a 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/rollback/RollbackManager.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/rollback/RollbackManager.java @@ -11,10 +11,12 @@ import me.totalfreedom.totalfreedommod.FreedomService; import me.totalfreedom.totalfreedommod.TotalFreedomMod; import me.totalfreedom.totalfreedommod.util.DepreciationAggregator; import me.totalfreedom.totalfreedommod.util.FUtil; +import net.coreprotect.CoreProtectAPI.ParseResult; import org.apache.commons.lang3.StringUtils; import org.bukkit.ChatColor; import org.bukkit.Location; import org.bukkit.Material; +import org.bukkit.block.Block; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; @@ -224,31 +226,57 @@ public class RollbackManager extends FreedomService if (!event.hasItem() || event.getItem().getType() != Material.STICK - || !plugin.al.isAdmin(player)) + || !plugin.al.isAdmin(player) + || !plugin.al.getAdmin(player).getLogStick()) { return; } event.setCancelled(true); - final Location location = DepreciationAggregator.getTargetBlock(player, null, 5).getLocation(); - final List entries = plugin.rb.getEntriesAtLocation(location); + final Block block = DepreciationAggregator.getTargetBlock(player, null, 5); - if (entries.isEmpty()) + if (plugin.cpb.isEnabled()) { - FUtil.playerMsg(player, "No block edits at that location."); - return; + final List entries = plugin.cpb.getCoreProtect().getAPI().blockLookup(block, 86400); + + if (entries.isEmpty()) + { + FUtil.playerMsg(player, "No block edits at that location."); + return; + } + + FUtil.playerMsg(player, "Block edits at (" + + ChatColor.WHITE + "x" + block.getX() + + ", y" + block.getY() + + ", z" + block.getZ() + + ChatColor.BLUE + ")" + ChatColor.WHITE + ":", ChatColor.BLUE); + for (String[] entry : Lists.reverse(entries)) + { + ParseResult parsedEntry = plugin.cpb.getCoreProtect().getAPI().parseResult(entry); + FUtil.playerMsg(player, ChatColor.BLUE + parsedEntry.getActionString() + " of " + StringUtils.capitalize(parsedEntry.getType().name()) + " - " + parsedEntry.getPlayer()); + } } - - FUtil.playerMsg(player, "Block edits at (" - + ChatColor.WHITE + "x" + location.getBlockX() - + ", y" + location.getBlockY() - + ", z" + location.getBlockZ() - + ChatColor.BLUE + ")" + ChatColor.WHITE + ":", ChatColor.BLUE); - for (RollbackEntry entry : entries) + else { - FUtil.playerMsg(player, " - " + ChatColor.BLUE + entry.author + " " + entry.getType() + " " - + StringUtils.capitalize(entry.getMaterial().toString().toLowerCase()) + (entry.data == 0 ? "" : ":" + entry.data)); + final List entries = plugin.rb.getEntriesAtLocation(block.getLocation()); + + if (entries.isEmpty()) + { + FUtil.playerMsg(player, "No block edits at that location."); + return; + } + + FUtil.playerMsg(player, "Block edits at (" + + ChatColor.WHITE + "x" + block.getX() + + ", y" + block.getY() + + ", z" + block.getZ() + + ChatColor.BLUE + ")" + ChatColor.WHITE + ":", ChatColor.BLUE); + for (RollbackEntry entry : entries) + { + FUtil.playerMsg(player, " - " + ChatColor.BLUE + entry.author + " " + entry.getType() + " " + + StringUtils.capitalize(entry.getMaterial().toString().toLowerCase()) + (entry.data == 0 ? "" : ":" + entry.data)); + } } }