Programmieren & Softwareentwicklung

Wenn Du nicht nur Anwender sein willst, sondern auch aktiv programmierst oder mit dem Gedanken spielst, dann warten hier die passenden Fragen und Antworten auf Dich.

26.809 Beiträge

Minecraft Java Spigot Plugin Error?

Moin,

ich habe vor kurzem mit Minecraft Plugin Development angefangen, hatte vorher mit C# und JavaScript Projekte gemacht. Leider habe ich ein Problem beim Laden des Plugins auf meinen Localhost Server.

Hier der Error:

[23:35:59 INFO]: [KalenderEdolas] [STDOUT] [EdolasKalender] Datum ist geladen!

[23:35:59 ERROR]: Error occurred while enabling KalenderEdolas v1.0-SNAPSHOT (Is it up to date?)

java.lang.IllegalStateException: zip file closed

       at java.util.zip.ZipFile.ensureOpen(ZipFile.java:866) ~[?:?]

       at java.util.zip.ZipFile.getEntry(ZipFile.java:349) ~[?:?]

       at java.util.jar.JarFile.getEntry(JarFile.java:516) ~[?:?]

       at java.util.jar.JarFile.getJarEntry(JarFile.java:471) ~[?:?]

       at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:195) ~[paper-api-1.19.4-R0.1-SNAPSHOT.jar:?]

       at java.lang.ClassLoader.loadClass(ClassLoader.java:595) ~[?:?]

       at org.bukkit.plugin.java.PluginClassLoader.loadClass0(PluginClassLoader.java:155) ~[paper-api-1.19.4-R0.1-SNAPSHOT.jar:?]

       at org.bukkit.plugin.java.PluginClassLoader.loadClass(PluginClassLoader.java:150) ~[paper-api-1.19.4-R0.1-SNAPSHOT.jar:?]

       at java.lang.ClassLoader.loadClass(ClassLoader.java:528) ~[?:?]

       at me.tom.kalenderEdolas.KalenderEdolas.onEnable(KalenderEdolas.java:27) ~[kalenderedolas-1.0-SNAPSHOT.jar:?]

       at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:281) ~[paper-api-1.19.4-R0.1-SNAPSHOT.jar:?]

       at io.papermc.paper.plugin.manager.PaperPluginInstanceManager.enablePlugin(PaperPluginInstanceManager.java:189) ~[paper-1.19.4.jar:git-Paper-550]

       at io.papermc.paper.plugin.manager.PaperPluginManagerImpl.enablePlugin(PaperPluginManagerImpl.java:104) ~[paper-1.19.4.jar:git-Paper-550]

       at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:507) ~[paper-api-1.19.4-R0.1-SNAPSHOT.jar:?]

       at org.bukkit.craftbukkit.v1_19_R3.CraftServer.enablePlugin(CraftServer.java:563) ~[paper-1.19.4.jar:git-Paper-550]

       at org.bukkit.craftbukkit.v1_19_R3.CraftServer.enablePlugins(CraftServer.java:474) ~[paper-1.19.4.jar:git-Paper-550]

       at net.minecraft.server.MinecraftServer.loadWorld0(MinecraftServer.java:638) ~[paper-1.19.4.jar:git-Paper-550]

       at net.minecraft.server.MinecraftServer.loadLevel(MinecraftServer.java:437) ~[paper-1.19.4.jar:git-Paper-550]

       at net.minecraft.server.dedicated.DedicatedServer.initServer(DedicatedServer.java:308) ~[paper-1.19.4.jar:git-Paper-550]

       at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1104) ~[paper-1.19.4.jar:git-Paper-550]

       at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:320) ~[paper-1.19.4.jar:git-Paper-550]

       at java.lang.Thread.run(Thread.java:1575) ~[?:?]

Hier die Codezeile, die angeblich Probleme macht:

 getCommand("datum").setExecutor(new DatumCommand());

Hier meine Plugin.yml:

name: KalenderEdolas
version: '1.0-SNAPSHOT'
main: me.tom.kalenderEdolas.KalenderEdolas
api-version: '1.19'
author: Tom
commands:
  datum:
    description: Datumsausgabe
    usage: </datum>

Habe schon ChatGPT gefragt und Stunden im Internet gesucht. Vllt kann ja hier einer helfen.

Ask Me Anything: Themenspecials

Paypal SDK von USD auf EUR umstellen funktioniert nicht?

Ich habe beide Stellen im Code geändert:

script.src = `https://www.paypal.com/sdk/js?client-id=${clientId}&currency=EUR`;

und

currency_code: 'EUR',

Bekomme jedoch den folgenden Fehler https://pastebin.com/6eNUSdX9

Wichtigster Ausschnitt:

Error: Unexpected currency: EUR passed to order.create. Please ensure you are passing /sdk/js?currency=EUR in the paypal script tag. 

