MySQLConnect - HostingEdition

Started by TheUnknownEntity, November 17, 2018, 07:04:05 PM

Previous topic - Next topic

TheUnknownEntity

Servus Leute,

für einen Bekannten mit der Hosting Edition soll ich ein kleines Plugin entwickeln. So wie ich es verstanden habe soll bei dieser Variante der MySQL Support gegeben sein. Dazu wollte ich die mitgelieferte Klasse MySQLConnect aus dem Package import de.stefan1200.util.MySQLConnect; verwenden. Jedoch ist es mir ein Rätsel wieso ich bei der unten stehenden Quellcode-Zeile von eclipse einfach nur "The constructor MySQLConnect(String, int, String, String, String, int, int, int, int) is undefined" als Fehlermeldung erhalte.. der Konstruktur hat aber definitiv diesen Methodenkopf. Hat jemand von Euch eine Idee was ich übersehe?
Ich verwende die jre1.8.0_181 und habe als compiler compliance level 1.5. Ich Danke für jede Hilfestellung..

MySQLConnect dbConnection = new MySQLConnect("", 0, "", "", "", 0, 0, 0, 0);

Viele Grüße,
TheUnknownEntity

Stefan1200

Erstmal brauchst du im Plugin in der Methode initClass() die modClass (vom Typ JTS3ServerMod_Interface).

Dann ganz einfach:
MySQLConnect dbConnection = modClass.getMySQLConnection();

Das ist aber nur notwendig, wenn du überhaupt eine eigene MySQL Tabelle für das Plugin benötigst. Ansonsten kannst du mit der initConfig() und loadConfig() arbeiten, wie im beiliegenden Sourcecode zum Plugin AutoKickTimer (siehe im Ordner/Datei documents\plugin_sources\AutoKickTimer_src.zip).

TheUnknownEntity

Hi Stefan,

Danke für die schnelle Antwort. Ich werde es nachher gleich ausprobieren.
Die brauche ich (leider) um gewisse Daten separat abspeichern zu können. Habe es vorher mit der Config versucht, aber die kann das so nicht wiederspiegeln.
Einen schönen Abend wünsche ich!

Stefan1200

Hier dann noch ein Beispiel, wie ich das in einer JTS3ServerMod Funktion mache:

// Diese IF Abfrage prüft, ob gerade die MySQL Funktionalität verfügbar ist, oder nicht. Bei FALSE wird halt nach der Konfigdatei gesucht.
if (modClass.getMySQLConnection() != null)
{
MySQLConnect mysqlConnect = modClass.getMySQLConnection();

boolean retValue = false;
PreparedStatement pst = null;
ResultSet rs = null;

try
{
mysqlConnect.connect();
pst = mysqlConnect.getPreparedStatement("SELECT textentry FROM jts3servermod_advertising WHERE instance_id = ? AND prefix = ?");
pst.setInt(1, modClass.getInstanceID());
pst.setString(2, configPrefix);
rs = pst.executeQuery();

ADVERTISING_MESSAGES.clear();
while(rs.next())
{
ADVERTISING_MESSAGES.addElement(rs.getString(1));
}
retValue = true;
}
catch (Exception e)
{
retValue = false;
}
finally
{
try {if (rs != null) rs.close();} catch (Exception e2) {}
try {if (pst != null) pst.close();} catch (Exception e3) {}
mysqlConnect.close();
}

return retValue;
}

TheUnknownEntity

Funktioniert einwandfrei. Danke nochmal für das detaillierte Beispiel. Ich bin so frei und schließe den Thread.