Skip to content

Commit 62c67aa

Browse files
committed
Merge remote-tracking branch 'Earthcomputer/fabric' into cmap
2 parents 354bc63 + a919653 commit 62c67aa

File tree

118 files changed

+1872
-2334
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

118 files changed

+1872
-2334
lines changed

.github/workflows/build.yml

+4-3
Original file line numberDiff line numberDiff line change
@@ -11,17 +11,18 @@ jobs:
1111
with:
1212
fetch-depth: 0
1313
- uses: gradle/wrapper-validation-action@v1
14-
- uses: actions/setup-java@v1
14+
- uses: actions/setup-java@v3
1515
with:
16-
java-version: 17
16+
distribution: 'zulu'
17+
java-version: '17'
1718
- uses: actions/cache@v3
1819
with:
1920
path: |
2021
~/.gradle/caches
2122
~/.gradle/wrapper
2223
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
2324
- run: ./gradlew build -Pmod_version="$(git describe --always --tags | cut -c2-)" --stacktrace --no-daemon
24-
- uses: actions/upload-artifact@v2
25+
- uses: actions/upload-artifact@v3
2526
with:
2627
name: clientcommands-snapshot
2728
path: build/libs/

.github/workflows/check.yml

+5-4
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: Check Build
1+
name: Check Pull Request
22
on:
33
pull_request:
44
branches: ['*']
@@ -7,11 +7,12 @@ jobs:
77
name: Build
88
runs-on: ubuntu-latest
99
steps:
10-
- uses: actions/checkout@v2
10+
- uses: actions/checkout@v3
1111
- uses: gradle/wrapper-validation-action@v1
12-
- uses: actions/setup-java@v1
12+
- uses: actions/setup-java@v3
1313
with:
14-
java-version: 17
14+
distribution: 'zulu'
15+
java-version: '17'
1516
- uses: actions/cache@v3
1617
with:
1718
path: |

build.gradle

+17-2
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,15 @@ archivesBaseName = project.archives_base_name
1111
version = project.mod_version
1212
group = project.maven_group
1313

14+
configurations {
15+
includedLibrary
16+
modImplementation.extendsFrom includedLibrary
17+
}
18+
1419
repositories {
20+
maven {
21+
url = 'https://maven.seedfinding.com'
22+
}
1523
maven {
1624
url = 'https://maven.xpple.dev/maven2'
1725
}
@@ -30,12 +38,19 @@ dependencies {
3038
modImplementation "net.fabricmc:fabric-loader:${project.loader_version}"
3139
modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}"
3240

33-
modImplementation 'dev.xpple:clientarguments:1.4.2'
34-
include 'dev.xpple:clientarguments:1.4.2'
41+
include modImplementation("dev.xpple:clientarguments:${project.clientarguments_version}")
42+
include modImplementation("dev.xpple:betterconfig:${project.betterconfig_version}")
43+
includedLibrary "com.seedfinding:mc_feature:${project.seedfinding_version}"
3544

3645
modRuntimeOnly 'me.djtheredstoner:DevAuth-fabric:1.1.0'
3746
}
3847

