Avoid syncronous query in /lb me

and improve changes count display in sumarized changes

Fixes #819
This commit is contained in:
Brokkonaut
2021-02-20 06:32:53 +01:00
parent 76df1a4913
commit fe98370acd
5 changed files with 31 additions and 5 deletions

View File

@@ -304,7 +304,6 @@ public class CommandsHandler implements CommandExecutor {
final QueryParams params = new QueryParams(logblock);
params.setPlayer(player.getName());
params.world = player.getWorld();
player.sendMessage("Total block changes: " + logblock.getCount(params));
params.sum = SummarizationMode.TYPES;
new CommandLookup(sender, params, true);
} else {
@@ -529,13 +528,21 @@ public class CommandsHandler implements CommandExecutor {
if (!params.noCache) {
getSession(sender).lookupCache = blockChangeArray;
}
if (blockchanges.size() > linesPerPage) {
sender.sendMessage(ChatColor.DARK_AQUA.toString() + blockchanges.size() + " changes found." + (blockchanges.size() == linesLimit ? " Use 'limit -1' to see all changes." : ""));
}
if (params.sum != SummarizationMode.NONE) {
if (params.sum == SummarizationMode.NONE) {
if (blockchanges.size() > linesPerPage) {
sender.sendMessage(ChatColor.DARK_AQUA.toString() + blockchanges.size() + " changes found." + (blockchanges.size() == linesLimit ? " Use 'limit -1' to see all changes." : ""));
}
} else {
int totalChanges = 0;
for (LookupCacheElement element : blockchanges) {
totalChanges += element.getNumChanges();
}
sender.sendMessage(ChatColor.DARK_AQUA.toString() + totalChanges + " changes found.");
if (params.bct == BlockChangeType.KILLS && params.sum == SummarizationMode.PLAYERS) {
sender.sendMessage(ChatColor.DARK_AQUA.toString() + blockchanges.size() + " distinct players found.");
sender.sendMessage(ChatColor.GOLD + "Kills - Killed - Player");
} else {
sender.sendMessage(ChatColor.DARK_AQUA.toString() + blockchanges.size() + " distinct " + (params.sum == SummarizationMode.TYPES ? (params.bct == BlockChangeType.ENTITIES ? "entities" : "blocks") : "players") + " found.");
sender.sendMessage(ChatColor.GOLD + "Created - Destroyed - " + (params.sum == SummarizationMode.TYPES ? (params.bct == BlockChangeType.ENTITIES ? "Entity" : "Block") : "Player"));
}
}

View File

@@ -11,4 +11,8 @@ public interface LookupCacheElement {
}
public BaseComponent[] getLogMessage(int entry);
public default int getNumChanges() {
return 1;
}
}

View File

@@ -34,4 +34,9 @@ public class SummedBlockChanges implements LookupCacheElement {
public BaseComponent[] getLogMessage(int entry) {
return MessagingUtil.formatSummarizedChanges(created, destroyed, actor != null ? new TextComponent(actor.getName()) : prettyMaterial(Objects.toString(MaterialConverter.getMaterial(type))), 10, 10, spaceFactor);
}
@Override
public int getNumChanges() {
return created + destroyed;
}
}

View File

@@ -36,4 +36,9 @@ public class SummedEntityChanges implements LookupCacheElement {
public BaseComponent[] getLogMessage(int entry) {
return MessagingUtil.formatSummarizedChanges(created, destroyed, actor != null ? new TextComponent(actor.getName()) : prettyMaterial(Objects.toString(EntityTypeConverter.getEntityType(type))), 10, 10, spaceFactor);
}
@Override
public int getNumChanges() {
return created + destroyed;
}
}

View File

@@ -28,4 +28,9 @@ public class SummedKills implements LookupCacheElement {
public BaseComponent[] getLogMessage(int entry) {
return MessagingUtil.formatSummarizedChanges(kills, killed, new TextComponent(player.getName()), 6, 7, spaceFactor);
}
@Override
public int getNumChanges() {
return kills + killed;
}
}