Skip to content

Commit fc8ddd8

Browse files
committed
For blazes experimental only
1 parent e7223d8 commit fc8ddd8

File tree

10 files changed

+265
-106
lines changed

10 files changed

+265
-106
lines changed

src/main/java/io/github/techstreet/dfscript/DFScript.java

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,38 @@
33
import com.google.gson.Gson;
44
import com.google.gson.GsonBuilder;
55
import io.github.techstreet.dfscript.commands.CommandManager;
6+
import io.github.techstreet.dfscript.features.AuthHandler;
67
import io.github.techstreet.dfscript.features.UpdateAlerts;
78
import io.github.techstreet.dfscript.loader.Loader;
9+
import io.github.techstreet.dfscript.screen.script.ScriptListScreen;
810
import io.github.techstreet.dfscript.script.ScriptManager;
11+
import io.github.techstreet.dfscript.script.util.AuthcodeResponse;
12+
import io.github.techstreet.dfscript.script.util.ServercodeResponse;
13+
import io.github.techstreet.dfscript.script.util.UploadResponse;
914
import io.github.techstreet.dfscript.util.Scheduler;
15+
16+
import java.io.BufferedReader;
17+
import java.io.ByteArrayOutputStream;
18+
import java.io.InputStreamReader;
19+
import java.io.OutputStream;
20+
import java.net.HttpURLConnection;
21+
import java.net.URL;
22+
import java.nio.file.Files;
1023
import java.util.concurrent.ExecutorService;
1124
import java.util.concurrent.Executors;
25+
import java.util.zip.GZIPOutputStream;
26+
27+
import io.github.techstreet.dfscript.util.chat.ChatType;
28+
import io.github.techstreet.dfscript.util.chat.ChatUtil;
1229
import net.fabricmc.api.ModInitializer;
1330
import net.fabricmc.loader.api.FabricLoader;
1431
import net.minecraft.client.MinecraftClient;
32+
import net.minecraft.client.util.Session;
33+
import org.apache.commons.codec.binary.Base64;
34+
import org.apache.commons.lang3.RandomStringUtils;
1535
import org.apache.logging.log4j.LogManager;
1636
import org.apache.logging.log4j.Logger;
37+
import org.apache.logging.log4j.core.jmx.Server;
1738

1839
public class DFScript implements ModInitializer {
1940

@@ -47,6 +68,7 @@ public void onInitialize() {
4768

4869
Loader loader = Loader.getInstance();
4970
loader.load(new CommandManager());
71+
loader.load(new AuthHandler());
5072
loader.load(new ScriptManager());
5173
loader.load(new Scheduler());
5274
loader.load(new UpdateAlerts());
Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
package io.github.techstreet.dfscript.features;
2+
3+
import com.google.gson.JsonObject;
4+
import com.google.gson.JsonParser;
5+
import io.github.techstreet.dfscript.DFScript;
6+
import io.github.techstreet.dfscript.loader.Loadable;
7+
import io.github.techstreet.dfscript.script.util.AuthcodeResponse;
8+
import io.github.techstreet.dfscript.script.util.ServercodeResponse;
9+
import io.github.techstreet.dfscript.util.chat.ChatType;
10+
import io.github.techstreet.dfscript.util.chat.ChatUtil;
11+
import net.minecraft.client.util.Session;
12+
import org.apache.commons.lang3.RandomStringUtils;
13+
14+
import java.io.BufferedReader;
15+
import java.io.InputStreamReader;
16+
import java.io.OutputStream;
17+
import java.net.HttpURLConnection;
18+
import java.net.URL;
19+
import java.util.UUID;
20+
21+
public class AuthHandler implements Loadable {
22+
private static String authCode = null;
23+
24+
@Override
25+
public void load() {
26+
URL url;
27+
HttpURLConnection con;
28+
String commonSecret;
29+
JsonObject obj;
30+
31+
try {
32+
// Authorization step one - Create a random clientcode
33+
url = new URL("https://DFScript-Server.techstreetdev.repl.co/auth/secret/");
34+
con = (HttpURLConnection)url.openConnection();
35+
con.setRequestMethod("POST");
36+
con.setRequestProperty("Content-Type", "application/json");
37+
con.setRequestProperty("Accept", "application/json");
38+
con.setDoOutput(true);
39+
40+
String clientCode = UUID.randomUUID().toString();
41+
42+
obj = new JsonObject();
43+
obj.addProperty("uuid", DFScript.PLAYER_UUID);
44+
obj.addProperty("clientcode", clientCode);
45+
46+
System.out.println(obj);
47+
48+
try (OutputStream os = con.getOutputStream()) {
49+
byte[] input = obj.toString().getBytes("utf-8");
50+
os.write(input, 0, input.length);
51+
}
52+
53+
try (BufferedReader br = new BufferedReader(new InputStreamReader(con.getInputStream(), "utf-8"))) {
54+
StringBuilder response = new StringBuilder();
55+
String responseLine;
56+
57+
while ((responseLine = br.readLine()) != null) {
58+
response.append(responseLine.trim());
59+
}
60+
61+
ServercodeResponse servercodeResponse = DFScript.GSON.fromJson(response.toString(), ServercodeResponse.class);
62+
commonSecret = servercodeResponse.getServercode();
63+
}
64+
65+
// Authorization step two - Generate the authcode
66+
url = new URL("https://DFScript-Server.techstreetdev.repl.co/auth/secret/");
67+
con = (HttpURLConnection)url.openConnection();
68+
con.setRequestMethod("POST");
69+
con.setRequestProperty("Content-Type", "application/json");
70+
con.setRequestProperty("Accept", "application/json");
71+
con.setDoOutput(true);
72+
73+
obj = new JsonObject();
74+
obj.addProperty("secret", commonSecret);
75+
obj.addProperty("uuid", DFScript.PLAYER_UUID);
76+
77+
try (OutputStream os = con.getOutputStream()) {
78+
byte[] input = obj.toString().getBytes("utf-8");
79+
os.write(input, 0, input.length);
80+
}
81+
82+
try (BufferedReader br = new BufferedReader(new InputStreamReader(con.getInputStream(), "utf-8"))) {
83+
StringBuilder response = new StringBuilder();
84+
String responseLine;
85+
86+
while ((responseLine = br.readLine()) != null) {
87+
response.append(responseLine.trim());
88+
}
89+
90+
AuthcodeResponse authcodeResponse = DFScript.GSON.fromJson(response.toString(), AuthcodeResponse.class);
91+
authCode = authcodeResponse.getAuthcode();
92+
DFScript.LOGGER.info("Authorization code successfully generated: " + authCode);
93+
}
94+
} catch (Exception e) {
95+
e.printStackTrace();
96+
}
97+
}
98+
99+
public static String getAuthCode() {
100+
return authCode;
101+
}
102+
}

src/main/java/io/github/techstreet/dfscript/screen/script/ScriptAddScreen.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,11 +80,11 @@ public static void getScripts() {
8080
}
8181

8282
is.close();
83+
84+
ScriptAddScreen.scripts = scripts;
8385
} catch (Exception e) {
8486
e.printStackTrace();
8587
}
86-
87-
ScriptAddScreen.scripts = scripts;
8888
}
8989

9090
public static String readAll(Reader rd) throws IOException {

0 commit comments

Comments
 (0)