[Die Github Repository herunterladen]

public enum PlayerHeadSrc {
	PLAYER,
	URL
}
	
public void setPlayerHead(Player p, String urlorplayer, PlayerHeadSrc headsrc, boolean helmetIsEmpty) {
	if(p.getInventory().getHelmet() == null || !helmetIsEmpty) {
		p.getInventory().setHelmet(headsrc == PlayerHeadSrc.PLAYER ? Skull.getPlayerSkull(urlorplayer) : (headsrc == PlayerHeadSrc.URL ? Skull.getCustomSkull(urlorplayer) : null));
	}
}

WICHTIG: Du MUSST die Repository herunterladen und einbinden.

Bsp:

setPlayerHead(p, p.getN, PlayerHeadSrc.PLAYER, false);

p = Der Spieler,

PlayerHeadSrc.PLAYER = gibt an, dass es von einem Spieler sein soll

PlayerHeadSrc.URL = gibt an, dass es von einer URL sein soll

false = gibt an, dass es egal ist, ob der Kopfslot belegt ist

...zur Antwort
public boolean playerHasItem(Player p, String itemname) {
	for(int i = 0; i < p.getInventory().getSize(); i++) {
		if(p.getInventory().getItem(i).getItemMeta().getDisplayName() == itemname){
			return true;
		}
	}
	return false;
}
	
public boolean playerHasItem(Player p, ItemMeta itemmeta) {
	for(int i = 0; i < p.getInventory().getSize(); i++) {
		if(p.getInventory().getItem(i).getItemMeta() == itemmeta){
			return true;
		}
	}
	return false;
}

Du kannst eine der Funktionen benutzen. Beide Funktionen durchsuchen das Inventar vom Spieler nach (Funktion 1) einem Namen und (Funktion 2) nach einer ItemMeta.

...zur Antwort
C# Programm Zweidimensionales Array?

Moin,

sitze schon ne Weile an einem Programm, das einen Integer (nennen wir ihn Zahl ) vom Benutzer einlesen soll. Ausgehend von Zahl soll dann wie folgt ein zweidimensionales Array erstellt werden:

  • das Array ist Zahl x Zahl groß
  • das Element oben links im Array (also [0, 0] ) hat den Wert Zahl x Zahl
  • jedes weitere Element rechts daneben hat jeweils -1 weniger
  • anders beschrieben: es wird von links nach rechts abwärts gezählt beginnend vom Wert Zahl x Zahl

Da ich mir den Lösungsweg Stück für Stück erarbeiten möchte, könnt Ihr auf die komplette Lösung/ bzw. Erklärung verzichten.

Ich weiß, dass man Zeilen und Spalten bei dieser Aufgabe beide mit for-Schleifen erstellen kann, doch der Einfachheit halber möchte ich erst verstehen, wie ich mit den Spalten vorgehen muss.

Ohne for-Schleife bekomme ich die erste Spalte problemlos erstellt und das sieht dann so aus:

oder:

Console.WriteLine("Geben Sie eine Zahl ein, bei der nach dem"+ "Schema Zahl*Zahl ein Array erstellet werden soll:");
            string eingabe = Console.ReadLine();
            int intEingabe = Convert.ToInt32(eingabe);
            Console.WriteLine("\n");
            int[,] eingabeArray = new int[intEingabe,intEingabe];
            int eingabeArrayLänge = intEingabe * intEingabe;

            //Erste Spalte:
            eingabeArray[0, 0] = eingabeArrayLänge;
            eingabeArray[1, 0] = eingabeArray[0, 0] - 1;
            eingabeArray[2, 0] = eingabeArray[1, 0] - 1;
            Console.WriteLine(eingabeArray[0, 0] + "\n" + eingabeArray[1, 0] + "\n" + eingabeArray[2, 0]);

Bis dahin kein Problem doch wie schaffe ich es nun, dass ich die erste Spalte nicht "von Hand" ausfüllen muss? Das muss doch irgendwie mit ner for-Schleife zu machen sein?

Doch ich komme da nicht weiter - egal wie ich es drehe und wende.. Wäre nett wenn jemand mir die passende for-Schleife zeigen könnte.

LG

...zur Frage
for(int i = 0;i < intEingabe;i++){ /*durch jede Zeile oder Spalte loopen*/
  for(int a = 0;a < intEingabe;a++){ /*durch jede Spalte oder Zeile loopen*/
    eingabeArray[i, a] = eingabeArray[i==0?i:i--, a==0?a:a--]--; /*eingabeArray[Zeile, Spalte] = eingabeArray[Zeile -1, Spalte-1]-1*/
  }
}

Bin mir nicht sicher, kannst du aber mal probieren.

...zur Antwort
Weitere Inhalte können nur Nutzer sehen, die bei uns eingeloggt sind.