Hey!

Ich versuche dir einmal die Antwort von User1234929 zu erklären.

Fragen wir uns aber erst einmal die Fragen: Warum brauche ich eine Website für diese Information? Naja, Spigot hat sie nicht vom Offline Spieler, daher müssen wir die Infos von einer anderen Quelle bekommen - die Website zum Beispiel.

Hier nochmal der Link: https://api.ashcon.app/mojang/v2/user/[hier Name einfügen]

Das ist eine sogenannte API.

Was ist eine API? - Grundsätzlich ist eine API bloß eine Schnittstelle. In diesem Fall die Schnittstelle einer Datenbank, die Informationen über Offline Spieler hat und deinem Plugin, welches diese Info braucht.

Wir nutze ich diese API? Den Text, den dir die Website sendet ist im sogenannten - 'JSON'-Format. Was du nun also tun musst, worauf ich nun aber nicht weiter eingehen werde, ist eine HTTP Anfrage mit einem HTTPClient in deinem Plugin an die Website zu senden und den JSON Text mit Tools wie GSON oder Jackson zu einem Offline Spieler Objekt zu konvertieren. Und dann kannst du auch schon wieder, wie du es tun wolltest, normal die Aufrufe auf deinen Objekten machen und dran arbeiten den Skin zu bekommen.

Ich hoffe, dass ich dir helfen konnte.

LG

Alex aka. Kritiko

...zur Antwort

Hey!

Am Besten schaust du dir an, wie du mit Maven ein Plugin aufsetzt. Ich vermute mal, dass du ein Plugin in IntelliJ verwendest, um direkt alles automatisch an Abhängigkeiten generieren zu lassen.

Also schau mal nach, wie du ein Maven Projekt in IntelliJ aufsetzt. Dieser Prozess hat noch nichts mit Minecraft zutun.

Hast du das geschafft, schaust du mal auf der Spigot Seite (oder womit auch immer du das Plugin erstellen willst), welche Abhängigkeiten du in der pom.xml hinzufügen musst.

Danach sollte es klappen. Ich selbst nutze auch IntelliJ und programmiere Plugins jeder Version seit der 1.8 damit. Ich weiß aber nicht genau, wie tief es geht, mit den Versionen.

Hoffe, ich konnte dir helfen.

LG

Kritiko (Alex)

...zur Antwort

Hey!

In meiner Ausbildung mussten wir auch viele kleine Programme schreiben, damit alle ungefähr auf den gleich Stand kamen.

Zum Beispiel könntest du Sudoku programmieren mit einer Konsolenausgabe oder wie wäre es mit 4 Gewinnt? Du kannst aber natürlich auch mal schauen, ob du etwas aus dem echten Leben abbilden kannst, das macht mir sehr viel Spaß. Daraus kannst du dann auch zum Beispiel ein Spiel machen.

Letztlich bleibt es deine Sache wie sehr du dich mit den Themen auseinandersetzt.

Tipp: Überlege dir selbst Ausbaustufen und eine Liste an Feautures, die das Programm haben soll. Lerne auch schnellstmöglich UML, das ist sehr gut, wenn man Software möglichst professionell umsetzen kann.

Tipp: Sollte dir irgendwie alles nicht zusagen, kannst du auch Programmier Chartas machen. Kleine Aufgaben auf einer Website programmieren und Code in Ordnung bringen.

Hoffe, ich konnte dir helfen und noch viel Spaß beim Programmieren!

LG

Kritiko (Alex)

...zur Antwort

Hey!

Zunächst einmal solltest du die gesamten Kosten für Frau Pohl in einem Monat berechnen:

Festkosten pro Monat + (Materialkosten pro Krug * 350)

Da sie als erstes beispielsweise Miete Zahlen muss für ihre Werkstatt hat sie die 1250€ Ausgaben. Und dann will sie in dem gleichen Monat noch 350 Krüge produzieren, also müssen wir die Kosten pro Krug mal 350 rechnen.

