tangled
alpha
login
or
join now
codexarchonic.nekoweb.org
/
ProjectInfinity
0
fork
atom
Inspired by 2020's April Fools' 20w14infinite Snapshot, this mod brings endless randomly generated dimensions into Minecraft.
0
fork
atom
overview
issues
6
pulls
pipelines
Remove datapacks button
cassian.cc
9 months ago
7e7a449b
b7c86d0c
+47
-1
3 changed files
expand all
collapse all
unified
split
common
src
main
java
net
lerariemann
infinity
mixin
qol
EditWorldScreenMixin.java
resources
infinity.accesswidener
infinity.mixins.json
+44
common/src/main/java/net/lerariemann/infinity/mixin/qol/EditWorldScreenMixin.java
···
1
1
+
package net.lerariemann.infinity.mixin.qol;
2
2
+
3
3
+
import com.llamalad7.mixinextras.sugar.Local;
4
4
+
import it.unimi.dsi.fastutil.booleans.BooleanConsumer;
5
5
+
import net.minecraft.client.MinecraftClient;
6
6
+
import net.minecraft.client.gui.screen.world.EditWorldScreen;
7
7
+
import net.minecraft.client.gui.widget.ButtonWidget;
8
8
+
import net.minecraft.client.gui.widget.DirectionalLayoutWidget;
9
9
+
import net.minecraft.server.world.ServerWorld;
10
10
+
import net.minecraft.text.Text;
11
11
+
import net.minecraft.util.PathUtil;
12
12
+
import net.minecraft.util.Util;
13
13
+
import net.minecraft.world.level.storage.LevelStorage;
14
14
+
import org.apache.commons.io.FileUtils;
15
15
+
import org.spongepowered.asm.mixin.Final;
16
16
+
import org.spongepowered.asm.mixin.Mixin;
17
17
+
import org.spongepowered.asm.mixin.Shadow;
18
18
+
import org.spongepowered.asm.mixin.injection.At;
19
19
+
import org.spongepowered.asm.mixin.injection.Inject;
20
20
+
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
21
21
+
22
22
+
import java.io.IOException;
23
23
+
import java.nio.file.Path;
24
24
+
25
25
+
@Mixin(EditWorldScreen.class)
26
26
+
public class EditWorldScreenMixin {
27
27
+
28
28
+
@Shadow @Final private DirectionalLayoutWidget layout;
29
29
+
30
30
+
@Shadow @Final private BooleanConsumer callback;
31
31
+
32
32
+
@Inject(method = "<init>", at = @At(value = "RETURN", target = "Lnet/minecraft/world/GameRules;getBoolean(Lnet/minecraft/world/GameRules$Key;)Z"))
33
33
+
void inj(MinecraftClient client, LevelStorage.Session session, String levelName, BooleanConsumer callback, CallbackInfo ci) {
34
34
+
var screen = (EditWorldScreen) (Object) this;
35
35
+
screen.addDrawableChild(ButtonWidget.builder(Text.literal("[Infinity] Delete Datapacks"), button -> {
36
36
+
boolean bl = deleteLevel(session);
37
37
+
this.callback.accept(!bl);
38
38
+
}).width(200).build());
39
39
+
}
40
40
+
41
41
+
private boolean deleteLevel(LevelStorage.Session session) {
42
42
+
return FileUtils.deleteQuietly(session.getDirectory().path().resolve("datapacks").toFile());
43
43
+
}
44
44
+
}
+2
-1
common/src/main/resources/infinity.accesswidener
···
13
13
accessible method net/minecraft/block/NetherPortalBlock getExitPortalTarget (Lnet/minecraft/entity/Entity;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/world/BlockLocating$Rectangle;Lnet/minecraft/server/world/ServerWorld;Lnet/minecraft/world/TeleportTarget$PostDimensionTransition;)Lnet/minecraft/world/TeleportTarget;
14
14
accessible method net/minecraft/block/NetherPortalBlock getOrCreateExitPortalTarget (Lnet/minecraft/server/world/ServerWorld;Lnet/minecraft/entity/Entity;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/util/math/BlockPos;ZLnet/minecraft/world/border/WorldBorder;)Lnet/minecraft/world/TeleportTarget;
15
15
accessible class net/minecraft/entity/passive/FishEntity$FishMoveControl
16
16
-
accessible field net/minecraft/loot/context/LootContextTypes MAP Lcom/google/common/collect/BiMap;
16
16
+
accessible field net/minecraft/loot/context/LootContextTypes MAP Lcom/google/common/collect/BiMap;
17
17
+
accessible method net/minecraft/client/gui/screen/Screen addDrawableChild (Lnet/minecraft/client/gui/Element;)Lnet/minecraft/client/gui/Element;
+1
common/src/main/resources/infinity.mixins.json
···
62
62
"options.MinecraftClientMixin",
63
63
"options.SoundSystemMixin",
64
64
"options.WorldRendererMixin",
65
65
+
"qol.EditWorldScreenMixin",
65
66
"qol.KeyboardMixin"
66
67
],
67
68
"injectors": {