mirror of
https://github.com/AtlasMediaGroup/TotalFreedomMod.git
synced 2025-07-01 20:46:41 +00:00
Completely rewrites the Block Inspector, fixes bug in BukkitTelnetBridge caused when Essentials is not installed
This commit is contained in:
@ -1,23 +1,30 @@
|
||||
package me.totalfreedom.totalfreedommod.command;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import me.totalfreedom.totalfreedommod.bridge.CoreProtectBridge;
|
||||
import java.util.Optional;
|
||||
import java.util.stream.IntStream;
|
||||
|
||||
import me.totalfreedom.totalfreedommod.player.PlayerData;
|
||||
import me.totalfreedom.totalfreedommod.rank.Rank;
|
||||
import me.totalfreedom.totalfreedommod.util.FUtil;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
@CommandPermissions(level = Rank.OP, source = SourceType.ONLY_IN_GAME)
|
||||
@CommandParameters(description = "Block inspector tool for operators", usage = "/<command> [history] <page>", aliases = "ins")
|
||||
@CommandParameters(description = "Block inspector tool for operators.", usage = "/<command> [history] [page]", aliases = "ins")
|
||||
public class Command_inspect extends FreedomCommand
|
||||
{
|
||||
|
||||
@Override
|
||||
public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
|
||||
{
|
||||
if (!plugin.cpb.isEnabled())
|
||||
{
|
||||
msg("CoreProtect is not enabled on this server.");
|
||||
return true;
|
||||
}
|
||||
|
||||
if (args.length == 0)
|
||||
{
|
||||
PlayerData playerData = plugin.pl.getData(playerSender);
|
||||
@ -39,31 +46,40 @@ public class Command_inspect extends FreedomCommand
|
||||
}
|
||||
catch (NumberFormatException e)
|
||||
{
|
||||
msg("Invalid number", ChatColor.RED);
|
||||
}
|
||||
}
|
||||
|
||||
FUtil.PaginationList<String> paged = CoreProtectBridge.HISTORY_MAP.get(playerSender);
|
||||
if (paged != null)
|
||||
{
|
||||
if (pageIndex < 1 || pageIndex > paged.getPageCount())
|
||||
{
|
||||
msg("Not a valid page number", ChatColor.RED);
|
||||
msg("Invalid number.", ChatColor.RED);
|
||||
return true;
|
||||
}
|
||||
|
||||
msg("---- " + net.md_5.bungee.api.ChatColor.of("#30ade4") + "Block Inspector" + ChatColor.WHITE + " ---- ", ChatColor.WHITE);
|
||||
|
||||
List<String> page = paged.getPage(pageIndex);
|
||||
for (String entries : page)
|
||||
{
|
||||
msg(entries);
|
||||
}
|
||||
|
||||
msg("Page " + pageIndex + "/" + paged.getPageCount() + " | To index through the pages, type " + net.md_5.bungee.api.ChatColor.of("#30ade4") + "/ins history <page>", ChatColor.WHITE);
|
||||
return true;
|
||||
}
|
||||
|
||||
int godDammit = pageIndex;
|
||||
Optional.ofNullable(plugin.cpb.getHistoryForPlayer(playerSender)).ifPresentOrElse(page ->
|
||||
plugin.cpb.showPageToPlayer(playerSender, page, godDammit),
|
||||
() -> msg("You haven't inspected anything yet!", ChatColor.RED));
|
||||
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> getTabCompleteOptions(CommandSender sender, Command command, String alias, String[] args)
|
||||
{
|
||||
if (args.length == 1)
|
||||
{
|
||||
return Collections.singletonList("history");
|
||||
}
|
||||
else if (args.length == 2 && args[0].equalsIgnoreCase("history") && plugin.cpb.isEnabled()
|
||||
&& sender instanceof Player player && plugin.cpb.hasHistory(player))
|
||||
{
|
||||
return IntStream.rangeClosed(1, plugin.cpb.getHistoryForPlayer(player).getPageCount()).limit(50)
|
||||
.mapToObj(String::valueOf).toList();
|
||||
}
|
||||
else
|
||||
{
|
||||
return Collections.emptyList();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user