Somit kommen wir auf die gesamten Ausgaben in dem Monat. Jetzt möchte Frau Pohl ja aber nicht nur so viel verdienen, dass sie die Ausgaben deckt, sondern so viel, dass sie noch 850€ im Monat plus macht. Also rechnen wir diese 850€ plus das vorherige Ergebnis, um den Gesamtbetrag zu bekommen, den sie im Monat erwirtschaften will.

Diesen Gesamtbetrag teilst du dann auf die 350 Krüge auf, sodass jeder gleich viel kostet.

Ich hoffe, ich konnte dir helfen und habe den Lösungsweg ausführlich erklärt.

LG

Kritiko (Alex)

...zur Antwort

Hey!

Das ist zur Zeit leider ganz normal, meine Freunde und ich haben das auch die ganze Zeit. Der Fehler liegt aber bei Ubisoft.

Hoffe, ich konnte dir helfen.

LG

Kritiko (Alex)

...zur Antwort

Hey!

Ich habe gerade mal im Internet nach einer Lösung gesucht und etwas auf Stackoverflow gefunden, was dir eventuell weiterhelfen könnte:

https://stackoverflow.com/questions/27901042/create-a-batch-file-to-run-an-exe-with-an-additional-parameter

Versuche es einfach mal damit, wenn du Fehler bekommst, dann kommentiere einfach.

Hoffe, ich konnte dir helfen!

Liebe Grüße

Kritiko (Alex)

...zur Antwort

Hey!

Also ich weiß nicht, ob ich recht verstanden habe, aber die gröbsten Fehler kann ich dir nennen.

Du versucht gewisse Methoden zu nutzen. Diese Methoden benötigen allerdings keinen numerischen Datentypen, denen du ihnen aber durch eine Rechnung als Argument übergibst. Also stellst sich die Frage, wie ich einen Integer als String ausdrücken kann. Am Einfachsten machst du das mit String.valueOf(int).

Des Weiteren versuchst du die Rechenmethoden mit einer Vielzahl an Argumenten aufzurufen. Du benötigst aber keine, zumindest hast du sie im Code nicht angegeben.

Ansonsten beschreibe einmal bitte, wie der Bruchrechner aussehen soll, beziehungsweise wie die Aufgabe aussieht, da du wahrscheinlich eine bekommen hast. Alternativ kann ich empfehlen eine andere IDE als BlueJ zu benutzen, da BlueJ viele Sachen nicht besitzt und nur für schulische Zwecke verwendet wird. Den Sourcecode kannst du dann wieder in BlueJ reinkopieren :D

Hoffe, ich konnte helfen.

Liebe Grüße

Kritiko (Alex)

...zur Antwort

Hallo!

Um eine Redoxgleichung aufzustellen gehst du immer nach dem gleichen Muster vor:

1 - Bestimmung der Oxidationszahlen

Diese hängen immer von der Elektronegativität des einzelnen Atoms ab. Am Besten zeichnest du es dir auf, um es leichter nachzuvollziehen. Ich schreibe mir die Oxidationszahlen immer über die einzelnen Atome der Moleküle. Danach musst du schauen, wie sich diese verändert haben, um herauszufinden welcher Stoff oxidiert und welcher Stoff reduziert wird.

2 - Ausgleich der Anzahl der abgegebenen und aufgenommenen Elektronen und Addition der Teilreaktionen

Dazu musst du auf den jeweiligen Seiten schauen, dass die Ladungen die rechts und links stehen wieder gleich sind, wenn man sie mit den Elektronen addiert. Die Oxidationszahlen helfen dir dabei.

3 - Ladungsausgleich mithilfe von H3O+ / OH-

Nun müssen wir die Ladung der dazugeschriebenen Elektronen noch ausgleichen. Im alkalischen macht man dies mit OH-, im neutralen beziehungsweise sauren Milieu mit H3O+.

4 - Stoffausgleich

