Dafür benötigst du einen Permissions-Manger. Empfehlen kann ich hier LuckPerms. Von PermissionsEx kann ich wiederum nur abraten, da es sehr lange keine Updates erhalten hat und für Einsteiger meistens zu Fehleranfällig ist. LuckPerms bietet mittlerweile auch deutlich mehr nützliche Funktionen, wie einen grafischen Editor.

Im Falle von LuckPerms:

Du kannst per Konsole oder wenn du dir die Rechte gegeben hast mit /lp neue Gruppen anlegen wie z.B. "Freunde" oder "Moderatoren" oder auch einfach nur die bestehende "default"-Gruppe nutzen, die jeder Spieler automatisch hat.

Um Permissions hinzuzufügen gibt es dann einen Befehl oder den Editor mit /lp editor

Die Permissions für bestimtme Befehle findest du in der Regel auf der Download-Seite der Plugins, die den Befehl bereitstellen.

Weitere Funktionen von LuckPerms findest du ebenfalls auf der Download-Seite erklärt oder im Wiki.

...zur Antwort

Du musst den Server auch in der config von LuckPerms eintragen. Standard ist global. Sobald es auf z.B. cb1 steht, gelten auf dem Server die allgemeinen Rechte und die für cb1. Der Befehl von dir sollte soweit stimmen.

Genauere Erlärungen gibt es im LuckPerms-Wiki: https://github.com/lucko/LuckPerms/wiki/Configuration#server

...zur Antwort

Ich meine mich zu erinnern, dass ich bei Zombey das Ende gesehen habe und er diesen zum Laufen gebracht hat. Aber das ist schon ewig her.. Seine Video-Playlist findest du auf https://www.youtube.com/user/Zombey/playlists?view=1&flow=grid

Tut mir leid, mehr weiß ich aber nicht mehr.

...zur Antwort

Das Item müsstest du ja in einem Event bereits haben:

if(event.getItem().getAmount() > 1) { event.getPlayer().getInventory().remove(event.getItem()); } else { event.getItem().setAmount(event.getItem().getAmount() - 1); }

Nicht getestet aber es sollte so in Etwa klappen :)

...zur Antwort
[Minecraft/Spigot/Java] Wie kann ich aus einem GameProfile Skins abspeichern?

Hallo,

ich würde gerne wissen wie ich aus dem GameProfile die für den Skin nötigen Daten bekomme, um diese abzuspeichern.

Es soll zu einem Cachingsystem dienen, damit auch beispielsweise die Köpfe von Spielern angezeigt werden können, die nicht online sind, ohne zu viele Anfragen an die Mojang Server zu stellen.

Folgenden Code nutze ich um das GameProfile von einem Spieler zu erhalten und diesem seinen eigene Kopf über die Informationen des GameProfiles zu geben. Dabei wende ich ein Object aus dem Reflection Bereich an (Field).

    public static ItemStack getFriendTool(Player p){
    
    SkullMeta freundeMeta = (SkullMeta) Bukkit.getItemFactory().getItemMeta(Material.SKULL_ITEM);
    GameProfile gp = ((CraftPlayer) p).getProfile();
    
    try {
        Field field = skullMetaClass.getDeclaredField("profile");
        field.setAccessible(true);
        try {
            field.set(freundeMeta, gp);
        } catch (IllegalArgumentException | IllegalAccessException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        field.setAccessible(!field.isAccessible());
    } catch (NoSuchFieldException | SecurityException e) {
        e.printStackTrace();
    }
    freundeMeta.setDisplayName("§eFreunde");
    ArrayList<String> freundeLore = new ArrayList<String>();
    freundeLore.add("Mit einem Rechtsklick öffnest Du die Freunde Übersicht,");
    freundeMeta.setLore(freundeLore);
    ItemStack freundeTool = new ItemStack(Material.SKULL_ITEM,1, (byte)3);
    freundeTool.setItemMeta(freundeMeta);
    return freundeTool;
}

Dieser Code funktioniert bereits nur wäre es eben gut, wenn ich die nötigen Informationen aus dem GameProfile abspeichern könnte und diese wiederverwenden könnte.

Meiner Überlegung nach, müsste ich diese aus einem Property Object bekommen, leider hat aber eine Recherche nichts gebracht.

Vielen Dank für jegliche Hilfe.

...zur Frage

Der Skin ist im Base64 Format gespeichert und als JSON gepackt :D

Ein teil aus meinem NickSystem:

String props = new String(
Base64.decodeBase64(profile.getProperties().values().iterator().next().getValue()));

JSONObject json = (JSONObject) new JSONParser().parse(props);

if (json.get("textures").toString().equals("{}")) {
profile = GameProfileBuilder.getProfile(profile.getId(), profile.getName(),
"http://textures.minecraft.net/texture/cb3cccd95365c5d85644a536e69b4be58ebfbf16f43cf561786b74da2b8eeb");
}
json.get("textures").toString() //Die Skin-URL als JSON

Die Skin-URL ist "{}" wenn das GameProfile keinen Skin hat. In diesem Fall erstelle ich in meinem Code ein neues GameProfile, mit einem Steve Skin.

Du müsstes theoretisch mal die Skin-URL als JSON in der Konsole ausgeben lassen und kannst dann schauen, wie du an die URL selber kommst.

Wenn ich mich nicht täusche, dann dürfte es so klappen:

json = (JSONObject) new JSONParser().parse(json.get("textures"));

json.get("url").toString(); //Die URL (Hoffentlich xD)

LG Sprax2013

...zur Antwort

Erst ein mal: Cheaten ist traurig und ich hoffe du machst das nicht Online (Auch wenn der Alt etwas anderes vermuten lässt)

Der Hack-Client, den du benutzt verändert das Hauptmenü. Dabei macht er etwas falsch oder Minecraft gibt ihm falsche Infos.

Du kannst versuche eine Kopie deines .minecraft Ordners zu erstellen und den aktuellen zu löschen (Denk an die Kopie)

Installiere Stück für Stück alles wieder dazu. Starte erst das Normale Minecraft und teste es. Dann Optionale, wenn du es nutzt und dann den Hack-Client.

...zur Antwort

Es gibt keinen Befehl, der das rückgängig macht. Die einzige Option ist es alle ArmorStands wieder selber zu setzen oder du spielst ein BackUp auf den Server. Es gibt auch Plugins, die getötete Spieler und Entitys überwachen, damit man ihr Inventar oder sie selber wieder zurückholen kann, im falle des Todes. Aber wenn das Plugin nicht drauf war, als du /killall benutzt hast, dann kann es dir auch nicht mehr helfen (nur für die Zukunft evtl.).

...zur Antwort

Was für eine ComputerCraft Version wird bei Tekkit Classic verwendet? Evtl. ist der Befehl noch nicht enthalten.

Du kannst ja auch den Inhalt der Pastebin-Seite kopieren und dein "eigenes" Programm schreiben in dem du das Kopierte Programm einfach speicherst

...zur Antwort

An die Sitzung mit dem Namen "sitzung1" einen Befehl senden und ausführen (\n für [ENTER]):

screen -S sitzung1 -X stuff $'ls -l\n' 

(http://wiki.ubuntuusers.de/SCREEN#Weitere-Befehle)

Ich habe es nie ausprobiert aber sag mal bescheid ob es geklappt hat oder nicht. Musst halt vorher den Befehl "cd /home/user/mc/" oder so ähnlich ausführen

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