Skip to content

Commit 5d0b570

Browse files
WIP 25w14craftmine
1 parent d2d04ad commit 5d0b570

33 files changed

+2037
-15
lines changed

build-logic/src/main/groovy/vaf.base-conventions.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ base {
2222
}
2323

2424
dependencies {
25-
compileOnly "com.viaversion:viaversion-common:5.3.0"
26-
compileOnly "com.viaversion:viabackwards-common:5.3.0"
25+
compileOnly "com.viaversion:viaversion-common:5.3.1"
26+
compileOnly "com.viaversion:viabackwards-common:5.3.1"
2727
}
2828

2929
publishing {

common/src/main/java/com/viaversion/viaaprilfools/api/AprilFoolsProtocolVersion.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ public class AprilFoolsProtocolVersion {
3535
public static final ProtocolVersion s3d_shareware = registerAprilFools(1, "3D Shareware", ProtocolVersion.v1_13_2, ProtocolVersion.v1_13_2);
3636
public static final ProtocolVersion s20w14infinite = registerAprilFools(709, "20w14infinite", ProtocolVersion.v1_15_2, ProtocolVersion.v1_16);
3737
public static final ProtocolVersion sCombatTest8c = registerSnapshot(803, "Combat Test 8c", ProtocolVersion.v1_16_1);
38+
public static final ProtocolVersion s25w14craftMine = registerAprilFools(770, 244, "25w14craftmine", ProtocolVersion.v1_21_5);
3839

3940
private static ProtocolVersion registerSnapshot(final int version, final String name, final ProtocolVersion origin) {
4041
final ProtocolVersion protocolVersion = new RedirectProtocolVersion(version, name, origin);
@@ -45,7 +46,15 @@ private static ProtocolVersion registerSnapshot(final int version, final String
4546
}
4647

4748
private static ProtocolVersion registerAprilFools(final int version, final String name, final ProtocolVersion origin, final ProtocolVersion baseProtocolVersion) {
48-
final ProtocolVersion protocolVersion = new RedirectProtocolVersion(version, name, origin) {
49+
return registerAprilFools(version, -1, name, origin, baseProtocolVersion);
50+
}
51+
52+
private static ProtocolVersion registerAprilFools(final int version, final int snapshotVersion, final String name, final ProtocolVersion origin) {
53+
return registerAprilFools(version, snapshotVersion, name, origin, origin);
54+
}
55+
56+
private static ProtocolVersion registerAprilFools(final int version, final int snapshotVersion, final String name, final ProtocolVersion origin, final ProtocolVersion baseProtocolVersion) {
57+
final ProtocolVersion protocolVersion = new RedirectProtocolVersion(version, snapshotVersion, name, null, origin) {
4958

5059
@Override
5160
public ProtocolVersion getBaseProtocolVersion() {

common/src/main/java/com/viaversion/viaaprilfools/api/VAFServerVersionProvider.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@ public VAFServerVersionProvider(final VersionProvider delegate) {
3737
public ProtocolVersion getClientProtocol(UserConnection connection) {
3838
final ProtocolVersion version = connection.getProtocolInfo().protocolVersion();
3939
if (!version.isKnown()) {
40+
System.out.println(version.getOriginalVersion());
41+
System.out.println(ProtocolVersion.getProtocol(VersionType.SPECIAL, version.getOriginalVersion()));
4042
return ProtocolVersion.getProtocol(VersionType.SPECIAL, version.getOriginalVersion());
4143
} else {
4244
return delegate.getClientProtocol(connection);

common/src/main/java/com/viaversion/viaaprilfools/api/data/AprilFoolsMappingData.java renamed to common/src/main/java/com/viaversion/viaaprilfools/api/data/VAFBackwardsMappingData.java

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,24 +23,36 @@
2323
import com.viaversion.nbt.tag.CompoundTag;
2424
import com.viaversion.viaaprilfools.ViaAprilFools;
2525
import com.viaversion.viabackwards.api.data.BackwardsMappingData;
26+
import com.viaversion.viaversion.api.data.Mappings;
2627
import com.viaversion.viaversion.api.protocol.Protocol;
2728

29+
import java.util.List;
2830
import java.util.logging.Logger;
2931

30-
public class AprilFoolsMappingData extends BackwardsMappingData {
32+
public class VAFBackwardsMappingData extends BackwardsMappingData {
3133

32-
public AprilFoolsMappingData(String unmappedVersion, String mappedVersion, Class<? extends Protocol<?, ?, ?, ?>> vvProtocolClass) {
34+
public VAFBackwardsMappingData(String unmappedVersion, String mappedVersion, Class<? extends Protocol<?, ?, ?, ?>> vvProtocolClass) {
3335
super(unmappedVersion, mappedVersion, vvProtocolClass);
3436
}
3537

38+
@Override
39+
protected List<String> identifiersFromGlobalIds(CompoundTag mappingsTag, String key) {
40+
return VAFBackwardsMappingDataLoader.INSTANCE.identifiersFromGlobalIds(mappingsTag, key);
41+
}
42+
3643
@Override
3744
protected CompoundTag readMappingsFile(String name) {
38-
return AprilFoolsMappingDataLoader.INSTANCE.loadNBTFromDir(name);
45+
return VAFBackwardsMappingDataLoader.INSTANCE.loadNBTFromDir(name);
3946
}
4047

4148
@Override
4249
protected CompoundTag readUnmappedIdentifiersFile(String name) {
43-
return AprilFoolsMappingDataLoader.INSTANCE.loadNBT(name, true);
50+
return VAFBackwardsMappingDataLoader.INSTANCE.loadNBT(name, true);
51+
}
52+
53+
@Override
54+
protected Mappings loadMappings(CompoundTag data, String key) {
55+
return VAFBackwardsMappingDataLoader.INSTANCE.loadMappings(data, key);
4456
}
4557

4658
@Override

common/src/main/java/com/viaversion/viaaprilfools/api/data/AprilFoolsMappingDataLoader.java renamed to common/src/main/java/com/viaversion/viaaprilfools/api/data/VAFBackwardsMappingDataLoader.java

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,24 @@
2626
import java.io.File;
2727
import java.util.logging.Logger;
2828

29-
public class AprilFoolsMappingDataLoader extends BackwardsMappingDataLoader {
29+
public class VAFBackwardsMappingDataLoader extends BackwardsMappingDataLoader {
3030

31-
public static final AprilFoolsMappingDataLoader INSTANCE = new AprilFoolsMappingDataLoader();
31+
public static final VAFBackwardsMappingDataLoader INSTANCE = new VAFBackwardsMappingDataLoader();
3232

33-
public AprilFoolsMappingDataLoader() {
34-
super(AprilFoolsMappingDataLoader.class, "assets/viaaprilfools/data/");
33+
public VAFBackwardsMappingDataLoader() {
34+
super(VAFBackwardsMappingDataLoader.class, "assets/viaaprilfools/data/");
35+
}
36+
37+
@Override
38+
public String identifierFromGlobalId(final String registry, final int globalId) {
39+
final String[] array = VAFMappingDataLoader.GLOBAL_IDENTIFIER_INDEXES.get(registry);
40+
if (array == null) {
41+
throw new IllegalArgumentException("Unknown global identifier key: " + registry);
42+
}
43+
if (globalId < 0 || globalId >= array.length) {
44+
throw new IllegalArgumentException("Unknown global identifier index: " + globalId);
45+
}
46+
return array[globalId];
3547
}
3648

3749
@Override
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
/*
2+
* This file is part of ViaAprilFools - https://github.com/ViaVersion/ViaAprilFools
3+
* Copyright (C) 2021-2025 the original authors
4+
* - RK_01/RaphiMC
5+
* - FlorianMichael/EnZaXD <florian.michael07@gmail.com>
6+
* Copyright (C) 2023-2025 ViaVersion and contributors
7+
*
8+
* This program is free software: you can redistribute it and/or modify
9+
* it under the terms of the GNU General Public License as published by
10+
* the Free Software Foundation, either version 3 of the License, or
11+
* (at your option) any later version.
12+
*
13+
* This program is distributed in the hope that it will be useful,
14+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
15+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16+
* GNU General Public License for more details.
17+
*
18+
* You should have received a copy of the GNU General Public License
19+
* along with this program. If not, see <http://www.gnu.org/licenses/>.
20+
*/
21+
package com.viaversion.viaaprilfools.api.data;
22+
23+
import com.viaversion.nbt.tag.CompoundTag;
24+
import com.viaversion.viaaprilfools.ViaAprilFools;
25+
import com.viaversion.viabackwards.api.data.BackwardsMappingData;
26+
import com.viaversion.viaversion.api.data.MappingDataBase;
27+
import com.viaversion.viaversion.api.data.MappingDataLoader;
28+
import com.viaversion.viaversion.api.data.Mappings;
29+
import com.viaversion.viaversion.api.protocol.Protocol;
30+
31+
import java.util.List;
32+
import java.util.logging.Logger;
33+
34+
public class VAFMappingData extends MappingDataBase {
35+
36+
public VAFMappingData(String unmappedVersion, String mappedVersion) {
37+
super(unmappedVersion, mappedVersion);
38+
}
39+
40+
@Override
41+
protected List<String> identifiersFromGlobalIds(CompoundTag mappingsTag, String key) {
42+
return VAFMappingDataLoader.INSTANCE.identifiersFromGlobalIds(mappingsTag, key);
43+
}
44+
45+
@Override
46+
protected CompoundTag readMappingsFile(String name) {
47+
return VAFMappingDataLoader.INSTANCE.loadNBT(name, true);
48+
}
49+
50+
@Override
51+
protected CompoundTag readMappedIdentifiersFile(String name) {
52+
return VAFMappingDataLoader.INSTANCE.loadNBT(name, true);
53+
}
54+
55+
@Override
56+
protected Mappings loadMappings(CompoundTag data, String key) {
57+
return VAFMappingDataLoader.INSTANCE.loadMappings(data, key);
58+
}
59+
60+
@Override
61+
protected Logger getLogger() {
62+
return ViaAprilFools.getPlatform().getLogger();
63+
}
64+
65+
}
Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
/*
2+
* This file is part of ViaAprilFools - https://github.com/ViaVersion/ViaAprilFools
3+
* Copyright (C) 2021-2025 the original authors
4+
* - RK_01/RaphiMC
5+
* - FlorianMichael/EnZaXD <florian.michael07@gmail.com>
6+
* Copyright (C) 2023-2025 ViaVersion and contributors
7+
*
8+
* This program is free software: you can redistribute it and/or modify
9+
* it under the terms of the GNU General Public License as published by
10+
* the Free Software Foundation, either version 3 of the License, or
11+
* (at your option) any later version.
12+
*
13+
* This program is distributed in the hope that it will be useful,
14+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
15+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16+
* GNU General Public License for more details.
17+
*
18+
* You should have received a copy of the GNU General Public License
19+
* along with this program. If not, see <http://www.gnu.org/licenses/>.
20+
*/
21+
package com.viaversion.viaaprilfools.api.data;
22+
23+
import com.viaversion.nbt.tag.CompoundTag;
24+
import com.viaversion.nbt.tag.ListTag;
25+
import com.viaversion.nbt.tag.StringTag;
26+
import com.viaversion.nbt.tag.Tag;
27+
import com.viaversion.viaaprilfools.ViaAprilFools;
28+
import com.viaversion.viaversion.api.data.MappingDataLoader;
29+
30+
import java.io.File;
31+
import java.util.HashMap;
32+
import java.util.Map;
33+
import java.util.logging.Logger;
34+
35+
public class VAFMappingDataLoader extends MappingDataLoader {
36+
37+
static final Map<String, String[]> GLOBAL_IDENTIFIER_INDEXES = new HashMap<>();
38+
public static final VAFMappingDataLoader INSTANCE = new VAFMappingDataLoader();
39+
40+
public VAFMappingDataLoader() {
41+
super(VAFMappingDataLoader.class, "assets/viaaprilfools/data/");
42+
}
43+
44+
public static void loadGlobalIdentifiers() {
45+
// Override VV identifier table for our own protocols/mappings
46+
final CompoundTag globalIdentifiers = INSTANCE.loadNBT("identifier-table.nbt");
47+
for (final Map.Entry<String, Tag> entry : globalIdentifiers.entrySet()) {
48+
//noinspection unchecked
49+
final ListTag<StringTag> value = (ListTag<StringTag>) entry.getValue();
50+
final String[] array = new String[value.size()];
51+
for (int i = 0, size = value.size(); i < size; i++) {
52+
array[i] = value.get(i).getValue();
53+
}
54+
GLOBAL_IDENTIFIER_INDEXES.put(entry.getKey(), array);
55+
}
56+
}
57+
58+
@Override
59+
public String identifierFromGlobalId(final String registry, final int globalId) {
60+
final String[] array = GLOBAL_IDENTIFIER_INDEXES.get(registry);
61+
if (array == null) {
62+
throw new IllegalArgumentException("Unknown global identifier key: " + registry);
63+
}
64+
if (globalId < 0 || globalId >= array.length) {
65+
throw new IllegalArgumentException("Unknown global identifier index: " + globalId);
66+
}
67+
return array[globalId];
68+
}
69+
70+
@Override
71+
public File getDataFolder() {
72+
return ViaAprilFools.getPlatform().getDataFolder();
73+
}
74+
75+
@Override
76+
public Logger getLogger() {
77+
return ViaAprilFools.getPlatform().getLogger();
78+
}
79+
80+
}

0 commit comments

Comments
 (0)