aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/main/java/de/hype/bbsentials/communication/DefaultTrustManager.java34
-rw-r--r--src/main/java/de/hype/bbsentials/communication/old/BBsentialConnection.java (renamed from src/main/java/de/hype/bbsentials/communication/EncryptedBBsentialsConnection.java)79
-rw-r--r--src/main/resources/modid.mixins.json16
-rw-r--r--src/main/resources/public_bbsentials_cert.crtbin0 -> 1431 bytes
4 files changed, 37 insertions, 92 deletions
diff --git a/src/main/java/de/hype/bbsentials/communication/DefaultTrustManager.java b/src/main/java/de/hype/bbsentials/communication/DefaultTrustManager.java
deleted file mode 100644
index 5a34738..0000000
--- a/src/main/java/de/hype/bbsentials/communication/DefaultTrustManager.java
+++ /dev/null
@@ -1,34 +0,0 @@
-
-public static class DefaultTrustManager implements X509TrustManager {
- public void checkClientTrusted(X509Certificate[] certs, String authType) throws CertificateException {
- // Keine Aktion erforderlich - Client wird nicht überprüft.
- }
-
- public void checkServerTrusted(X509Certificate[] certs, String authType) throws CertificateException {
- try {
- // Lade das Wurzelzertifikat von Let's Encrypt oder einer vertrauenswürdigen Zertifizierungsstelle
- CertificateFactory certificateFactory = CertificateFactory.getInstance("X.509");
- InputStream is = new BufferedInputStream(new FileInputStream("path_to_letsencrypt_root_cert.pem"));
- X509Certificate caCert = (X509Certificate) certificateFactory.generateCertificate(is);
- is.close();
-
- // Erstellen Sie eine Zertifikatskette mit dem Serverzertifikat und dem Wurzelzertifikat von Let's Encrypt
- KeyStore keyStore = KeyStore.getInstance(KeyStore.getDefaultType());
- keyStore.load(null, null);
- keyStore.setCertificateEntry("caCert", caCert);
-
- TrustManagerFactory tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
- tmf.init(keyStore);
-
- // Überprüfen Sie die Zertifikatskette
- X509TrustManager defaultTrustManager = (X509TrustManager) tmf.getTrustManagers()[0];
- defaultTrustManager.checkServerTrusted(certs, authType);
- } catch (IOException | GeneralSecurityException e) {
- throw new CertificateException("Failed to verify server certificate: " + e.getMessage());
- }
- }
-
- public X509Certificate[] getAcceptedIssuers() {
- return null;
- }
-} \ No newline at end of file
diff --git a/src/main/java/de/hype/bbsentials/communication/EncryptedBBsentialsConnection.java b/src/main/java/de/hype/bbsentials/communication/old/BBsentialConnection.java
index d8dfb13..94b59f9 100644
--- a/src/main/java/de/hype/bbsentials/communication/EncryptedBBsentialsConnection.java
+++ b/src/main/java/de/hype/bbsentials/communication/old/BBsentialConnection.java
@@ -1,7 +1,8 @@
-package de.hype.bbsentials.communication;
+package de.hype.bbsentials.communication.old.de;
import de.hype.bbsentials.chat.Chat;
import de.hype.bbsentials.client.BBsentials;
+import net.fabricmc.fabric.api.client.command.v2.ClientCommandManager;
import net.minecraft.client.MinecraftClient;
import net.minecraft.entity.effect.StatusEffectInstance;
import net.minecraft.entity.effect.StatusEffects;
@@ -34,25 +35,7 @@ public class BBsentialConnection {
public void connect(String serverIP, int serverPort) {
try {
- // Erstellen Sie eine SSL-Verbindung
- SSLContext sslContext = SSLContext.getInstance("TLS");
-
- // Erstellen Sie einen SSL-Socket-Factory und einen SSL-Socket
- SSLSocketFactory sslSocketFactory;
- if (System.getProperty("os.name").toLowerCase().contains("win")) {
- // Windows-Betriebssystem
- sslSocketFactory = (SSLSocketFactory) SSLSocketFactory.getDefault();
- } else {
- // Linux und andere Betriebssysteme
- TrustManagerFactory tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
- tmf.init((KeyStore) null); // Lade die Standard-Rot-Zertifikate
- TrustManager[] trustManagers = tmf.getTrustManagers();
-
- sslContext.init(null, trustManagers, new SecureRandom());
- sslSocketFactory = sslContext.getSocketFactory();
- }
-
- socket = sslSocketFactory.createSocket(serverIP, serverPort);
+ socket = new Socket(serverIP, serverPort);
socket.setKeepAlive(true); // Enable Keep-Alive
@@ -96,7 +79,7 @@ public class BBsentialConnection {
// sendMessage("Hello from client!");
// More logic here...
- } catch (IOException | NoSuchAlgorithmException | KeyManagementException e) {
+ } catch (IOException e) {
e.printStackTrace();
}
}
@@ -110,8 +93,8 @@ public class BBsentialConnection {
}
public void sendHiddenMessage(String message) {
- if (BBsentials.getConfig().isDetailedDevModeEnabled()){
- Chat.sendPrivateMessageToSelf("BBDev-s: "+message);
+ if (BBsentials.getConfig().isDetailedDevModeEnabled()) {
+ Chat.sendPrivateMessageToSelf("BBDev-s: " + message);
}
writer.println(message);
}
@@ -124,20 +107,16 @@ public class BBsentialConnection {
sendHiddenMessage("?getperms");
}
else if (message.contains("H-PotDurations?")) {
- System.out.println("worked");
- int remainingTimeInMinutes = 0;
- StatusEffectInstance potTimeRequest = MinecraftClient.getInstance().player.getStatusEffect(StatusEffects.JUMP_BOOST);
- if (potTimeRequest != null) {
- Chat.sendPrivateMessageToSelf(String.valueOf(potTimeRequest.getAmplifier()));
- if (true) {
- remainingTimeInMinutes = (int) (potTimeRequest.getDuration() / 20.0);
- }
- }
- sendHiddenMessage("?potduration " + remainingTimeInMinutes);
+ sendHiddenMessage("?potduration " + getPotTime());
}
else if (message.startsWith("H-?splash")) {
- String[] arguments = message.split(" ", 4);
- Chat.sendPrivateMessageToSelf(arguments[2] + "is splashing in Hub #" + arguments[1] + " soon.");
+ String[] arguments = message.split(" ", 6);
+ String splashMessage = "§6"+arguments[4] + " is splashing in Hub #" + arguments[1] + " soon.";
+ if ((getPotTime()>=Integer.parseInt(arguments[2]))&&getPotTime()<=Integer.parseInt(arguments[3]))
+ if (arguments.length >= 6) {
+ splashMessage = splashMessage + " : " + arguments[5];
+ }
+ Chat.sendPrivateMessageToSelf(splashMessage);
splashHighlightItem("Hub #" + arguments[1], 30000);
}
else if (message.startsWith("H-Roles")) {
@@ -145,13 +124,18 @@ public class BBsentialConnection {
BBsentials.refreshCommands();
}
else if (message.startsWith("H-chchest")) {
- String[] arguments = message.replace("H-chchest","").trim().split(" ", 5); // Split with limit of 5
- String item = arguments[0];
- int x = Integer.parseInt(arguments[1]);
- int y = Integer.parseInt(arguments[2]);
- int z = Integer.parseInt(arguments[3]);
- String inviteCommand = arguments[4];
- Chat.createClientSideTellraw("");
+ String[] arguments = message.replace("H-chchest", "").trim().split(" ", 6); // Split with limit of 5
+ String username = arguments[0];
+ String item = arguments[1];
+ int x = Integer.parseInt(arguments[2]);
+ int y = Integer.parseInt(arguments[3]);
+ int z = Integer.parseInt(arguments[4]);
+ String inviteCommand = arguments[5];
+ String tellrawText = (
+ "{\"text\":\"BB: @username found one or more @item in a chest (@x @y @z). Click here to join\",\"color\":\"green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"@inviteCommand\"},\"hoverEvent\":{\"action\":\"show_text\",\"contents\":[\"On clicking you will get invited to a party. Command executed: @inviteCommand\"]}}"
+ );
+ tellrawText = tellrawText.replace("@username", username).replace("@item", item).replace("@x", x + "").replace("@y", y + "").replace("@z", z + "").replace("@inviteCommand", inviteCommand);
+ Chat.sendPrivateMessageToSelfText(Chat.createClientSideTellraw(tellrawText));
}
if (BBsentials.getConfig().isDetailedDevModeEnabled()) {
Chat.sendPrivateMessageToSelf("BBDev-r: " + message);
@@ -191,6 +175,17 @@ public class BBsentialConnection {
return highlightItem;
}
+ public static int getPotTime() {
+ int remainingTimeInMinutes = 0;
+ StatusEffectInstance potTimeRequest = MinecraftClient.getInstance().player.getStatusEffect(StatusEffects.JUMP_BOOST);
+ if (potTimeRequest != null) {
+ Chat.sendPrivateMessageToSelf(String.valueOf(potTimeRequest.getAmplifier()));
+ if (true) {
+ remainingTimeInMinutes = (int) (potTimeRequest.getDuration() / 20.0);
+ }
+ }
+ return remainingTimeInMinutes;
+ }
//TODO socket verschlüsseln
//TODO dyndns eintrag?
//TODO search
diff --git a/src/main/resources/modid.mixins.json b/src/main/resources/modid.mixins.json
deleted file mode 100644
index 82a341e..0000000
--- a/src/main/resources/modid.mixins.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
- "required": true,
- "minVersion": "0.8",
- "package": "de.hype.bbsentials.mixins",
- "compatibilityLevel": "JAVA_8",
- "mixins": [],
- "client": [
- "ClientCommandSourceMixin",
- "ItemRendererMixin",
- "ScreenMixin",
- "SimpleOptionMixin"
- ],
- "injectors": {
- "defaultRequire": 1
- }
-} \ No newline at end of file
diff --git a/src/main/resources/public_bbsentials_cert.crt b/src/main/resources/public_bbsentials_cert.crt
new file mode 100644
index 0000000..723fc34
--- /dev/null
+++ b/src/main/resources/public_bbsentials_cert.crt
Binary files differ