use of net.minecraft.util.text.TextFormatting.GRAY in project Wynntils by Wynntils.
the class CommandLocate method execute.
@Override
public void execute(MinecraftServer server, ICommandSender sender, String[] args) throws CommandException {
if (args.length == 0) {
throw new WrongUsageException("/" + getUsage(sender));
}
List<LocationProfile> knownProfiles = mapFeatures.get(args[0]);
if (knownProfiles == null) {
// Try case insensitive search
Optional<String> match = mapFeatures.keySet().stream().filter(key -> key.toLowerCase().equals(args[0].toLowerCase())).findFirst();
if (!match.isPresent()) {
throw new WrongUsageException("Unknown map feature: " + args[0]);
} else {
knownProfiles = mapFeatures.get(match.get());
}
}
Map<Double, LocationProfile> distanceToLocations = new TreeMap<>();
Location currentLocation = new Location(McIf.player());
for (LocationProfile locationProfile : knownProfiles) {
Location location = new Location(locationProfile.getX(), currentLocation.getY(), locationProfile.getZ());
double distance = location.distance(currentLocation);
distanceToLocations.put(distance, locationProfile);
}
int numPrinted = 0;
for (Map.Entry<Double, LocationProfile> entry : distanceToLocations.entrySet()) {
double distance = entry.getKey();
LocationProfile mmp = entry.getValue();
ITextComponent startingPointMsg = new TextComponentString(mmp.getTranslatedName() + " is located at [" + mmp.getX() + ", " + mmp.getZ() + "] (" + (int) distance + " blocks)");
startingPointMsg.getStyle().setColor(GRAY);
sender.sendMessage(startingPointMsg);
numPrinted++;
if (numPrinted >= 3)
break;
}
}
use of net.minecraft.util.text.TextFormatting.GRAY in project Wynntils by Wynntils.
the class ItemProfile method generateStack.
private ItemStack generateStack() {
ItemStack stack = itemInfo.asItemStack();
if (stack.isEmpty())
return guideStack = ItemStack.EMPTY;
List<String> itemLore = new ArrayList<>();
{
// lore
if (attackSpeed != null)
itemLore.add(attackSpeed.asLore());
itemLore.add(" ");
if (damageTypes.size() > 0) {
// damage types
if (damageTypes.containsKey("neutral"))
itemLore.add(GOLD + "✣ Neutral Damage: " + damageTypes.get("neutral"));
if (damageTypes.containsKey("fire"))
itemLore.add(RED + "✣ Fire" + GRAY + " Damage: " + damageTypes.get("fire"));
if (damageTypes.containsKey("water"))
itemLore.add(AQUA + "✣ Water" + GRAY + " Damage: " + damageTypes.get("water"));
if (damageTypes.containsKey("air"))
itemLore.add(WHITE + "✣ Air" + GRAY + " Damage: " + damageTypes.get("air"));
if (damageTypes.containsKey("thunder"))
itemLore.add(YELLOW + "✣ Thunder" + GRAY + " Damage: " + damageTypes.get("thunder"));
if (damageTypes.containsKey("earth"))
itemLore.add(DARK_GREEN + "✣ Earth" + GRAY + " Damage: " + damageTypes.get("earth"));
itemLore.add(" ");
}
if (defenseTypes.size() > 0) {
// defense types
if (defenseTypes.containsKey("health"))
itemLore.add(DARK_RED + "❤ Health: " + getDefenseText("health"));
if (defenseTypes.containsKey("fire"))
itemLore.add(RED + "✣ Fire" + GRAY + " Defence: " + getDefenseText("fire"));
if (defenseTypes.containsKey("water"))
itemLore.add(AQUA + "✣ Water" + GRAY + " Defence: " + getDefenseText("water"));
if (defenseTypes.containsKey("air"))
itemLore.add(WHITE + "✣ Air" + GRAY + " Defence: " + getDefenseText("air"));
if (defenseTypes.containsKey("thunder"))
itemLore.add(YELLOW + "✣ Thunder" + GRAY + " Defence: " + getDefenseText("thunder"));
if (defenseTypes.containsKey("earth"))
itemLore.add(DARK_GREEN + "✣ Earth" + GRAY + " Defence: " + getDefenseText("earth"));
itemLore.add(" ");
}
// requirements
if (requirements.hasRequirements(itemInfo.getType())) {
if (requirements.requiresQuest())
itemLore.add(GREEN + "✔ " + GRAY + "Quest Req: " + requirements.getQuest());
if (requirements.requiresClass(itemInfo.getType()))
itemLore.add(GREEN + "✔ " + GRAY + "Class Req: " + requirements.getRealClass(itemInfo.getType()).getDisplayName());
if (requirements.getLevel() != 0)
itemLore.add(GREEN + "✔ " + GRAY + "Combat Lv. Min: " + requirements.getLevel());
if (requirements.getStrength() != 0)
itemLore.add(GREEN + "✔ " + GRAY + "Strength Min: " + requirements.getStrength());
if (requirements.getAgility() != 0)
itemLore.add(GREEN + "✔ " + GRAY + "Agility Min: " + requirements.getAgility());
if (requirements.getDefense() != 0)
itemLore.add(GREEN + "✔ " + GRAY + "Defense Min: " + requirements.getDefense());
if (requirements.getIntelligence() != 0)
itemLore.add(GREEN + "✔ " + GRAY + "Intelligence Min: " + requirements.getIntelligence());
if (requirements.getDexterity() != 0)
itemLore.add(GREEN + "✔ " + GRAY + "Dexterity Min: " + requirements.getDexterity());
itemLore.add(" ");
}
// ids
if (statuses.size() > 0) {
Map<String, String> statusLore = new HashMap<>();
for (String idName : statuses.keySet()) {
IdentificationContainer id = statuses.get(idName);
statusLore.put(idName, getIDLore(id, idName));
}
itemLore.addAll(IdentificationOrderer.INSTANCE.order(statusLore, UtilitiesConfig.Identifications.INSTANCE.addSpacing));
itemLore.add(" ");
}
// major ids
if (majorIds != null && majorIds.size() > 0) {
for (MajorIdentification majorId : getMajorIds()) {
Stream.of(StringUtils.wrapTextBySize(majorId.asLore(), 150)).forEach(c -> itemLore.add(DARK_AQUA + c));
}
itemLore.add(" ");
}
// powders
if (powderAmount > 0)
itemLore.add(GRAY + "[" + powderAmount + " Powder Slots]");
// item tier
itemLore.add(tier.asLore());
// untradable
if (restriction != null)
itemLore.add(RED + StringUtils.capitalizeFirst(restriction) + " Item");
// item lore
if (lore != null && !lore.isEmpty()) {
itemLore.addAll(McIf.mc().fontRenderer.listFormattedStringToWidth(DARK_GRAY + this.getLore(), 150));
}
}
// updating lore and name
{
NBTTagCompound tag = new NBTTagCompound();
NBTTagCompound display = new NBTTagCompound();
NBTTagList loreList = new NBTTagList();
itemLore.forEach(c -> loreList.appendTag(new NBTTagString(c)));
display.setTag("Lore", loreList);
// item display name
display.setString("Name", tier.getTextColor() + displayName);
// armor color
if (itemInfo.isArmorColorValid())
display.setInteger("color", itemInfo.getArmorColorAsInt());
tag.setTag("display", display);
// this allow items like reliks to have damage
tag.setBoolean("Unbreakable", true);
stack.setTagCompound(tag);
}
return guideStack = stack;
}
Aggregations