Zum Schluss musst du beide Gleichungen so umformen, dass sie Elektronen die gleiche Anzahl haben und sich somit wegkürzen, da wir diese nicht mehr im Endergebnis stehen haben wollen.

Zum Schluss musst du noch kürzen und Edukt -und Produktseite zusammentragen!

Tipp: Verfahre immer genau nach diesen Schritten, auch wenn dir etwas vertraut vorkommt.

Du kannst dir zur Hilfe mal Videos zu dem Thema anschauen: https://www.youtube.com/watch?v=aQNaXLFBqpw

Beherzigt man diese Schritte, erhält man die Lösung, die die Seite zeigt.

Hoffe, ich konnte helfen.

Liebe Grüße

Kritiko (Alex)

...zur Antwort

Hey!

Wenn du oben recht bei Chrome auf die Einstellungen klickst, siehst du dort den Reiter 'Benachrichtigungen'. Hier kannst du einmal die Websites aus der Liste der erlaubten Websites, die Benachrichtigungen senden dürfen, entfernen oder einfach Chrome die Berechtigung nehmen, Nachrichten senden zu dürfen.

Zumindest ist es bei mir so (Android (Oxygen OS)).

Hoffe, ich konnte helfen!

Liebe Grüße

Kritiko (Alex)

...zur Antwort
Eclipse programmieren Minecraft: ICH BRAUCHE HILFE!?

Also, ich wollte, wnn man /... <Spielername> eingibt, dass sich ein Inventar öffnet, wo, wenn man auf das Kick Item klickt der ANGEGEBENE Spieler im Command gekickt wird. Bloß, ich kann das Player t = Bukkit.getPlayer(args[1]) nicht unten in das InventoryClickEvent schreiben. Was soll ich machen? Ich brauche HILFE!

Hier der Sourcecode:

public class ControlInventory implements CommandExecutor, Listener{

@Override
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {      
    Player p = (Player) sender;
    if(p.hasPermission("serversystem.controllinventory") || p.isOp()) {
            if(sender instanceof Player) {
                if(args.length == 0) {
                    
                p.sendMessage("§cDas kannst du nicht bei dir selber machen!");
                
            }else if(args.length == 1) {                        
                Player t = Bukkit.getPlayer(args[1]);
                if(t != null) {
                    
                    Inventory inv = Bukkit.createInventory(null, 9*3, "§f§lControll§c§lInventory");
                    p.sendMessage("§7Du hast das §fControl§cInventar §7von §b" + t.getName() + " §fgeöffnet!");
                    p.openInventory(inv);




                    ItemStack KICK = new ItemStack(Material.REDSTONE_TORCH_OFF);
                    ItemMeta kick = KICK.getItemMeta();
                    kick.setDisplayName("§2§lSpieler §4kicken");
                    KICK.setItemMeta(kick);
                    
                    ItemStack GLASS = new ItemStack(Material.STAINED_GLASS_PANE);
                    ItemMeta glass = GLASS.getItemMeta();
                    glass.setDisplayName(" ");
                    GLASS.setItemMeta(glass);
                    
                    inv.setItem(0, GLASS);
                    inv.setItem(1, GLASS);
                    inv.setItem(2, GLASS);
                    inv.setItem(3, GLASS);
                    inv.setItem(4, GLASS);
                    inv.setItem(5, GLASS);
                    inv.setItem(6, GLASS);
                    inv.setItem(7, GLASS);
                    inv.setItem(8, GLASS);
                    inv.setItem(9, GLASS);
                    inv.setItem(10, GLASS);
                    inv.setItem(11, GLASS);
                    inv.setItem(12, GLASS);
                    inv.setItem(13, GLASS);
                    inv.setItem(14, GLASS);
                    inv.setItem(15, GLASS);
                    inv.setItem(16, GLASS);
                    inv.setItem(17, GLASS);
                    inv.setItem(18, GLASS);
                    inv.setItem(19, GLASS);
                    inv.setItem(20, GLASS);
                    inv.setItem(21, GLASS);
                    inv.setItem(22, GLASS);
                    inv.setItem(23, GLASS);
                    inv.setItem(24, GLASS);
                    inv.setItem(25, GLASS);
                    inv.setItem(26, GLASS);
                    
                }
            }
        }
    }
    return true;
}

@EventHandler
public void onClick(InventoryClickEvent e) {
    Player p = (Player) e.getWhoClicked();
&nbsp; if (e.getInventory().getName().equals("§f§lControll§c§lInventory")) {
&nbsp; &nbsp; if (e.getCurrentItem() != null &amp;&amp; e.getCurrentItem().getType() != Material.AIR) {
&nbsp; &nbsp; &nbsp; e.setCancelled(true);
&nbsp; &nbsp; &nbsp; if (e.getCurrentItem().getType() == Material.REDSTONE_TORCH_OFF) {
&nbsp; &nbsp;   &nbsp;
&nbsp; &nbsp;   &nbsp; p.closeInventory();
&nbsp; &nbsp;   }
&nbsp; &nbsp; &nbsp; }
&nbsp; &nbsp; }
}

}


