Jump to content

MongoDB Connection Timeout Forge 1.8.9


vromM

Recommended Posts

I have developed a Minecraft mod that utilizes MongoDB Atlas. The code works fine when I run it in the Intellij IDE, and the connection to the database is established successfully. However, when I try to launch the mod using the Minecraft launcher, the connection to the database times out, and I get an error message. I have checked the connection settings that any ip can access the database, verified that the MongoDB driver is included in the mod, and confirmed that the MongoDB server is running and accessible. Despite these efforts, the issue persists, and I am unable to connect to the database when launching the mod in the Minecraft launcher.

Code:

import co.rmacro.components.ChatListener;
import co.rmacro.components.Mod;
import co.rmacro.components.NoKey;

import com.mongodb.client.MongoClient;
import com.mongodb.client.MongoClients;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.model.Projections;
import org.bson.Document;

import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.List;


import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.Mod.EventHandler;
import net.minecraftforge.fml.common.event.FMLInitializationEvent;

@Mod(modid = "myMod", name = "myMod", version = "1.0.0", acceptedMinecraftVersions = "1.8.9", dependencies = "required-after:[email protected]")
public class rMacro {
    private Mod mod;

    @EventHandler
    public void preinit(FMLInitializationEvent event) throws SocketException {
        boolean chooseMod = checkKey();
        if (chooseMod) {
            mod = new Mod();
            ChatListener chatListener = new ChatListener(macro);
            MinecraftForge.EVENT_BUS.register(chatListener);
        } else {
            System.out.println("NoKey");
            NoKey noKey = new NoKey();

            MinecraftForge.EVENT_BUS.register(noKey);
        }
    }

    private boolean checkKey() throws SocketException {
        System.out.println("CheckKey");
        // get the MAC address
        String macAddress = getMacAddress();
        String uri = "mongodb+srv://customer:[email protected]/?retryWrites=true&w=majority";
        MongoClient mongoClient = MongoClients.create(uri);
        boolean macAddressFound = false;
        // connect to the MongoDB and get the collection
        try {

            MongoDatabase database = mongoClient.getDatabase("Mod-Keys");
            MongoCollection<Document> collection = database.getCollection("MacAddress");

            // check if the MAC address is in the collection
            List<Document> doc = collection.find().projection(Projections.include("macA")).into(new ArrayList());
            System.out.println(doc);
            for (Document document : doc) {
                String mac = document.getString("macA");
                System.out.println(mac);
                if (macAddress.equals(mac)) {
                    System.out.println("MAC address found");
                    System.out.println(macAddress);
                    macAddressFound = true;
                    break;
                }
                else {
                    System.out.println("MAC address: " + mac);
                    System.out.println("macAddress: " + macAddress);
                }
            }
        } catch (Exception e) {
            System.out.println("Error connecting to MongoDB: " + e.getMessage());

        }
        return macAddressFound;
    }
 
    private String getMacAddress() throws SocketException {
        System.out.println("getMacAddress");
        String macAddress = "";
        try {
            // use Java Network Interface API to get the MAC address
            NetworkInterface networkInterface = NetworkInterface.getByInetAddress(InetAddress.getLocalHost());
            byte[] mac = networkInterface.getHardwareAddress();
            StringBuilder sb = new StringBuilder();
            for (int i = 0; i < mac.length; i++) {
                sb.append(String.format("%02X%s", mac[i], (i < mac.length - 1) ? "-" : ""));
            }
            macAddress = sb.toString();
        } catch (UnknownHostException e) {
            e.printStackTrace();
        }
        return macAddress;
    }
}

 

The Error I get when I launch the mod in the Minecraft Launcher:
 

