Mirror von
https://github.com/ViaVersion/ViaVersion.git
synchronisiert 2024-12-28 17:10:13 +01:00
slight code changes for PR
Dieser Commit ist enthalten in:
Ursprung
70d08dfc6f
Commit
acfdbc5494
@ -22,52 +22,57 @@ public class TranslateRewriter {
|
||||
@Override
|
||||
protected void handleHoverEvent(JsonObject hoverEvent) {
|
||||
String action = hoverEvent.getAsJsonPrimitive("action").getAsString();
|
||||
if (action.equals("show_achievement")) {
|
||||
String value = hoverEvent.getAsJsonPrimitive("value").getAsString();
|
||||
if (AchievementTranslationMapping.get(value) != null) {
|
||||
try {
|
||||
JsonObject newLine = new JsonObject();
|
||||
newLine.addProperty("text", "\n");
|
||||
JsonArray baseArray = new JsonArray();
|
||||
baseArray.add("");
|
||||
JsonObject namePart = new JsonObject();
|
||||
JsonObject typePart = new JsonObject();
|
||||
baseArray.add(namePart);
|
||||
baseArray.add(newLine);
|
||||
baseArray.add(typePart);
|
||||
if (value.startsWith("achievement")) {
|
||||
namePart.addProperty("translate", value);
|
||||
namePart.addProperty("color", AchievementTranslationMapping.isSpecial(value) ? "dark_purple" : "green");
|
||||
typePart.addProperty("translate", "stats.tooltip.type.achievement");
|
||||
JsonObject description = new JsonObject();
|
||||
typePart.addProperty("italic", true);
|
||||
description.addProperty("translate", value + ".desc");
|
||||
baseArray.add(newLine);
|
||||
baseArray.add(description);
|
||||
} else if (value.startsWith("stat")) {
|
||||
namePart.addProperty("translate", value);
|
||||
namePart.addProperty("color", "gray");
|
||||
typePart.addProperty("translate", "stats.tooltip.type.statistic");
|
||||
typePart.addProperty("italic", true);
|
||||
}
|
||||
hoverEvent.addProperty("action", "show_text");
|
||||
hoverEvent.add("value", baseArray);
|
||||
} catch (Exception e) {
|
||||
Via.getPlatform().getLogger().warning("Error rewriting show_achievement: " + hoverEvent);
|
||||
e.printStackTrace();
|
||||
JsonObject invalidText = new JsonObject();
|
||||
invalidText.addProperty("text", "Invalid statistic/achievement!");
|
||||
invalidText.addProperty("color", "red");
|
||||
hoverEvent.addProperty("action", "show_text");
|
||||
hoverEvent.add("value", invalidText);
|
||||
}
|
||||
} else {
|
||||
JsonObject invalidText = new JsonObject();
|
||||
invalidText.addProperty("text", "Invalid statistic/achievement!");
|
||||
invalidText.addProperty("color", "red");
|
||||
hoverEvent.addProperty("action", "show_text");
|
||||
hoverEvent.add("value", invalidText);
|
||||
if (!action.equals("show_achievement")) {
|
||||
super.handleHoverEvent(hoverEvent);
|
||||
return;
|
||||
}
|
||||
|
||||
String value = hoverEvent.getAsJsonPrimitive("value").getAsString();
|
||||
if (AchievementTranslationMapping.get(value) == null) {
|
||||
JsonObject invalidText = new JsonObject();
|
||||
invalidText.addProperty("text", "Invalid statistic/achievement!");
|
||||
invalidText.addProperty("color", "red");
|
||||
hoverEvent.addProperty("action", "show_text");
|
||||
hoverEvent.add("value", invalidText);
|
||||
super.handleHoverEvent(hoverEvent);
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
JsonObject newLine = new JsonObject();
|
||||
newLine.addProperty("text", "\n");
|
||||
JsonArray baseArray = new JsonArray();
|
||||
baseArray.add("");
|
||||
JsonObject namePart = new JsonObject();
|
||||
JsonObject typePart = new JsonObject();
|
||||
baseArray.add(namePart);
|
||||
baseArray.add(newLine);
|
||||
baseArray.add(typePart);
|
||||
if (value.startsWith("achievement")) {
|
||||
namePart.addProperty("translate", value);
|
||||
namePart.addProperty("color", AchievementTranslationMapping.isSpecial(value) ? "dark_purple" : "green");
|
||||
typePart.addProperty("translate", "stats.tooltip.type.achievement");
|
||||
JsonObject description = new JsonObject();
|
||||
typePart.addProperty("italic", true);
|
||||
description.addProperty("translate", value + ".desc");
|
||||
baseArray.add(newLine);
|
||||
baseArray.add(description);
|
||||
} else if (value.startsWith("stat")) {
|
||||
namePart.addProperty("translate", value);
|
||||
namePart.addProperty("color", "gray");
|
||||
typePart.addProperty("translate", "stats.tooltip.type.statistic");
|
||||
typePart.addProperty("italic", true);
|
||||
}
|
||||
hoverEvent.addProperty("action", "show_text");
|
||||
hoverEvent.add("value", baseArray);
|
||||
} catch (Exception e) {
|
||||
Via.getPlatform().getLogger().warning("Error rewriting show_achievement: " + hoverEvent);
|
||||
e.printStackTrace();
|
||||
JsonObject invalidText = new JsonObject();
|
||||
invalidText.addProperty("text", "Invalid statistic/achievement!");
|
||||
invalidText.addProperty("color", "red");
|
||||
hoverEvent.addProperty("action", "show_text");
|
||||
hoverEvent.add("value", invalidText);
|
||||
}
|
||||
super.handleHoverEvent(hoverEvent);
|
||||
}
|
||||
|
@ -1,12 +1,14 @@
|
||||
package us.myles.ViaVersion.protocols.protocol1_12to1_11_1.data;
|
||||
|
||||
import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap;
|
||||
import it.unimi.dsi.fastutil.objects.ObjectArrayList;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
public class AchievementTranslationMapping {
|
||||
|
||||
private static final Object2ObjectOpenHashMap<String, String> ACHIEVEMENTS = new Object2ObjectOpenHashMap<>(150, 1.0f);
|
||||
private static final ObjectArrayList<String> SPECIAL_ACHIEVEMENTS = new ObjectArrayList<>(10);
|
||||
private static final Set<String> SPECIAL_ACHIEVEMENTS = new HashSet<>(10);
|
||||
|
||||
static {
|
||||
add("chat.type.achievement", "%s has just earned the achievement %s");
|
||||
@ -111,11 +113,11 @@ public class AchievementTranslationMapping {
|
||||
add("achievement.bakeCake.desc", "Wheat, sugar, milk and eggs!");
|
||||
add("achievement.buildBetterPickaxe", "Getting an Upgrade");
|
||||
add("achievement.buildBetterPickaxe.desc", "Construct a better pickaxe");
|
||||
add("achievement.overpowered", "Overpowered", true);
|
||||
addSpecial("achievement.overpowered", "Overpowered");
|
||||
add("achievement.overpowered.desc", "Eat a Notch apple");
|
||||
add("achievement.cookFish", "Delicious Fish");
|
||||
add("achievement.cookFish.desc", "Catch and cook fish!");
|
||||
add("achievement.onARail", "On A Rail", true);
|
||||
addSpecial("achievement.onARail", "On A Rail");
|
||||
add("achievement.onARail.desc", "Travel by minecart at least 1 km from where you started");
|
||||
add("achievement.buildSword", "Time to Strike!");
|
||||
add("achievement.buildSword.desc", "Use planks and sticks to make a sword");
|
||||
@ -125,9 +127,9 @@ public class AchievementTranslationMapping {
|
||||
add("achievement.killCow.desc", "Harvest some leather");
|
||||
add("achievement.breedCow", "Repopulation");
|
||||
add("achievement.breedCow.desc", "Breed two cows with wheat");
|
||||
add("achievement.flyPig", "When Pigs Fly", true);
|
||||
addSpecial("achievement.flyPig", "When Pigs Fly");
|
||||
add("achievement.flyPig.desc", "Fly a pig off a cliff");
|
||||
add("achievement.snipeSkeleton", "Sniper Duel", true);
|
||||
addSpecial("achievement.snipeSkeleton", "Sniper Duel");
|
||||
add("achievement.snipeSkeleton.desc", "Kill a skeleton with an arrow from more than 50 meters");
|
||||
add("achievement.diamonds", "DIAMONDS!");
|
||||
add("achievement.diamonds.desc", "Acquire diamonds with your iron tools");
|
||||
@ -135,27 +137,27 @@ public class AchievementTranslationMapping {
|
||||
add("achievement.diamondsToYou.desc", "Throw diamonds at another player");
|
||||
add("achievement.portal", "We Need to Go Deeper");
|
||||
add("achievement.portal.desc", "Build a portal to the Nether");
|
||||
add("achievement.ghast", "Return to Sender", true);
|
||||
addSpecial("achievement.ghast", "Return to Sender");
|
||||
add("achievement.ghast.desc", "Destroy a Ghast with a fireball");
|
||||
add("achievement.blazeRod", "Into Fire");
|
||||
add("achievement.blazeRod.desc", "Relieve a Blaze of its rod");
|
||||
add("achievement.potion", "Local Brewery");
|
||||
add("achievement.potion.desc", "Brew a potion");
|
||||
add("achievement.theEnd", "The End?", true);
|
||||
addSpecial("achievement.theEnd", "The End?");
|
||||
add("achievement.theEnd.desc", "Locate the End");
|
||||
add("achievement.theEnd2", "The End.", true);
|
||||
addSpecial("achievement.theEnd2", "The End.");
|
||||
add("achievement.theEnd2.desc", "Defeat the Ender Dragon");
|
||||
add("achievement.spawnWither", "The Beginning?");
|
||||
add("achievement.spawnWither.desc", "Spawn the Wither");
|
||||
add("achievement.killWither", "The Beginning.");
|
||||
add("achievement.killWither.desc", "Kill the Wither");
|
||||
add("achievement.fullBeacon", "Beaconator", true);
|
||||
addSpecial("achievement.fullBeacon", "Beaconator");
|
||||
add("achievement.fullBeacon.desc", "Create a full beacon");
|
||||
add("achievement.exploreAllBiomes", "Adventuring Time", true);
|
||||
addSpecial("achievement.exploreAllBiomes", "Adventuring Time");
|
||||
add("achievement.exploreAllBiomes.desc", "Discover all biomes");
|
||||
add("achievement.enchantments", "Enchanter");
|
||||
add("achievement.enchantments.desc", "Use a book, obsidian and diamonds to construct an enchantment table");
|
||||
add("achievement.overkill", "Overkill", true);
|
||||
addSpecial("achievement.overkill", "Overkill");
|
||||
add("achievement.overkill.desc", "Deal nine hearts of damage in a single hit");
|
||||
add("achievement.bookcase", "Librarian");
|
||||
add("achievement.bookcase.desc", "Build some bookshelves to improve your enchantment table");
|
||||
@ -165,7 +167,7 @@ public class AchievementTranslationMapping {
|
||||
ACHIEVEMENTS.put(key, value);
|
||||
}
|
||||
|
||||
private static void add(String key, String value, boolean special) {
|
||||
private static void addSpecial(String key, String value) {
|
||||
add(key, value);
|
||||
SPECIAL_ACHIEVEMENTS.add(key);
|
||||
}
|
||||
|
@ -5,7 +5,6 @@ import com.google.gson.JsonObject;
|
||||
import com.google.gson.JsonParseException;
|
||||
import net.md_5.bungee.api.ChatColor;
|
||||
import us.myles.ViaVersion.api.PacketWrapper;
|
||||
import us.myles.ViaVersion.api.Triple;
|
||||
import us.myles.ViaVersion.api.Via;
|
||||
import us.myles.ViaVersion.api.data.UserConnection;
|
||||
import us.myles.ViaVersion.api.entities.Entity1_13Types;
|
||||
@ -25,10 +24,7 @@ import us.myles.ViaVersion.protocols.protocol1_12_1to1_12.ServerboundPackets1_12
|
||||
import us.myles.ViaVersion.protocols.protocol1_13to1_12_2.blockconnections.ConnectionData;
|
||||
import us.myles.ViaVersion.protocols.protocol1_13to1_12_2.blockconnections.providers.BlockConnectionProvider;
|
||||
import us.myles.ViaVersion.protocols.protocol1_13to1_12_2.blockconnections.providers.PacketBlockConnectionProvider;
|
||||
import us.myles.ViaVersion.protocols.protocol1_13to1_12_2.data.BlockIdData;
|
||||
import us.myles.ViaVersion.protocols.protocol1_13to1_12_2.data.MappingData;
|
||||
import us.myles.ViaVersion.protocols.protocol1_13to1_12_2.data.RecipeData;
|
||||
import us.myles.ViaVersion.protocols.protocol1_13to1_12_2.data.StatisticMappings;
|
||||
import us.myles.ViaVersion.protocols.protocol1_13to1_12_2.data.*;
|
||||
import us.myles.ViaVersion.protocols.protocol1_13to1_12_2.metadata.MetadataRewriter1_13To1_12_2;
|
||||
import us.myles.ViaVersion.protocols.protocol1_13to1_12_2.packets.EntityPackets;
|
||||
import us.myles.ViaVersion.protocols.protocol1_13to1_12_2.packets.InventoryPackets;
|
||||
@ -189,7 +185,7 @@ public class Protocol1_13To1_12_2 extends Protocol<ClientboundPackets1_12_1, Cli
|
||||
@Override
|
||||
public void handle(PacketWrapper wrapper) throws Exception {
|
||||
int size = wrapper.read(Type.VAR_INT);
|
||||
List<Triple<Integer, Integer, Integer>> remappedStats = new ArrayList<>();
|
||||
List<StatisticData> remappedStats = new ArrayList<>();
|
||||
for (int i = 0; i < size; i++) {
|
||||
String name = wrapper.read(Type.STRING);
|
||||
String[] split = name.split("\\.");
|
||||
@ -236,14 +232,14 @@ public class Protocol1_13To1_12_2 extends Protocol<ClientboundPackets1_12_1, Cli
|
||||
}
|
||||
}
|
||||
if (newId != -1)
|
||||
remappedStats.add(new Triple<>(categoryId, newId, value));
|
||||
remappedStats.add(new StatisticData(categoryId, newId, value));
|
||||
}
|
||||
|
||||
wrapper.write(Type.VAR_INT, remappedStats.size()); // size
|
||||
for (Triple<Integer, Integer, Integer> stat : remappedStats) {
|
||||
wrapper.write(Type.VAR_INT, stat.getFirst()); // category id
|
||||
wrapper.write(Type.VAR_INT, stat.getSecond()); // statistics id
|
||||
wrapper.write(Type.VAR_INT, stat.getThird()); // value
|
||||
for (StatisticData stat : remappedStats) {
|
||||
wrapper.write(Type.VAR_INT, stat.getCategoryId()); // category id
|
||||
wrapper.write(Type.VAR_INT, stat.getNewId()); // statistics id
|
||||
wrapper.write(Type.VAR_INT, stat.getValue()); // value
|
||||
}
|
||||
}
|
||||
});
|
||||
|
@ -0,0 +1,27 @@
|
||||
package us.myles.ViaVersion.protocols.protocol1_13to1_12_2.data;
|
||||
|
||||
public class StatisticData {
|
||||
|
||||
private final int categoryId;
|
||||
private final int newId;
|
||||
private final int value;
|
||||
|
||||
public StatisticData(int categoryId, int newId, int value) {
|
||||
this.categoryId = categoryId;
|
||||
this.newId = newId;
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
public int getCategoryId() {
|
||||
return categoryId;
|
||||
}
|
||||
|
||||
public int getNewId() {
|
||||
return newId;
|
||||
}
|
||||
|
||||
public int getValue() {
|
||||
return value;
|
||||
}
|
||||
|
||||
}
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren