aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/moe/ymc/safelog/Safelog.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/moe/ymc/safelog/Safelog.java')
-rw-r--r--src/main/java/moe/ymc/safelog/Safelog.java46
1 files changed, 46 insertions, 0 deletions
diff --git a/src/main/java/moe/ymc/safelog/Safelog.java b/src/main/java/moe/ymc/safelog/Safelog.java
new file mode 100644
index 0000000..6a61747
--- /dev/null
+++ b/src/main/java/moe/ymc/safelog/Safelog.java
@@ -0,0 +1,46 @@
+package moe.ymc.safelog;
+
+import net.fabricmc.api.ModInitializer;
+import net.fabricmc.loader.api.FabricLoader;
+import org.apache.commons.codec.digest.DigestUtils;
+import org.jetbrains.annotations.NotNull;
+
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.InetSocketAddress;
+import java.net.SocketAddress;
+import java.nio.file.Path;
+import java.util.Properties;
+
+public class Safelog implements ModInitializer {
+ private static String salt = "";
+
+ @Override
+ public void onInitialize() {
+ try {
+ final Path config = FabricLoader.getInstance().getConfigDir().resolve("safelog.properties");
+ if(!config.toFile().exists()) return;
+ Properties properties = new Properties();
+ final InputStream in = new FileInputStream(config.toFile());
+ properties.load(in);
+ in.close();
+ salt = properties.getProperty("salt", "");
+ } catch (IOException e) {
+ e.printStackTrace();
+ throw new RuntimeException(e);
+ }
+ }
+
+ @NotNull
+ public static String md5(@NotNull String raw) {
+ final boolean removeLeadingSlash = raw.startsWith("/");
+ return (removeLeadingSlash ? "/" : "") + DigestUtils.md5Hex(salt + raw.substring(removeLeadingSlash ? 1 : 0));
+ }
+
+ @NotNull
+ public static String sanitize(@NotNull SocketAddress address) {
+ if(!(address instanceof final InetSocketAddress inetSocketAddress)) return address.toString();
+ return md5(inetSocketAddress.getAddress().toString()) + ":" + inetSocketAddress.getPort();
+ }
+}