...zum Beitrag

Hey!

Um den das jeweilige Spielerobjekt zu bekommen, kannst du dir mithilfe der Methode Bukkit.getOnlinePlayers() eine Liste aller Spieler zurückgeben lassen, die zurzeit online sind.

Du kannst dann durch diese Liste (zum Beispiel mit einer For-Schleife) iterieren und jeden Namen des Spielerobjekts mit dem gewollten abgleichen (am Besten '. equalsIgnoreCase()' ).

Wurde der Spieler dann gefunden fährst du fort.

Ich würde dir außerdem ans Herzen legen dich in Zukunft mit den Themen CleanCodeDevelopment und Naming Conventions in Java auseinanderzusetzen.

Hoffe, ich konnte helfen.

Liebe Grüße

Kritiko (Alex)

...zur Antwort

Hey!

Es gibt verschiedene Möglichkeiten das Ganze zu bewerkstelligen. Ich verlinke einfach mal einen Post auf Stackoverflow zum Thema DateFormat, da es meiner Ansicht nach das ist, was du bei deinem Vorgehen benötigst:

https://stackoverflow.com/questions/40715424/printing-out-datetime-in-a-specific-format-in-java/40715452

Hoffe, ich konnte dir helfen!

Liebe Grüße

Kritiko (Alex)

...zur Antwort

Hallo!

Es tut mir leid, dich enttäuschen zu müssen, aber diese Methode gibt es leider nicht. Zumindest nicht einfach so. Eventuell gäbe es ein work around.

So oder so könntest du allerdings eine Art 'Zwischenitem' erstellen, welches die Spieler im letztlichen Craftrecipe für das Creeperegg benutzen müssen. So müssen sie vorher noch mit anderen Ressourcen ein item erstellen, ohne das sie das Creeperegg nicht craften können.

Hoffe, ich konnte dir helfen!

Liebe Grüße

Kritiko (Alex)

...zur Antwort

Hallo!

Speichere deinen Scheduler in einer Variable

BukkitRunnable consumptionScheduler = new ChangeValueScheduler(port, itemName, consumptionRate);

auf der du dann den gewünschten Aufruf machst

consumptionScheduler.runTaskTimer(Clerks.INSTANCE, 20 * 20, 20 * consumptionFrequency);

Zum Schluss kannst du dann den Scheduler wieder beenden:

consumptionScheduler.cancel();

Bitte beachte: Die Beispiele sind Codeschnipsel meines Codes und werden in deinem Code nicht funktionieren.

Hoffe, ich konnte dir helfen.

Liebe Grüße

Alex (Kritiko)

...zur Antwort

Guten Abend!

