Skip to content

Commit

Permalink
more fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
acrylic-style committed Jul 19, 2024
1 parent 1c8a445 commit 055adfe
Show file tree
Hide file tree
Showing 7 changed files with 147 additions and 35 deletions.
11 changes: 11 additions & 0 deletions Blueberry-API/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
import net.blueberrymc.gradle.buildSrc.constants.*
import org.gradle.jvm.component.internal.DefaultJvmSoftwareComponent
import org.gradle.jvm.component.internal.JvmSoftwareComponentInternal

plugins {
id("fabric-loom") version "1.7-SNAPSHOT"
Expand Down Expand Up @@ -54,6 +56,12 @@ publishing {
)
}
}

publications {
filterIsInstance<MavenPublication>().forEach {
it.artifact(tasks.jar.get())
}
}
}

tasks {
Expand All @@ -71,5 +79,8 @@ tasks {
// restore default configuration
destinationDirectory.set(destinationDirectory.get().asFile.parentFile.resolve("libs"))
archiveClassifier.set("")
doLast {
println(project.components["java"])
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -373,6 +373,7 @@ public static void shutdownNow() {
thread = null;
init = false;
LOGGER.info("Successfully disconnected from Discord.");
Thread.dumpStack();
} catch (Throwable ignore) {}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.concurrent.atomic.AtomicInteger;

public class ServerMain {
private static final Logger LOGGER = LogManager.getLogger();
Expand Down Expand Up @@ -97,6 +98,15 @@ public static void launch(@NotNull Side side, @NotNull List<String> arguments, @
blackboard.put("universe", universe);
blackboard.put("debug", set.has("debug"));
BlueberryPreBootstrap.preBootstrap(side, universe);
AtomicInteger minecraftCount = new AtomicInteger();
NativeUtil.registerClassLoadHook((classLoader, s, aClass, protectionDomain, bytes) -> {
if (minecraftCount.get() < 5 && s.startsWith("net/minecraft")) {
LOGGER.info("{} loaded by {} / {}", s, classLoader, (classLoader == null ? "null" : classLoader).getClass());
Thread.dumpStack();
minecraftCount.incrementAndGet();
}
return null;
});
Launch.main(newArgs);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -161,8 +161,9 @@ private void launch(String[] args) {
String launchTarget = Objects.requireNonNull(primaryTweaker).getLaunchTarget();
Class<?> clazz;
try {
clazz = Class.forName(launchTarget, false, classLoader);
} catch (Exception ignored) {
clazz = classLoader.findClass(launchTarget);//Class.forName(launchTarget, false, classLoader);
} catch (Exception e) {
LOGGER.warn("Failed to load class from LaunchClassLoader", e);
clazz = Class.forName(launchTarget);
}
LOGGER.info("Loaded class {} from {} ({})", clazz.getTypeName(), ClasspathUtil.getClasspath(clazz), clazz.getClassLoader());
Expand Down
65 changes: 60 additions & 5 deletions MagmaCube-Patches/0001-decompile-fix.patch
Original file line number Diff line number Diff line change
Expand Up @@ -1030,9 +1030,33 @@ index 254da406433ee2229284cc8d30c326bed4589074..bf97c9ed6142be9237f9c115f41be251
}

diff --git a/src/main/java/net/minecraft/core/BlockPos.java b/src/main/java/net/minecraft/core/BlockPos.java
index 625898f0aa8efef5ecf96e81a3aead81133042bd..5de50377686dfc3ee61a67adabec38b5008dbfaa 100644
index 625898f0aa8efef5ecf96e81a3aead81133042bd..47989e2b424879993303a6aa676e95e96cb8b945 100644
--- a/src/main/java/net/minecraft/core/BlockPos.java
+++ b/src/main/java/net/minecraft/core/BlockPos.java
@@ -378,10 +378,10 @@ public class BlockPos extends Vec3i {
return StreamSupport.stream(betweenClosed(i, j, k, l, m, n).spliterator(), false);
}

- public static Iterable<BlockPos> betweenClosed(int i, int j, int k, int l, int m, int n) {
- int o = l - i + 1;
- int p = m - j + 1;
- int q = n - k + 1;
+ public static Iterable<BlockPos> betweenClosed(int startX, int startY, int startZ, int endX, int endY, int endZ) {
+ int o = endX - startX + 1;
+ int p = endY - startY + 1;
+ int q = endZ - startZ + 1;
int r = o * p * q;
return () -> new AbstractIterator<BlockPos>() {
private final BlockPos.MutableBlockPos cursor = new BlockPos.MutableBlockPos();
@@ -396,7 +396,7 @@ public class BlockPos extends Vec3i {
int k = j % p;
int l = j / p;
this.index++;
- return this.cursor.set(i + i, j + k, k + l);
+ return this.cursor.set(startX + i, startY + k, startZ + l);
}
}
};
@@ -453,7 +453,7 @@ public class BlockPos extends Vec3i {
}

Expand Down Expand Up @@ -1519,6 +1543,27 @@ index 46863b597998600653f5cf9418ec4e581facfcf9..299662c5564c181dbf360880e91618a0
} else {
List<T> list = Lists.<T>newArrayList(collection);
list.sort(Comparable::compareTo);
diff --git a/src/main/java/net/minecraft/network/chat/FormattedText.java b/src/main/java/net/minecraft/network/chat/FormattedText.java
index 112e3f3965ab2f297876edb2c97ec1d4c5ef8445..dbcbad3634b1a6ca1e6d47f978cc75cb024d3595 100644
--- a/src/main/java/net/minecraft/network/chat/FormattedText.java
+++ b/src/main/java/net/minecraft/network/chat/FormattedText.java
@@ -38,6 +38,7 @@ public interface FormattedText {
}

static FormattedText of(String string, Style style) {
+ Style param = style;
return new FormattedText() {
@Override
public <T> Optional<T> visit(FormattedText.ContentConsumer<T> contentConsumer) {
@@ -46,7 +47,7 @@ public interface FormattedText {

@Override
public <T> Optional<T> visit(FormattedText.StyledContentConsumer<T> styledContentConsumer, Style style) {
- return styledContentConsumer.accept(style.applyTo(style), string);
+ return styledContentConsumer.accept(param.applyTo(style), string);
}
};
}
diff --git a/src/main/java/net/minecraft/network/chat/LastSeenMessages.java b/src/main/java/net/minecraft/network/chat/LastSeenMessages.java
index 85a978c2e67022e5d98fa0fa6de93f175dd178db..f0580dc1857d6fc9f73f418a999b2958d7abdc31 100644
--- a/src/main/java/net/minecraft/network/chat/LastSeenMessages.java
Expand Down Expand Up @@ -1565,19 +1610,29 @@ index 6a41e7bac4a7fc17c861fce344cf5892f1661453..b37880399072994c26c9dae9ff562d21
V object2 = streamCodec2.decode(byteBuf);
map.put(object, object2);
diff --git a/src/main/java/net/minecraft/network/codec/StreamCodec.java b/src/main/java/net/minecraft/network/codec/StreamCodec.java
index 07a552f31227981ac60ed460f8ffa679ae065e50..17a867f1b4b1cb9f5c8b4df060b55dd2e42286b5 100644
index 07a552f31227981ac60ed460f8ffa679ae065e50..ea6d67c9d9dc33aa47ccf051b43279858dba7176 100644
--- a/src/main/java/net/minecraft/network/codec/StreamCodec.java
+++ b/src/main/java/net/minecraft/network/codec/StreamCodec.java
@@ -44,7 +44,7 @@ public interface StreamCodec<B, V> extends StreamDecoder<B, V>, StreamEncoder<B,
@@ -41,15 +41,16 @@ public interface StreamCodec<B, V> extends StreamDecoder<B, V>, StreamEncoder<B,
}

static <B, V> StreamCodec<B, V> unit(V object) {
+ V param = object;
return new StreamCodec<B, V>() {
@Override
public V decode(B object) {
- return object;
+ return (V) object;
+ return param;
}

@Override
@@ -283,18 +283,18 @@ public interface StreamCodec<B, V> extends StreamDecoder<B, V>, StreamEncoder<B,
public void encode(B object, V object2) {
- if (!object2.equals(object)) {
+ if (!object2.equals(param)) {
throw new IllegalStateException("Can't encode '" + object2 + "', expected '" + object + "'");
}
}
@@ -283,18 +284,18 @@ public interface StreamCodec<B, V> extends StreamDecoder<B, V>, StreamEncoder<B,

@Override
public T decode(B object) {
Expand Down
24 changes: 18 additions & 6 deletions MagmaCube-Patches/0005-Mods-support.patch
Original file line number Diff line number Diff line change
Expand Up @@ -355,10 +355,22 @@ index bff59290b676b800fbbc889b706b83e6422b796a..73901a1697845c78add0de3090b56d9b
RenderSystem.enableDepthTest();
this.realmsNotificationsScreen.render(guiGraphics, i, j, f);
diff --git a/src/main/java/net/minecraft/client/gui/screens/multiplayer/ServerSelectionList.java b/src/main/java/net/minecraft/client/gui/screens/multiplayer/ServerSelectionList.java
index c4f7ad8de9b05716ce9782e15ec24123f5b7c167..f25c75bef47f6f2f2908d6f69a7e73d94fabe9d7 100644
index c4f7ad8de9b05716ce9782e15ec24123f5b7c167..af443a3c0c0f1480fffd72eff1dd8ef72e60552e 100644
--- a/src/main/java/net/minecraft/client/gui/screens/multiplayer/ServerSelectionList.java
+++ b/src/main/java/net/minecraft/client/gui/screens/multiplayer/ServerSelectionList.java
@@ -312,6 +312,13 @@ public class ServerSelectionList extends ObjectSelectionList<ServerSelectionList
@@ -25,10 +25,7 @@ import net.minecraft.client.gui.screens.Screen;
import net.minecraft.client.multiplayer.ServerData;
import net.minecraft.client.multiplayer.ServerList;
import net.minecraft.client.server.LanServer;
-import net.minecraft.network.chat.CommonComponents;
-import net.minecraft.network.chat.Component;
-import net.minecraft.network.chat.ComponentUtils;
-import net.minecraft.network.chat.MutableComponent;
+import net.minecraft.network.chat.*;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.util.FormattedCharSequence;
import org.jetbrains.annotations.Nullable;
@@ -312,6 +309,13 @@ public class ServerSelectionList extends ObjectSelectionList<ServerSelectionList
guiGraphics.blitSprite(this.statusIcon, p, j, 10, 8);
}

Expand All @@ -372,21 +384,21 @@ index c4f7ad8de9b05716ce9782e15ec24123f5b7c167..f25c75bef47f6f2f2908d6f69a7e73d9
byte[] bs = this.serverData.getIconBytes();
if (!Arrays.equals(bs, this.lastIconBytes)) {
if (this.uploadServerIcon(bs)) {
@@ -330,6 +337,12 @@ public class ServerSelectionList extends ObjectSelectionList<ServerSelectionList
@@ -330,6 +334,12 @@ public class ServerSelectionList extends ObjectSelectionList<ServerSelectionList
guiGraphics.drawString(this.minecraft.font, component, r, j + 1, -8355712, false);
if (this.statusIconTooltip != null && n >= p && n <= p + 10 && o >= j && o <= j + 8) {
this.screen.setTooltipForNextRenderPass(this.statusIconTooltip);
+ // Blueberry start
+ } else if (serverData.serverType != null && n >= p - 18 && n <= p - 5 && o >= 0 && o <= 22) {
+ String text = serverData.serverType.getBlueberryText().getContents();
+ if (text.contains("%d")) text = String.format(text, serverData.modsCount);
+ this.screen.setTooltipForNextRenderPass(java.util.Collections.singletonList((FormattedCharSequence) Component.literal(text)));
+ this.screen.setTooltipForNextRenderPass(java.util.Collections.singletonList(FormattedCharSequence.forward(text, Style.EMPTY)));
+ // Blueberry end
} else if (this.onlinePlayersTooltip != null && n >= r && n <= r + q && o >= j && o <= j - 1 + 9) {
this.screen.setTooltipForNextRenderPass(Lists.transform(this.onlinePlayersTooltip, Component::getVisualOrderText));
}
diff --git a/src/main/java/net/minecraft/client/main/Main.java b/src/main/java/net/minecraft/client/main/Main.java
index 251c4dda28c48b8c38480e44a8f3ee19268b0e1f..e4e864b97d6de2df587703de9a47f28e0f349b5e 100644
index 251c4dda28c48b8c38480e44a8f3ee19268b0e1f..3a69cf50b1464c2d7da504fdfbec50f3d4e9b81f 100644
--- a/src/main/java/net/minecraft/client/main/Main.java
+++ b/src/main/java/net/minecraft/client/main/Main.java
@@ -57,8 +57,8 @@ public class Main {
Expand All @@ -406,7 +418,7 @@ index 251c4dda28c48b8c38480e44a8f3ee19268b0e1f..e4e864b97d6de2df587703de9a47f28e
List<String> list = optionSet.valuesOf(optionSpec28);
+ // Blueberry start
+ net.blueberrymc.common.Blueberry.preBootstrap();
+ net.blueberrymc.common.Blueberry.bootstrap(new net.blueberrymc.server.BlueberryServerImpl());
+ net.blueberrymc.common.Blueberry.bootstrap(new net.blueberrymc.client.BlueberryClientImpl());
+ SharedConstants.tryDetectVersion();
+ SharedConstants.enableDataFixerOptimizations();
+ // Blueberry end
Expand Down
66 changes: 44 additions & 22 deletions scripts/files/version.json
Original file line number Diff line number Diff line change
Expand Up @@ -162,28 +162,6 @@
},
"assets": "16",
"complianceLevel": 1,
"downloads": {
"client": {
"sha1": "05b6f1c6b46a29d6ea82b4e0d42190e42402030f",
"size": 26565641,
"url": "https://piston-data.mojang.com/v1/objects/05b6f1c6b46a29d6ea82b4e0d42190e42402030f/client.jar"
},
"client_mappings": {
"sha1": "de46c8f33d7826eb83e8ef0e9f80dc1f08cb9498",
"size": 9422442,
"url": "https://piston-data.mojang.com/v1/objects/de46c8f33d7826eb83e8ef0e9f80dc1f08cb9498/client.txt"
},
"server": {
"sha1": "145ff0858209bcfc164859ba735d4199aafa1eea",
"size": 51420480,
"url": "https://piston-data.mojang.com/v1/objects/145ff0858209bcfc164859ba735d4199aafa1eea/server.jar"
},
"server_mappings": {
"sha1": "9e96100f573a46ef44caab3e716d5eb974594bb7",
"size": 7283803,
"url": "https://piston-data.mojang.com/v1/objects/9e96100f573a46ef44caab3e716d5eb974594bb7/server.txt"
}
},
"javaVersion": {
"component": "java-runtime-delta",
"majorVersion": 21
Expand Down Expand Up @@ -1663,6 +1641,50 @@
}
},
"name": "org.slf4j:slf4j-api:2.0.9"
},
{
"downloads": {
"artifact": {
"path": "org/ow2/asm/asm/9.7/asm-9.7.jar",
"sha1": "073d7b3086e14beb604ced229c302feff6449723",
"size": 125428,
"url": "https://repository.ow2.org/nexus/content/repositories/releases/org/ow2/asm/asm/9.7/asm-9.7.jar"
}
},
"name": "org.ow2.asm:asm:9.7"
},
{
"downloads": {
"artifact": {
"path": "org/ow2/asm/asm-commons/9.7/asm-commons-9.7.jar",
"sha1": "e86dda4696d3c185fcc95d8d311904e7ce38a53f",
"size": 73426,
"url": "https://repository.ow2.org/nexus/content/repositories/releases/org/ow2/asm/asm-commons/9.7/asm-commons-9.7.jar"
}
},
"name": "org.ow2.asm:asm-commons:9.7"
},
{
"downloads": {
"artifact": {
"path": "org/ow2/asm/asm-tree/9.7/asm-tree-9.7.jar",
"sha1": "e446a17b175bfb733b87c5c2560ccb4e57d69f1a",
"size": 51934,
"url": "https://repository.ow2.org/nexus/content/repositories/releases/org/ow2/asm/asm-tree/9.7/asm-tree-9.7.jar"
}
},
"name": "org.ow2.asm:asm-tree:9.7"
},
{
"downloads": {
"artifact": {
"path": "org/yaml/snakeyaml/1.33/snakeyaml-1.33.jar",
"sha1": "2cd0a87ff7df953f810c344bdf2fe3340b954c69",
"size": 331715,
"url": "https://repo.maven.apache.org/maven2/org/yaml/snakeyaml/1.33/snakeyaml-1.33.jar"
}
},
"name": "org.yaml:snakeyaml:1.33"
}
],
"logging": {
Expand Down

0 comments on commit 055adfe

Please sign in to comment.