3
0
Mirror von https://github.com/ViaVersion/ViaVersion.git synchronisiert 2024-11-03 14:50:30 +01:00

fixed 1.13 -> 1.12.2 statistics remapping

Dieser Commit ist enthalten in:
RK_01 2020-08-12 16:39:01 +02:00
Ursprung dfc4652da7
Commit 70d08dfc6f
2 geänderte Dateien mit 104 neuen und 61 gelöschten Zeilen

Datei anzeigen

@ -5,6 +5,7 @@ import com.google.gson.JsonObject;
import com.google.gson.JsonParseException; import com.google.gson.JsonParseException;
import net.md_5.bungee.api.ChatColor; import net.md_5.bungee.api.ChatColor;
import us.myles.ViaVersion.api.PacketWrapper; import us.myles.ViaVersion.api.PacketWrapper;
import us.myles.ViaVersion.api.Triple;
import us.myles.ViaVersion.api.Via; import us.myles.ViaVersion.api.Via;
import us.myles.ViaVersion.api.data.UserConnection; import us.myles.ViaVersion.api.data.UserConnection;
import us.myles.ViaVersion.api.entities.Entity1_13Types; import us.myles.ViaVersion.api.entities.Entity1_13Types;
@ -41,9 +42,7 @@ import us.myles.ViaVersion.protocols.protocol1_13to1_12_2.storage.TabCompleteTra
import us.myles.ViaVersion.protocols.protocol1_9_3to1_9_1_2.storage.ClientWorld; import us.myles.ViaVersion.protocols.protocol1_9_3to1_9_1_2.storage.ClientWorld;
import us.myles.ViaVersion.util.GsonUtil; import us.myles.ViaVersion.util.GsonUtil;
import java.util.HashMap; import java.util.*;
import java.util.Map;
import java.util.Set;
public class Protocol1_13To1_12_2 extends Protocol<ClientboundPackets1_12_1, ClientboundPackets1_13, ServerboundPackets1_12_1, ServerboundPackets1_13> { public class Protocol1_13To1_12_2 extends Protocol<ClientboundPackets1_12_1, ClientboundPackets1_13, ServerboundPackets1_12_1, ServerboundPackets1_13> {
@ -189,18 +188,22 @@ public class Protocol1_13To1_12_2 extends Protocol<ClientboundPackets1_12_1, Cli
handler(new PacketHandler() { handler(new PacketHandler() {
@Override @Override
public void handle(PacketWrapper wrapper) throws Exception { public void handle(PacketWrapper wrapper) throws Exception {
int size = wrapper.passthrough(Type.VAR_INT); int size = wrapper.read(Type.VAR_INT);
List<Triple<Integer, Integer, Integer>> remappedStats = new ArrayList<>();
for (int i = 0; i < size; i++) { for (int i = 0; i < size; i++) {
String name = wrapper.read(Type.STRING); String name = wrapper.read(Type.STRING);
String[] split = name.split("\\."); String[] split = name.split("\\.");
int categoryId = 0; int categoryId = 0;
int newId = 0; int newId = -1;
int value = wrapper.read(Type.VAR_INT);
if (split.length == 2) { if (split.length == 2) {
// Custom types // Custom types
categoryId = 8; categoryId = 8;
Integer newIdRaw = StatisticMappings.statistics.get(name); Integer newIdRaw = StatisticMappings.CUSTOM_STATS.get(name);
if (newIdRaw != null) { if (newIdRaw != null) {
newId = newIdRaw; newId = newIdRaw;
} else {
Via.getPlatform().getLogger().warning("Could not find 1.13 -> 1.12.2 statistic mapping for " + name);
} }
} else { } else {
String category = split[1]; String category = split[1];
@ -232,10 +235,15 @@ public class Protocol1_13To1_12_2 extends Protocol<ClientboundPackets1_12_1, Cli
break; break;
} }
} }
if (newId != -1)
remappedStats.add(new Triple<>(categoryId, newId, value));
}
wrapper.write(Type.VAR_INT, categoryId); // category id wrapper.write(Type.VAR_INT, remappedStats.size()); // size
wrapper.write(Type.VAR_INT, newId); // statistics id for (Triple<Integer, Integer, Integer> stat : remappedStats) {
wrapper.passthrough(Type.VAR_INT); // value 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
} }
} }
}); });