Error connecting to MongoDB: Timed out after 30000 ms while waiting for a server that matches com.mongodb.client.internal.MongoClientDelegate$1@4fe9a720. \n Client view of cluster state is {type=REPLICA_SET, servers=[{address=ac-cpyryjh-shard-00-00.cnvpg2s.mongodb.net:27017, type=UNKNOWN, state=CONNECTING, exception={com.mongodb.MongoSocketWriteException: Exception sending message}, caused by {javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: No subject alternative names matching IP address 18.197.37.129 found}, caused by {java.security.cert.CertificateException: No subject alternative names matching IP address 18.197.37.129 found}}, {address=ac-cpyryjh-shard-00-01.cnvpg2s.mongodb.net:27017, type=UNKNOWN, state=CONNECTING, exception={com.mongodb.MongoSocketWriteException: Exception sending message}, caused by {javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: No subject alternative names matching IP address 18.195.134.220 found}, caused by {java.security.cert.CertificateException: No subject alternative names matching IP address 18.195.134.220 found}}, {address=ac-cpyryjh-shard-00-02.cnvpg2s.mongodb.net:27017, type=UNKNOWN, state=CONNECTING, exception={com.mongodb.MongoSocketWriteException: Exception sending message}, caused by {javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: No subject alternative names matching IP address 52.28.222.2 found}, caused by {java.security.cert.CertificateException: No subject alternative names matching IP address 52.28.222.2 found}}

 

Edited by vromM
Clarification
Link to comment
Share on other sites

Guest
This topic is now closed to further replies.

Announcements



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • Bump? Do I have to add more content or can I just say this? Any help would be really appreciated.
    • Hello! My friends and I were attempting to add a few extra mods to the Create Chronicles modpack, and all was well until people started crashing when they opened their inventories. Any help finding the culprit would be MUCH appreciated, I've been scratching my head for the past few days on what went wrong. https://paste.ee/p/8pajP
    • >>>KLIK LOGIN DISINI SAYANG<<< >>>KLIK DAFTAR DISINI SAYANG<<< Pendahuluan Dalam dunia perjudian online, slot menjadi salah satu permainan yang paling diminati. Dengan munculnya berbagai platform, Togel2Win hadir sebagai salah satu pilihan menarik, terutama dengan fitur anti rungkad yang dijanjikan. Artikel ini akan membahas tentang Togel2Win, keunggulan slot terbaru, dan bagaimana server Thailand berperan dalam meningkatkan pengalaman bermain. Apa Itu Togel2Win? Togel2Win adalah platform permainan yang menawarkan berbagai jenis permainan, termasuk slot dan togel. Dengan antarmuka yang ramah pengguna dan beragam pilihan permainan, situs ini bertujuan untuk memberikan pengalaman bermain yang menyenangkan dan menguntungkan bagi para pemain. Keunggulan Slot Togel2Win Fitur Anti Rungkad: Salah satu keunggulan utama dari Togel2Win adalah fitur anti rungkad yang dirancang untuk mengurangi kemungkinan gangguan saat bermain. Ini memastikan bahwa pemain dapat menikmati permainan tanpa gangguan teknis, meningkatkan kenyamanan dan fokus. Beragam Pilihan Slot: Togel2Win menawarkan berbagai jenis slot, dari yang klasik hingga yang modern dengan grafis menawan dan tema yang menarik. Ini memberikan variasi yang cukup bagi pemain untuk menemukan permainan yang sesuai dengan preferensi mereka. Server Thailand yang Stabil: Server yang berlokasi di Thailand memberikan koneksi yang cepat dan stabil. Ini sangat penting untuk pengalaman bermain yang lancar, terutama saat bermain slot yang memerlukan respons cepat. Bonus dan Promosi Menarik: Togel2Win sering menawarkan bonus dan promosi yang menarik untuk menarik pemain baru dan mempertahankan loyalitas pemain yang sudah ada. Ini bisa berupa bonus deposit, putaran gratis, atau program loyalitas. Tips untuk Pemain Slot di Togel2Win Pilih Slot dengan RTP Tinggi: Sebelum memulai permainan, pastikan untuk memilih slot dengan tingkat pengembalian pemain (RTP) yang tinggi untuk meningkatkan peluang menang. Kelola Anggaran: Tentukan batasan anggaran sebelum bermain dan patuhi itu. Ini membantu mencegah kerugian besar dan menjaga pengalaman bermain tetap menyenangkan. Manfaatkan Bonus: Jangan ragu untuk memanfaatkan bonus dan promosi yang ditawarkan. Ini bisa memberikan tambahan modal untuk bermain lebih lama. Kesimpulan Togel2Win merupakan pilihan menarik bagi para penggemar slot, terutama dengan fitur anti rungkad dan server yang stabil. Dengan berbagai pilihan permainan dan bonus yang menggiurkan, Togel2Win siap memberikan pengalaman bermain yang tak terlupakan. Jika Anda mencari platform slot yang andal dan menyenangkan, Togel2Win bisa menjadi solusi yang tepat.
  • Topics

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.