Der Fehler tritt auf, wenn ich USD auf EUR ändere. Hier ist meine

/app/paypal/page.tsx

https://pastebin.com/9GM500eR die ganze datei

Wichtigster Ausschnitt: der mit USD funktioniert:

<PayPalScriptProvider options={{ clientId }}>
            <div className="flex justify-center">
              <PayPalButtons
                style={{
                  layout: 'vertical',
                  color: 'blue',
                  shape: 'rect',
                  label: 'paypal',
                }}
                createOrder={(data, actions) => {
                  if (!actions || !actions.order) {
                    console.error('Fehler: actions.order ist nicht definiert');
                    return Promise.reject('Fehler bei der Erstellung der Bestellung');
                  }
 
                  return actions.order.create({
                    purchase_units: [
                      {
                        amount: {
                          currency_code: 'USD',
                          value: '100.00',
                        },
                      },
                    ],
                    intent: 'CAPTURE'
                  });
                }}
                onApprove={(data, actions) => {
                  if (!actions || !actions.order) {
                    console.error('Fehler: actions.order ist nicht definiert');
                    return Promise.reject('Fehler bei der Genehmigung der Bestellung');
                  }
 
                  return actions.order.capture().then((details) => {
                    console.log('Zahlung erfolgreich abgeschlossen:', details);
                    setPaymentSuccess(true);  // Zeigt die Erfolgsmeldung an
                    setErrorMessage('');  // Setzt die Fehlermeldung zurück
                    return Promise.resolve();
                  });
                }}
                onError={(err) => {
                  console.error('Fehler bei der PayPal-Zahlung:', err);
                  setErrorMessage('Es gab ein Problem bei Ihrer Zahlung. Bitte versuchen Sie es erneut.'); // Zeigt die Fehlermeldung an
                  setPaymentSuccess(false); // Setzt den Zahlungserfolgsstatus zurück
                }}
              />
            </div>
          </PayPalScriptProvider>

Meine

env Datei ist folgendermaßen konfiguriert:
makefile
Code kopieren
NEXT_PUBLIC_PAYPAL_CLIENT_ID = "12345"
PAYPAL_CLIENT_ID = "12345"
PAYPAL_CLIENT_SECRET = "ABCDEF"
PAYPAL_WEBHOOK_SECRET="XYZ123"

Ich habe den currency_code von 'USD' auf 'EUR' geändert und auch die URL des PayPal-Skripts angepasst:

script.src = `https://www.paypal.com/sdk/js?client-id=${clientId}&currency=EUR`;

Trotzdem bekomme ich den Fehler, dass EUR nicht als Währung erkannt wird.

Ich habe die Dokumentation auf PayPal Developer überprüft, und laut dieser ist

EUR

der richtige Währungscode.

  • Ich benutze Next.js 15 und habe auf React 18 downgraden müssen, da React 19 nicht mit
@paypal/react-paypal-js
  • kompatibel ist aber spielt eigentlich keiner olle und sowohl im sandbox oder live modus dasselbe das man nach dem klick auf dem button mit EUR einen fehler bekommt.

Kann mir jemand helfen, was hier das Problem ist?

Domain nicht erreichbar trotz mDNS?

Hallo,

ich bastle gerade an einem IoT Projekt. Dafür ist ein ESP8266 (Im Moment ein NodeMCU Amica (ESP8266 12-F), später vielleicht ein D1 mini falls das relevant für die Lösung ist) vorgesehen, der als Webserver fungieren soll. Anbei befindet sich der bisherige Code. Leider kann ich den ESP nur über seine IP Adresse erreichen, nicht aber über eine .local Domain, trotz eines eingebauten mDNS. Was ist falsch an diesem Code?

#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
#include <ESP8266mDNS.h>


ESP8266WebServer server(80);


void setup() {
  Serial.begin(9600);
  Serial.println("ESP Gestartet");
  WiFi.begin(ssid, password);


  Serial.print("Verbindung wird hergestellt...");
  while (WiFi.status() != WL_CONNECTED){
    delay(500);
    Serial.print(".");
  }
  Serial.println();
  Serial.print("Verbunden! IP-Adresse: ");
  Serial.println(WiFi.localIP());


  if (MDNS.begin("esp8266")){
    Serial.println("DNS funktionsbereit");
  }


  server.onNotFound([] () {
    server.send(404, "text/plain", "Page not found");
  });


  server.on("/", [] () {
    server.send(200, "text/plain", "ESP Startseite");
  });


  server.on("/fütterung", [] () {
    server.send(200, "text/plain", "schon gefüttert?");
    Serial.println("Seite wird angeschaut"); 
  });


  server.begin();


}


void loop() {


  server.handleClient();


}


Vielleicht weiß ja jemand einen Lösungsansatz. Vielen Dank schon mal!