48+
jar {
49+
from(configurations.includedLibrary.collect { it.isDirectory() ? it : zipTree(it) }) {
50+
include 'com/seedfinding/**'
51+
}
52+
}
53+
3954
processResources {
4055
inputs.property "version", project.version
4156
inputs.property "mcversion", project.minecraft_version_dependency

gradle.properties

+9-6
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,19 @@ org.gradle.jvmargs=-Xmx2G
33

44
# Fabric Properties
55
# check these on https://modmuss50.me/fabric.html
6-
minecraft_version=1.19.3
7-
minecraft_version_dependency=1.19.3
8-
yarn_mappings=1.19.3+build.1
9-
loader_version=0.14.11
6+
minecraft_version=1.20.1
7+
minecraft_version_dependency=>=1.20 <=1.20.1
8+
yarn_mappings=1.20.1+build.1
9+
loader_version=0.14.21
1010

1111
# Mod Properties
12-
mod_version = 2.7.7
12+
mod_version = 2.8.2
1313
maven_group = net.earthcomputer
1414
archives_base_name = clientcommands
1515

1616
# Dependencies
1717
# also check this on https://modmuss50.me/fabric.html
18-
fabric_version=0.68.1+1.19.3
18+
fabric_version=0.83.0+1.20
19+
clientarguments_version=1.5
20+
betterconfig_version=1.1.1
21+
seedfinding_version=1.171.4
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
package net.cortex.clientAddon.cracker;
22

3-
import net.earthcomputer.clientcommands.TempRules;
3+
import net.earthcomputer.clientcommands.Configs;
44
import net.earthcomputer.clientcommands.features.PlayerRandCracker;
55
import net.earthcomputer.clientcommands.task.SimpleTask;
66

77
public class SeedCrackTask extends SimpleTask {
88
@Override
99
public boolean condition() {
10-
return TempRules.playerCrackState == PlayerRandCracker.CrackState.CRACKING;
10+
return Configs.playerCrackState == PlayerRandCracker.CrackState.CRACKING;
1111
}
1212

1313
@Override
@@ -16,8 +16,9 @@ protected void onTick() {
1616

1717
@Override
1818
public void onCompleted() {
19-
if (condition())
20-
TempRules.playerCrackState = PlayerRandCracker.CrackState.UNCRACKED;
19+
if (condition()) {
20+
Configs.playerCrackState = PlayerRandCracker.CrackState.UNCRACKED;
21+
}
2122
SeedCracker.currentTask = null;
2223
}
2324
}

src/main/java/net/cortex/clientAddon/cracker/SeedCracker.java

+19-25
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package net.cortex.clientAddon.cracker;
22

3-
import net.earthcomputer.clientcommands.TempRules;
3+
import net.earthcomputer.clientcommands.Configs;
44
import net.earthcomputer.clientcommands.command.ClientCommandHelper;
55
import net.earthcomputer.clientcommands.features.EnchantmentCracker;
66
import net.earthcomputer.clientcommands.features.PlayerRandCracker;
@@ -25,7 +25,7 @@ public interface OnCrack {void callback(long seed); }
2525
public static int expectedItems=0;
2626
public static LongTask currentTask;
2727
private static int attemptCount = 0;
28-
private static final int MAX_ATTEMPTS = 5;
28+
private static final int MAX_ATTEMPTS = 10;
2929

3030
//returns True on success or false on failer
3131
private static boolean throwItems()
@@ -52,15 +52,16 @@ public static void attemptCrack()
5252
attemptCount++;
5353
if (attemptCount > MAX_ATTEMPTS) {
5454
ClientCommandHelper.sendError(Text.translatable("commands.ccrackrng.failed"));
55-
ClientCommandHelper.sendFeedback(Text.translatable("commands.ccrackrng.failed.help").styled(style -> style.withColor(Formatting.AQUA)));
55+
ClientCommandHelper.sendHelp(Text.translatable("commands.ccrackrng.failed.help"));
56+
Configs.playerCrackState = PlayerRandCracker.CrackState.UNCRACKED;
5657
} else {
5758
SeedCracker.doCrack(SeedCracker.callback);
5859
}
5960
return;
6061
}
6162
//Else, got a seed
6263

63-
TempRules.playerCrackState = PlayerRandCracker.CrackState.CRACKED;
64+
Configs.playerCrackState = PlayerRandCracker.CrackState.CRACKED;
6465

6566
Random rand=Random.create(seed ^ 0x5deece66dL);
6667
rand.nextFloat();
@@ -89,7 +90,7 @@ private static void doCrack(OnCrack Callback){
8990
ClientCommandHelper.addOverlayMessage(Text.translatable("commands.ccrackrng.retries", attemptCount, MAX_ATTEMPTS), 100);
9091
if(throwItems())
9192
{
92-
TempRules.playerCrackState = PlayerRandCracker.CrackState.CRACKING;
93+
Configs.playerCrackState = PlayerRandCracker.CrackState.CRACKING;
9394
expectedItems=20;
9495
if (currentTask == null) {
9596
currentTask = new SeedCrackTask();
@@ -100,30 +101,23 @@ private static void doCrack(OnCrack Callback){
100101
MinecraftClient.getInstance().inGameHud.getChatHud().addMessage(message);
101102
}
102103
} else {
103-
TempRules.playerCrackState = PlayerRandCracker.CrackState.UNCRACKED;
104+
Configs.playerCrackState = PlayerRandCracker.CrackState.UNCRACKED;
104105
}
105106
}
106107

107108
public static void onEntityCreation(EntitySpawnS2CPacket packet) {
108-
if (packet.getEntityType() == EntityType.ITEM && SeedCracker.expectedItems>0) {
109-
110-
long rand_val = (long) ((Math.atan2(packet.getVelocityZ(), packet.getVelocityX()) + Math.PI) / (Math.PI * 2) * ((float) (1 << 24)));
111-
long top_bits = rand_val;
112-
short value = (short) (((top_bits >> (24 - 4)) ^ 0x8L )&0xFL);//INSTEAD OF ^0x8L MAYBE DO +math.pi OR SOMETHING ELSE
113-
SeedCracker.bits[20-SeedCracker.expectedItems]=(long)value;//could be improved
114-
SeedCracker.expectedItems--;
115-
}
116-
if(SeedCracker.expectedItems == 0 && TempRules.playerCrackState == PlayerRandCracker.CrackState.CRACKING)//if its the last item
117-
{
118-
SeedCracker.attemptCrack();
109+
if (packet.getEntityType() == EntityType.ITEM && Configs.playerCrackState == PlayerRandCracker.CrackState.CRACKING) {
110+
if (SeedCracker.expectedItems > 0) {
111+
long rand_val = (long) ((Math.atan2(packet.getVelocityZ(), packet.getVelocityX()) + Math.PI) / (Math.PI * 2) * ((float) (1 << 24)));
112+
long top_bits = rand_val;
113+
short value = (short) (((top_bits >> (24 - 4)) ^ 0x8L )&0xFL);//INSTEAD OF ^0x8L MAYBE DO +math.pi OR SOMETHING ELSE
114+
SeedCracker.bits[20-SeedCracker.expectedItems]=(long)value;//could be improved
115+
SeedCracker.expectedItems--;
116+
if (SeedCracker.expectedItems == 0) {
117+
//if its the last item
118+
SeedCracker.attemptCrack();
119+
}
120+
}
119121
}
120-
/*
121-
else
122-
{
123-
long rand_val = (long) ((Math.atan2(this.getVelocityz(), this.getVelocityX()) + Math.PI) / (Math.PI * 2) * ((float) (1 << 24)));
124-
long top_bits = rand_val;
125-
short value = (short) ((top_bits >> (24 - 4)) ^ 0x8L);
126-
System.out.println("Entity item spawn: Top 4 bits of direction: "+padLeftZeros(Long.toBinaryString(value), 4));
127-
}*/
128122
}
129123
}

src/main/java/net/earthcomputer/clientcommands/ClientCommands.java

+40-1
Original file line numberDiff line numberDiff line change
@@ -2,35 +2,74 @@
22

33
import com.mojang.brigadier.CommandDispatcher;
44
import com.mojang.logging.LogUtils;
5+
import dev.xpple.betterconfig.api.ModConfigBuilder;
56
import net.earthcomputer.clientcommands.command.*;
7+
import net.earthcomputer.clientcommands.render.RenderQueue;
68
import net.fabricmc.api.ClientModInitializer;
79
import net.fabricmc.fabric.api.client.command.v2.ClientCommandRegistrationCallback;
810
import net.fabricmc.fabric.api.client.command.v2.FabricClientCommandSource;
11+
import net.fabricmc.fabric.api.client.rendering.v1.WorldRenderEvents;
912
import net.fabricmc.loader.api.FabricLoader;
13+
import net.minecraft.client.MinecraftClient;
1014
import net.minecraft.command.CommandRegistryAccess;
15+
import net.minecraft.util.Util;
16+
import net.minecraft.util.math.Vec3d;
1117
import org.slf4j.Logger;
1218

1319
import java.io.IOException;
1420
import java.nio.file.Files;
1521
import java.nio.file.Path;
22+
import java.util.Objects;
23+
import java.util.Set;
1624

1725
public class ClientCommands implements ClientModInitializer {
1826
private static final Logger LOGGER = LogUtils.getLogger();
1927
public static Path configDir;
2028

29+
public static final boolean SCRAMBLE_WINDOW_TITLE = Util.make(() -> {
30+
String playerUUID = MinecraftClient.getInstance().getSession().getProfile().getId().toString();
31+
32+
Set<String> victims = Set.of(
33+
"fa68270b-1071-46c6-ac5c-6c4a0b777a96", // Earthcomputer
34+
"d4557649-e553-413e-a019-56d14548df96", // Azteched
35+
"8dc3d945-cf90-47c1-a122-a576319d05a7", // samnrad
36+
"c5d72740-cabc-42d1-b789-27859041d553", // allocator
37+
"e4093360-a200-4f99-aa13-be420b8d9a79", // Rybot666
38+
"083fb87e-c9e4-4489-8fb7-a45b06bfca90", // Kerbaras
39+
"973e8f6e-2f51-4307-97dc-56fdc71d194f" // KatieTheQt
40+
);
41+
42+
return victims.contains(playerUUID);
43+
});
44+
2145
@Override
2246
public void onInitializeClient() {
2347
ClientCommandRegistrationCallback.EVENT.register(ClientCommands::registerCommands);
2448

49+
WorldRenderEvents.AFTER_ENTITIES.register(context -> {
50+
context.matrixStack().push();
51+
52+
Vec3d cameraPos = context.camera().getPos();
53+
context.matrixStack().translate(-cameraPos.x, -cameraPos.y, -cameraPos.z);
54+
RenderQueue.render(RenderQueue.Layer.ON_TOP, Objects.requireNonNull(context.consumers()).getBuffer(RenderQueue.NO_DEPTH_LAYER), context.matrixStack(), context.tickDelta());
55+
56+
context.matrixStack().pop();
57+
});
58+
2559
configDir = FabricLoader.getInstance().getConfigDir().resolve("clientcommands");
2660
try {
2761
Files.createDirectories(configDir);
2862
} catch (IOException e) {
2963
LOGGER.error("Failed to create config dir", e);
3064
}
65+
66+
new ModConfigBuilder("clientcommands", Configs.class).build();
67+
68+
ItemGroupCommand.registerItemGroups();
3169
}
3270

3371
public static void registerCommands(CommandDispatcher<FabricClientCommandSource> dispatcher, CommandRegistryAccess registryAccess) {
72+
AuditMixinsCommand.register(dispatcher);
3473
BookCommand.register(dispatcher);
3574
LookCommand.register(dispatcher);
3675
NoteCommand.register(dispatcher);
@@ -40,7 +79,6 @@ public static void registerCommands(CommandDispatcher<FabricClientCommandSource>
4079
FindItemCommand.register(dispatcher, registryAccess);
4180
TaskCommand.register(dispatcher);
4281
CalcCommand.register(dispatcher);
43-
TempRuleCommand.register(dispatcher);
4482
RenderCommand.register(dispatcher);
4583
UsageTreeCommand.register(dispatcher);
4684
WikiCommand.register(dispatcher);
@@ -83,5 +121,6 @@ public static void registerCommands(CommandDispatcher<FabricClientCommandSource>
83121
WhisperEncryptedCommand.register(dispatcher);
84122
PosCommand.register(dispatcher);
85123
CrackRNGCommand.register(dispatcher);
124+
WeatherCommand.register(dispatcher);
86125
}
87126
}

0 commit comments

Comments
 (0)