Datei anzeigen

@ -5,58 +5,93 @@ import java.util.Map;
public class StatisticMappings { public class StatisticMappings {
public static final Map<String, Integer> statistics = new HashMap<>(); public static final Map<String, Integer> CUSTOM_STATS = new HashMap<>();
static { static {
statistics.put("stat.jump", 17); CUSTOM_STATS.put("stat.leaveGame", 0);
statistics.put("stat.drop", 18); CUSTOM_STATS.put("stat.playOneMinute", 1);
statistics.put("stat.deaths", 21); CUSTOM_STATS.put("stat.timeSinceDeath", 2);
statistics.put("stat.mobKills", 22); CUSTOM_STATS.put("stat.sneakTime", 4);
statistics.put("stat.pigOneCm", 14); CUSTOM_STATS.put("stat.walkOneCm", 5);
statistics.put("stat.flyOneCm", 10); CUSTOM_STATS.put("stat.crouchOneCm", 6);
statistics.put("stat.leaveGame", 0); CUSTOM_STATS.put("stat.sprintOneCm", 7);
statistics.put("stat.diveOneCm", 11); CUSTOM_STATS.put("stat.swimOneCm", 18);
statistics.put("stat.swimOneCm", 7); CUSTOM_STATS.put("stat.fallOneCm", 9);
statistics.put("stat.fallOneCm", 8); CUSTOM_STATS.put("stat.climbOneCm", 10);
statistics.put("stat.walkOneCm", 4); CUSTOM_STATS.put("stat.flyOneCm", 11);
statistics.put("stat.boatOneCm", 13); CUSTOM_STATS.put("stat.diveOneCm", 12);
statistics.put("stat.sneakTime", 3); CUSTOM_STATS.put("stat.minecartOneCm", 13);
statistics.put("stat.horseOneCm", 15); CUSTOM_STATS.put("stat.boatOneCm", 14);
statistics.put("stat.sleepInBed", 48); CUSTOM_STATS.put("stat.pigOneCm", 15);
statistics.put("stat.fishCaught", 25); CUSTOM_STATS.put("stat.horseOneCm", 16);
statistics.put("stat.climbOneCm", 9); CUSTOM_STATS.put("stat.aviateOneCm", 17);
statistics.put("stat.aviateOneCm", 16); CUSTOM_STATS.put("stat.jump", 19);
statistics.put("stat.crouchOneCm", 5); CUSTOM_STATS.put("stat.drop", 20);
statistics.put("stat.sprintOneCm", 6); CUSTOM_STATS.put("stat.damageDealt", 21);
statistics.put("stat.animalsBred", 23); CUSTOM_STATS.put("stat.damageTaken", 22);
statistics.put("stat.chestOpened", 47); CUSTOM_STATS.put("stat.deaths", 23);
statistics.put("stat.damageTaken", 20); CUSTOM_STATS.put("stat.mobKills", 24);
statistics.put("stat.damageDealt", 19); CUSTOM_STATS.put("stat.animalsBred", 25);
statistics.put("stat.playerKills", 24); CUSTOM_STATS.put("stat.playerKills", 26);
statistics.put("stat.armorCleaned", 31); CUSTOM_STATS.put("stat.fishCaught", 27);
statistics.put("stat.flowerPotted", 40); CUSTOM_STATS.put("stat.talkedToVillager", 28);
statistics.put("stat.recordPlayed", 44); CUSTOM_STATS.put("stat.tradedWithVillage", 29);
statistics.put("stat.cauldronUsed", 30); CUSTOM_STATS.put("stat.cakeSlicesEaten", 30);
statistics.put("stat.bannerCleaned", 32); CUSTOM_STATS.put("stat.cauldronFilled", 31);
statistics.put("stat.itemEnchanted", 43); CUSTOM_STATS.put("stat.cauldronUsed", 32);
statistics.put("stat.playOneMinute", 1); CUSTOM_STATS.put("stat.armorCleaned", 33);
statistics.put("stat.minecartOneCm", 12); CUSTOM_STATS.put("stat.bannerCleaned", 34);
statistics.put("stat.timeSinceDeath", 2); CUSTOM_STATS.put("stat.brewingstandInter", 35);
statistics.put("stat.cauldronFilled", 29); CUSTOM_STATS.put("stat.beaconInteraction", 36);
statistics.put("stat.noteblockTuned", 39); CUSTOM_STATS.put("stat.dropperInspected", 37);
statistics.put("stat.noteblockPlayed", 38); CUSTOM_STATS.put("stat.hopperInspected", 38);
statistics.put("stat.cakeSlicesEaten", 28); CUSTOM_STATS.put("stat.dispenserInspecte", 39);
statistics.put("stat.hopperInspected", 36); CUSTOM_STATS.put("stat.noteblockPlayed", 40);
statistics.put("stat.shulkerBoxOpened", 49); CUSTOM_STATS.put("stat.noteblockTuned", 41);
statistics.put("stat.talkedToVillager", 26); CUSTOM_STATS.put("stat.flowerPotted", 42);
statistics.put("stat.enderchestOpened", 42); CUSTOM_STATS.put("stat.trappedChestTriggered", 43);
statistics.put("stat.dropperInspected", 35); CUSTOM_STATS.put("stat.enderchestOpened", 44);
statistics.put("stat.beaconInteraction", 34); CUSTOM_STATS.put("stat.itemEnchanted", 45);
statistics.put("stat.furnaceInteraction", 45); CUSTOM_STATS.put("stat.recordPlayed", 46);
statistics.put("stat.dispenserInspected", 37); CUSTOM_STATS.put("stat.furnaceInteraction", 47);
statistics.put("stat.tradedWithVillager", 27); CUSTOM_STATS.put("stat.craftingTableInteraction", 48);
statistics.put("stat.trappedChestTriggered", 41); CUSTOM_STATS.put("stat.chestOpened", 49);
statistics.put("stat.brewingstandInteraction", 33); CUSTOM_STATS.put("stat.sleepInBed", 50);
statistics.put("stat.craftingTableInteraction", 46); CUSTOM_STATS.put("stat.shulkerBoxOpened", 51);
CUSTOM_STATS.put("achievement.openInventory", -1);
CUSTOM_STATS.put("achievement.mineWood", -1);
CUSTOM_STATS.put("achievement.buildWorkBench", -1);
CUSTOM_STATS.put("achievement.buildPickaxe", -1);
CUSTOM_STATS.put("achievement.buildFurnace", -1);
CUSTOM_STATS.put("achievement.acquireIron", -1);
CUSTOM_STATS.put("achievement.buildHoe", -1);
CUSTOM_STATS.put("achievement.makeBread", -1);
CUSTOM_STATS.put("achievement.bakeCake", -1);
CUSTOM_STATS.put("achievement.buildBetterPickaxe", -1);
CUSTOM_STATS.put("achievement.cookFish", -1);
CUSTOM_STATS.put("achievement.onARail", -1);
CUSTOM_STATS.put("achievement.buildSword", -1);
CUSTOM_STATS.put("achievement.killEnemy", -1);
CUSTOM_STATS.put("achievement.killCow", -1);
CUSTOM_STATS.put("achievement.flyPig", -1);
CUSTOM_STATS.put("achievement.snipeSkeleton", -1);
CUSTOM_STATS.put("achievement.diamonds", -1);
CUSTOM_STATS.put("achievement.diamondsToYou", -1);
CUSTOM_STATS.put("achievement.portal", -1);
CUSTOM_STATS.put("achievement.ghast", -1);
CUSTOM_STATS.put("achievement.blazeRod", -1);
CUSTOM_STATS.put("achievement.potion", -1);
CUSTOM_STATS.put("achievement.theEnd", -1);
CUSTOM_STATS.put("achievement.theEnd2", -1);
CUSTOM_STATS.put("achievement.enchantments", -1);
CUSTOM_STATS.put("achievement.overkill", -1);
CUSTOM_STATS.put("achievement.bookcase", -1);
CUSTOM_STATS.put("achievement.breedCow", -1);
CUSTOM_STATS.put("achievement.spawnWither", -1);
CUSTOM_STATS.put("achievement.killWither", -1);
CUSTOM_STATS.put("achievement.fullBeacon", -1);
CUSTOM_STATS.put("achievement.exploreAllBiomes", -1);
CUSTOM_STATS.put("achievement.overpowered", -1);
} }
} }