Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion buildSrc/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ dependencies {
implementation 'com.google.guava:guava:25.1-jre'
implementation 'org.ow2.asm:asm:9.9.1'
implementation 'org.ow2.asm:asm-tree:9.9.1'
implementation 'net.minecraftforge:srgutils:0.6.2'
implementation 'net.minecraftforge:srgutils:0.6.6'
implementation 'org.tukaani:xz:1.8' // Extract API, to extract the runtime jars, as Mojang uses lzma
implementation 'de.undercouch:gradle-download-task:4.1.1' // Bulk DownloadLibraries task
implementation 'net.minecraftforge:mapping-verifier:2.1.3'
Expand Down
5 changes: 5 additions & 0 deletions buildSrc/settings.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
includeBuild('../../SrgUtils') {
dependencySubstitution {
substitute module('net.minecraftforge:srgutils') using project(':')
}
}
6 changes: 6 additions & 0 deletions settings.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,12 @@ plugins {

rootProject.name = 'mcp_config'

includeBuild('../SrgUtils') {
dependencySubstitution {
substitute module('net.minecraftforge:srgutils') using project(':')
}
}

ext.versions = [] as Set

def addDirectory(path) {
Expand Down
9 changes: 9 additions & 0 deletions update.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,14 @@ repositories {
maven { url = 'https://maven.minecraftforge.net/'}
}

configurations {
mappingToyClasspath
}

dependencies {
mappingToyClasspath 'net.minecraftforge:srgutils:0.6.6'
}

ext {
OLD_VERSION = project.getProperty('old_version').replace('\\', '/')
OLD_PATH = 'versions/release/' + OLD_VERSION + '/'
Expand All @@ -32,6 +40,7 @@ task downloadMappingToy(type: Download) {
}

task runMappingToy(type: JavaExec, dependsOn: downloadMappingToy) {
classpath.from configurations.mappingToyClasspath
classpath.from files(downloadMappingToy.dest)
mainClass = 'net.minecraftforge.lex.mappingtoy.MappingToy'
args = ['--libs', '--output', MAP_DATA, '--version', OLD_VERSION, '--version', NEW_VERSION]
Expand Down
31 changes: 31 additions & 0 deletions versions/pre/26/26.3-snapshot-2/config.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
{
"official": true,
"obfuscated": false,
"inject": false,
"merge_patches": true,
"java_target": 25,
"encoding": "UTF-8",
"fernflower": {
"version": "org.vineflower:vineflower:1.12.0",
"java_version": 25,
"args": ["--decompile-inner", "--remove-bridge", "--decompile-generics", "--ascii-strings", "--remove-synthetic", "--include-classpath", "--ignore-invalid-bytecode", "--bytecode-source-mapping", "--dump-code-lines", "--indent-string= ", "--log-level=TRACE", "-cfg", "{libraries}", "{input}", "{output}"]
},
"merge": {
"version": "net.minecraftforge:mergetool:1.2.5:fatjar",
"args": ["--client", "{client}", "--server", "{server}", "--ann", "{version}", "--output", "{output}", "--inject", "false", "--keep-data"],
"jvmargs": []
},
"bundler_extract_jar": {
"version": "net.minecraftforge:installertools:1.3.2:fatjar",
"args": ["--task", "bundler_extract", "--input", "{input}", "--output", "{output}", "--jar-only"]
},
"bundler_extract_libs": {
"version": "net.minecraftforge:installertools:1.3.2:fatjar",
"args": ["--task", "bundler_extract", "--input", "{input}", "--output", "{output}", "--libraries"]
},
"libraries": {
"client": ["com.google.code.findbugs:jsr305:3.0.2", "org.jetbrains:annotations:24.0.1", "ca.weblite:java-objc-bridge:1.1"],
"server": ["com.google.code.findbugs:jsr305:3.0.2", "org.jetbrains:annotations:24.0.1"],
"joined": ["com.google.code.findbugs:jsr305:3.0.2", "org.jetbrains:annotations:24.0.1", "ca.weblite:java-objc-bridge:1.1", "net.minecraftforge:mergetool-api:1.0"]
}
}
94 changes: 94 additions & 0 deletions versions/pre/26/26.3-snapshot-2/inject/mcp/client/Start.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
package mcp.client;

import java.io.File;
import java.io.IOException;
import java.util.Arrays;
import java.util.Locale;

import net.minecraft.client.main.Main;

public class Start {
public static void main(String[] args) throws IOException {
/*
* start minecraft game application
* --version is just used as 'launched version' in snoop data and is required
* Working directory is used as gameDir if not provided
*/
int INDEX = 30;
String assets = findAssets(INDEX);

Main.main(concat(new String[]{"--version", "mcp", "--accessToken", "0", "--assetsDir", assets, "--assetIndex", Integer.toString(INDEX), "--userProperties", "{}"}, args));
}

public static <T> T[] concat(T[] first, T[] second) {
T[] result = Arrays.copyOf(first, first.length + second.length);
System.arraycopy(second, 0, result, first.length, second.length);
return result;
}

private static String findAssets(int index) throws IOException {
// If we're explicitly told, use it
String ret = System.getenv("assetDirectory");
if (ret != null)
return ret;

// Minecraft is always a good option.
File dir = new File(getMCDir(), "assets");
if (hasIndex(dir, index))
return dir.getCanonicalPath();

// MCPConfig repo
dir = new File(".").getCanonicalFile();
while (dir != null && !"versions".equals(dir.getName()))
dir = dir.getParentFile();

if (dir != null) {
dir = new File(dir, "../build/assets");
if (hasIndex(dir, index))
return dir.getCanonicalPath();
}

// Random guess
return "assets";
}

private static boolean hasIndex(File root, int idx) {
return new File(root, "indexes/" + idx + ".json").exists();
}

private static File getMCDir() {
switch (OS.getCurrent()) {
case OSX:
return new File(System.getProperty("user.home") + "/Library/Application Support/minecraft");
case WINDOWS:
return new File(System.getenv("APPDATA") + "\\.minecraft");
case LINUX:
default:
return new File(System.getProperty("user.home") + "/.minecraft");
}
}

private enum OS {
WINDOWS("win"),
LINUX("linux", "unix"),
OSX("osx", "mac"),
UNKNOWN;

private final String[] keys;

OS(String... keys) {
this.keys = keys;
}

static OS getCurrent() {
String prop = System.getProperty("os.name").toLowerCase(Locale.ENGLISH);
for (OS os : OS.values()) {
for (String key : os.keys) {
if (prop.contains(key))
return os;
}
}
return UNKNOWN;
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
--- a/net/minecraft/client/Minecraft.java
+++ b/net/minecraft/client/Minecraft.java
@@ -2518,7 +2518,7 @@
}

public CompletableFuture<Void> delayTextureReload() {
- return this.<CompletableFuture<Void>>submit(this::reloadResourcePacks).thenCompose(result -> (CompletionStage<Void>)result);
+ return this.<CompletableFuture<Void>>submit((java.util.function.Supplier<CompletableFuture<Void>>)this::reloadResourcePacks).thenCompose(result -> (CompletionStage<Void>)result);
}

public void updateReportEnvironment(final ReportEnvironment environment) {
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
--- a/net/minecraft/client/OptionInstance.java
+++ b/net/minecraft/client/OptionInstance.java
@@ -237,7 +237,7 @@
final int width,
final OptionInstance.ValueUpdateListener<? super T> onValueChanged
) {
- return instance -> CycleButton.builder(instance.toString, instance::get)
+ return instance -> CycleButton.builder(instance.toString, (Supplier<T>)instance::get)
.withValues(this.valueListSupplier())
.withTooltip(tooltip)
.create(x, y, width, 20, instance.caption, (var4x, value) -> {
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
--- a/net/minecraft/client/gui/components/ChatComponent.java
+++ b/net/minecraft/client/gui/components/ChatComponent.java
@@ -455,7 +455,7 @@
}

public void openScreen(final ChatComponent.ChatMethod chatMethod, final ChatScreen.ChatConstructor<?> chat) {
- this.minecraft.gui.setScreen(this.createScreen(chatMethod, (ChatScreen.ChatConstructor<Screen>)chat));
+ this.minecraft.gui.setScreen(this.createScreen(chatMethod, (ChatScreen.ChatConstructor<ChatScreen>)chat));
}

public void preserveCurrentChatScreen() {
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
--- a/net/minecraft/client/gui/font/FontSet.java
+++ b/net/minecraft/client/gui/font/FontSet.java
@@ -100,7 +100,7 @@
}

Set<GlyphProvider> usedProviders = Sets.newHashSet();
- supportedGlyphs.forEach(codepoint -> {
+ supportedGlyphs.forEach((int codepoint) -> {
for (GlyphProvider provider : selectedProviders) {
UnbakedGlyph glyph = provider.getGlyph(codepoint);
if (glyph != null) {
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
--- a/net/minecraft/client/gui/screens/PresetFlatWorldScreen.java
+++ b/net/minecraft/client/gui/screens/PresetFlatWorldScreen.java
@@ -284,7 +284,7 @@
public Entry(final Holder<FlatLevelGeneratorPreset> preset) {
this.preset = preset.value();
this.name = preset.unwrapKey()
- .map(key -> Component.translatable(key.identifier().toLanguageKey("flat_world_preset")))
+ .map(key -> (Component)Component.translatable(key.identifier().toLanguageKey("flat_world_preset")))
.orElse(PresetFlatWorldScreen.UNKNOWN_PRESET);
}

Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
--- a/net/minecraft/client/gui/screens/inventory/BookViewScreen.java
+++ b/net/minecraft/client/gui/screens/inventory/BookViewScreen.java
@@ -271,7 +271,7 @@
}

WritableBookContent writableContent = itemStack.get(DataComponents.WRITABLE_BOOK_CONTENT);
- return writableContent != null ? new BookViewScreen.BookAccess(writableContent.getPages(filterEnabled).map(Component::literal).toList()) : null;
+ return writableContent != null ? new BookViewScreen.BookAccess(writableContent.getPages(filterEnabled).<Component>map(Component::literal).toList()) : null;
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
--- a/net/minecraft/client/gui/screens/packs/PackSelectionScreen.java
+++ b/net/minecraft/client/gui/screens/packs/PackSelectionScreen.java
@@ -223,7 +223,7 @@
try {
Util.copyBetweenDirs(pack.getParent(), targetDir, path);
} catch (IOException e) {
- LOGGER.warn("Failed to copy datapack file from {} to {}", path, targetDir, ex);
+ LOGGER.warn("Failed to copy datapack file from {} to {}", path, targetDir, e);
showErrorToast.setTrue();
}
});
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
--- a/net/minecraft/client/gui/screens/worldselection/CreateWorldScreen.java
+++ b/net/minecraft/client/gui/screens/worldselection/CreateWorldScreen.java
@@ -540,7 +540,7 @@
try {
Files.delete(path);
} catch (IOException e) {
- LOGGER.warn("Failed to remove temporary file {}", path, ex);
+ LOGGER.warn("Failed to remove temporary file {}", path, e);
}
});
} catch (IOException e) {
@@ -596,7 +596,7 @@
targetDir = Files.createTempDirectory("mcworld-");
} catch (IOException e) {
LOGGER.warn("Failed to create temporary dir");
- throw new UncheckedIOException(ex);
+ throw new UncheckedIOException(e);
}

tempDataPackDir.setValue(targetDir);
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
--- a/net/minecraft/client/gui/screens/worldselection/WorldCreationUiState.java
+++ b/net/minecraft/client/gui/screens/worldselection/WorldCreationUiState.java
@@ -315,7 +315,7 @@
public Component describePreset() {
return Optional.ofNullable(this.preset)
.flatMap(Holder::unwrapKey)
- .map(key -> Component.translatable(key.identifier().toLanguageKey("generator")))
+ .map(key -> (Component)Component.translatable(key.identifier().toLanguageKey("generator")))
.orElse(CUSTOM_WORLD_DESCRIPTION);
}

Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
--- a/net/minecraft/client/renderer/LevelEventHandler.java
+++ b/net/minecraft/client/renderer/LevelEventHandler.java
@@ -312,7 +312,7 @@
this.level.addDestroyBlockEffect(pos, blockState);
break;
case 2002:
- case 2007:
+ case 2007: {
Vec3 particlePos = Vec3.atBottomCenterOf(pos);
ItemParticleOption breakParticle = new ItemParticleOption(ParticleTypes.ITEM, Items.SPLASH_POTION);

@@ -352,7 +352,8 @@

this.level.playLocalSound(pos, SoundEvents.SPLASH_POTION_BREAK, SoundSource.NEUTRAL, 1.0F, random.nextFloat() * 0.1F + 0.9F, false);
break;
- case 2003:
+ }
+ case 2003: {
double x = pos.getX() + 0.5;
double y = pos.getY();
double z = pos.getZ() + 0.5;
@@ -385,6 +386,7 @@
);
}
break;
+ }
case 2004:
for (int i = 0; i < 20; i++) {
double x = pos.getX() + 0.5 + (random.nextDouble() - 0.5) * 2.0;
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
--- a/net/minecraft/client/renderer/block/dispatch/VariantSelector.java
+++ b/net/minecraft/client/renderer/block/dispatch/VariantSelector.java
@@ -26,7 +26,7 @@
Property<?> property = stateDefinition.getProperty(propertyName);
if (property != null && iterator.hasNext()) {
String propertyValue = iterator.next();
- Comparable<?> value = getValueHelper((Property<Comparable<?>>)property, propertyValue);
+ Comparable<?> value = getValueHelper(property, propertyValue);
if (value == null) {
throw new RuntimeException(
"Unknown value: '" + propertyValue + "' for blockstate property: '" + propertyName + "' " + property.getPossibleValues()
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
--- a/net/minecraft/client/renderer/blockentity/BeaconRenderer.java
+++ b/net/minecraft/client/renderer/blockentity/BeaconRenderer.java
@@ -120,22 +120,12 @@
(pose, buffer) -> renderPart(pose, buffer, color, beamStart, beamEnd, 0.0F, wnz, enx, 0.0F, wsx, 0.0F, 0.0F, esz, 0.0F, 1.0F, vv1, vv2)
);
poseStack.popPose();
- wnx = -beamGlowRadius;
- wnz = -beamGlowRadius;
- enx = beamGlowRadius;
- enz = -beamGlowRadius;
- wsx = -beamGlowRadius;
- wsz = beamGlowRadius;
- esx = beamGlowRadius;
- esz = beamGlowRadius;
- uu1 = 0.0F;
- uu2 = 1.0F;
- vv2 = -1.0F + texVOff;
- vv1 = height * scale + vv2;
+ float vv2_f = -1.0F + texVOff;
+ float vv1_f = height * scale + vv2_f;
submitNodeCollector.submitCustomGeometry(
poseStack,
RenderTypes.beaconBeam(beamLocation, true),
- (pose, buffer) -> renderPart(pose, buffer, ARGB.color(32, color), beamStart, beamEnd, wnx, wnz, enx, enz, wsx, wsz, esx, esz, 0.0F, 1.0F, vv1, vv2)
+ (pose, buffer) -> renderPart(pose, buffer, ARGB.color(32, color), beamStart, beamEnd, -beamGlowRadius, -beamGlowRadius, beamGlowRadius, -beamGlowRadius, -beamGlowRadius, beamGlowRadius, beamGlowRadius, beamGlowRadius, 0.0F, 1.0F, vv1_f, vv2_f)
);
poseStack.popPose();
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
--- a/net/minecraft/client/renderer/entity/EntityRenderDispatcher.java
+++ b/net/minecraft/client/renderer/entity/EntityRenderDispatcher.java
@@ -89,11 +89,11 @@
}

public <T extends Entity> EntityRenderer<? super T, ?> getRenderer(final T entity) {
- return switch (entity) {
- case AbstractClientPlayer player -> this.getAvatarRenderer((Map<PlayerModelType, AvatarRenderer<T>>)this.playerRenderers, (T)player);
- case ClientMannequin mannequin -> this.getAvatarRenderer((Map<PlayerModelType, AvatarRenderer<T>>)this.mannequinRenderers, (T)mannequin);
+ return (EntityRenderer<? super T, ?>)(switch (entity) {
+ case AbstractClientPlayer player -> this.getAvatarRenderer(this.playerRenderers, player);
+ case ClientMannequin mannequin -> this.getAvatarRenderer(this.mannequinRenderers, mannequin);
default -> (EntityRenderer)this.renderers.get(entity.getType());
- };
+ });
}

public AvatarRenderer<AbstractClientPlayer> getPlayerRenderer(final AbstractClientPlayer player) {
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
--- a/net/minecraft/client/renderer/feature/ModelFeatureRenderer.java
+++ b/net/minecraft/client/renderer/feature/ModelFeatureRenderer.java
@@ -62,7 +62,7 @@

@Override
public FeatureRendererType<ModelFeatureRenderer.Submit<S>> featureType() {
- return (FeatureRendererType<ModelFeatureRenderer.Submit<S>>)ModelFeatureRenderer.TYPE;
+ return (FeatureRendererType<ModelFeatureRenderer.Submit<S>>)(FeatureRendererType)ModelFeatureRenderer.TYPE;
}
}
}
Loading