more command progress
This commit is contained in:
parent
0e4c801617
commit
2299ca675b
@ -24,6 +24,11 @@ import java.util.List;
|
|||||||
|
|
||||||
public class OptVillagersRadius implements VillagerOptimizerCommand, TabCompleter {
|
public class OptVillagersRadius implements VillagerOptimizerCommand, TabCompleter {
|
||||||
|
|
||||||
|
/*
|
||||||
|
* TODO: Radius limit, Cooldown, Compatibility with other types
|
||||||
|
*
|
||||||
|
* */
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String label() {
|
public String label() {
|
||||||
return "optimizevillagers";
|
return "optimizevillagers";
|
||||||
@ -50,9 +55,10 @@ public class OptVillagersRadius implements VillagerOptimizerCommand, TabComplete
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
int specifiedRadius = Integer.parseInt(args[0]) / 2;
|
int specifiedRadius = Integer.parseInt(args[0]) / 2;
|
||||||
|
|
||||||
|
VillagerManager villagerManager = VillagerOptimizer.getVillagerManager();
|
||||||
int successCount = 0;
|
int successCount = 0;
|
||||||
int failCount = 0;
|
int failCount = 0;
|
||||||
VillagerManager villagerManager = VillagerOptimizer.getVillagerManager();
|
|
||||||
|
|
||||||
for (Entity entity : player.getNearbyEntities(specifiedRadius, specifiedRadius, specifiedRadius)) {
|
for (Entity entity : player.getNearbyEntities(specifiedRadius, specifiedRadius, specifiedRadius)) {
|
||||||
if (!entity.getType().equals(EntityType.VILLAGER)) continue;
|
if (!entity.getType().equals(EntityType.VILLAGER)) continue;
|
||||||
@ -66,6 +72,8 @@ public class OptVillagersRadius implements VillagerOptimizerCommand, TabComplete
|
|||||||
wVillager.setOptimization(OptimizationType.COMMAND);
|
wVillager.setOptimization(OptimizationType.COMMAND);
|
||||||
wVillager.saveOptimizeTime();
|
wVillager.saveOptimizeTime();
|
||||||
successCount++;
|
successCount++;
|
||||||
|
} else {
|
||||||
|
failCount++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -75,6 +83,10 @@ public class OptVillagersRadius implements VillagerOptimizerCommand, TabComplete
|
|||||||
.replaceText(TextReplacementConfig.builder().matchLiteral("%amount%").replacement(success).build())
|
.replaceText(TextReplacementConfig.builder().matchLiteral("%amount%").replacement(success).build())
|
||||||
.replaceText(TextReplacementConfig.builder().matchLiteral("%radius%").replacement(radius).build())
|
.replaceText(TextReplacementConfig.builder().matchLiteral("%radius%").replacement(radius).build())
|
||||||
));
|
));
|
||||||
|
final String alreadyOptimized = Integer.toString(failCount);
|
||||||
|
VillagerOptimizer.getLang(player.locale()).command_optimize_fail.forEach(line -> player.sendMessage(line
|
||||||
|
.replaceText(TextReplacementConfig.builder().matchLiteral("%amount%").replacement(alreadyOptimized).build())
|
||||||
|
));
|
||||||
} catch (NumberFormatException e) {
|
} catch (NumberFormatException e) {
|
||||||
VillagerOptimizer.getLang(player.locale()).command_radius_invalid.forEach(player::sendMessage);
|
VillagerOptimizer.getLang(player.locale()).command_radius_invalid.forEach(player::sendMessage);
|
||||||
}
|
}
|
||||||
|
@ -1,18 +1,30 @@
|
|||||||
package me.xginko.villageroptimizer.commands.unoptimizevillagers;
|
package me.xginko.villageroptimizer.commands.unoptimizevillagers;
|
||||||
|
|
||||||
import me.xginko.villageroptimizer.VillagerOptimizer;
|
import me.xginko.villageroptimizer.VillagerOptimizer;
|
||||||
|
import me.xginko.villageroptimizer.cache.VillagerManager;
|
||||||
import me.xginko.villageroptimizer.commands.VillagerOptimizerCommand;
|
import me.xginko.villageroptimizer.commands.VillagerOptimizerCommand;
|
||||||
|
import me.xginko.villageroptimizer.enums.OptimizationType;
|
||||||
import me.xginko.villageroptimizer.enums.Permissions;
|
import me.xginko.villageroptimizer.enums.Permissions;
|
||||||
|
import me.xginko.villageroptimizer.models.WrappedVillager;
|
||||||
import net.kyori.adventure.text.Component;
|
import net.kyori.adventure.text.Component;
|
||||||
|
import net.kyori.adventure.text.TextReplacementConfig;
|
||||||
import net.kyori.adventure.text.format.NamedTextColor;
|
import net.kyori.adventure.text.format.NamedTextColor;
|
||||||
import net.kyori.adventure.text.format.TextDecoration;
|
import net.kyori.adventure.text.format.TextDecoration;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Entity;
|
||||||
|
import org.bukkit.entity.EntityType;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.entity.Villager;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
public class UnOptVillagersRadius implements VillagerOptimizerCommand {
|
public class UnOptVillagersRadius implements VillagerOptimizerCommand {
|
||||||
|
|
||||||
|
/*
|
||||||
|
* TODO: Radius limit, Cooldown, Compatibility with other types
|
||||||
|
*
|
||||||
|
* */
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String label() {
|
public String label() {
|
||||||
return "unoptimizevillagers";
|
return "unoptimizevillagers";
|
||||||
@ -27,12 +39,40 @@ public class UnOptVillagersRadius implements VillagerOptimizerCommand {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (args.length < 1) {
|
if (args.length != 1) {
|
||||||
|
VillagerOptimizer.getLang(player.locale()).command_specify_radius.forEach(player::sendMessage);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
int specifiedRadius = Integer.parseInt(args[0]) / 2;
|
||||||
|
|
||||||
|
VillagerManager villagerManager = VillagerOptimizer.getVillagerManager();
|
||||||
|
int successCount = 0;
|
||||||
|
|
||||||
|
for (Entity entity : player.getNearbyEntities(specifiedRadius, specifiedRadius, specifiedRadius)) {
|
||||||
|
if (!entity.getType().equals(EntityType.VILLAGER)) continue;
|
||||||
|
Villager villager = (Villager) entity;
|
||||||
|
Villager.Profession profession = villager.getProfession();
|
||||||
|
if (profession.equals(Villager.Profession.NITWIT) || profession.equals(Villager.Profession.NONE)) continue;
|
||||||
|
|
||||||
|
WrappedVillager wVillager = villagerManager.getOrAdd(villager);
|
||||||
|
|
||||||
|
if (wVillager.isOptimized()) {
|
||||||
|
wVillager.setOptimization(OptimizationType.OFF);
|
||||||
|
successCount++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
final String successfullyUnoptimized = Integer.toString(successCount);
|
||||||
|
final String radius = Integer.toString(specifiedRadius);
|
||||||
|
VillagerOptimizer.getLang(player.locale()).command_unoptimize_success.forEach(line -> player.sendMessage(line
|
||||||
|
.replaceText(TextReplacementConfig.builder().matchLiteral("%amount%").replacement(successfullyUnoptimized).build())
|
||||||
|
.replaceText(TextReplacementConfig.builder().matchLiteral("%radius%").replacement(radius).build())
|
||||||
|
));
|
||||||
|
} catch (NumberFormatException e) {
|
||||||
|
VillagerOptimizer.getLang(player.locale()).command_radius_invalid.forEach(player::sendMessage);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
sender.sendMessage(VillagerOptimizer.getLang(sender).no_permission);
|
sender.sendMessage(VillagerOptimizer.getLang(sender).no_permission);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user