Es gibt verschiedene Ansätze, wie du vorgehen kannst. So kannst du beispielsweise in deinem Timer einen boolean abfragen, den du je nach belieben außerhalb der Klasse setzt, je nachdem, ob der Timer nun laufen soll oder nicht.

Andernfalls kannst du auch von außerhalb den Scheduler beenden und einfach beim Aufruf neu instanziieren.

Hoffe, ich konnte dir helfen.

Liebe Grüße

Kritiko (Alex)

...zur Antwort

Hey!

Also ich habe persönlich auch oft Probleme mit Spielen von Origin. Außerdem habe ich gerade einmal die Fehlermeldung nachgeschaut und es sieht so aus, als würde es helfen, dass du deine Visual C++ Pakete neu installierst.

Hier ein Link zu den Versionen: https://support.microsoft.com/de-de/help/2977003/the-latest-supported-visual-c-downloads

Die Alten solltest du vorher natürlich löschen via "Programme und Funktionen" in der Systemsteuerung.

Hoffe, ich konnte helfen!

LG

Kritiko(Alex)

...zur Antwort
Ein Verbot wäre Unsinn

Hey!

Nur weil in einem Spiel mit fiktiven Waffen auf Spielermodelle geschossen wird und diese in dem Spiel sterben, bedeutet dies nicht, dass das Spiel in irgendeiner Art und Weise schult, wie ich in echt mit einer Waffe umgehe.

Amokläufer haben eine psychische Erkrankung, diese entsteht aber nicht durch das Spiel. Vor allem in Counterstrike steht das taktische Spielen und Gewinnen im Vordergrund und in der Regel spielt niemand das Spiel, weil er gerne tötet. Denn das ist krank. In diesem Szenario wäre das Spiel erneut nur das Mittel zum Zweck und nicht der Grund einer psychischen Erkrankung.

In meinen Augen absoluter Quatsch. Counterstrike oder andere 'Killerspiele' (wie sie von den Medien gerne betitelt werden) sind keinesfalls der Grund für Amokläufe.

Dies ist aber natürlich nur meine Meinung.

LG

Kritiko

...zur Antwort

Hey!

Das liegt daran, dass in deiner HashMap bisher kein Eintrag ist. Das heißt, dass wenn du req.get(t) aufrufst, er diesen Spieler in der HashMap nicht kennt. Ich denke, du möchtest stattdessen die 'put' Methode verwenden.

Hoffe, ich konnte helfen!

LG

Alex (Kritiko)

...zur Antwort

Hey!

Ich habe dein Mainboard gerade einmal gegooglet - Es besitzt 2 DDR4 RAM Slots.

Zur Erklärung: DDR4 ist sowas wie die Version oder Generationen deines Arbeitsspeichers. Wenn du nun auf 16GB erweitern möchtest, so brauchst du noch einen 8GB DDR4 RAM Stick. Du könntest dir natürlich einfach genau den selben, den du gerade drin hast kaufen, oder du schaust einfach mal nach einem im Internet.

Dies hier ist ein DDR4-2133 8GB Stick, so wie er in dein Mainboard passen würde:

https://www.mindfactory.de/product_info.php/8GB-Corsair-ValueSelect-DDR4-2133-DIMM-CL15-Single_992584.html

Am besten schaust du, ob denn der angegebene RAM auch von Takt, Timing und Spannung zu deinem jetzigen passt.

Hoffe, ich konnte helfen.

LG

Alex (Kritiko)

...zur Antwort

Hey!

Für mich sieht es so aus, als ob es genau das ist, was du suchst, da dein Laptop, also die Bildquelle (Source), einen HDMI-Ausgang besitzt. Von dort aus soll nun das Bild auf den VGA-Anschluss übertragen werden. Offensichtlich ist das hier der Fall, da im Bild vom HDMI-Output zum VGA-Input übertragen wird. Daher ist auf der rechten Seite auch kein Laptop als Beispiel aufgeführt.

LG

Alex (Kritiko)

...zur Antwort