Coding mit Java | Java-basierten APIs

  • Ersteller Ersteller ij9F_i0FaF-d9lrDSDDpDbfo
  • Erstellt am Erstellt am
Status
Für weitere Antworten geschlossen.
@lusu007 Mach e.getConnection().disconnect(); weg.
2. Wenn das immer noch nicht geht, probier LoginEvent.

e.setCancelled(true); + e.setCancelReason & co. müssten normalerweise ausreichen.
 
  • Like
Reaktionen: lusu007
hallo :D
ich habe wieder eine Frage.. sorry dass ich etwas nervend sein kann..
bei mir klappt das anti kill aura plugin perfekt, jedoch, wenn ich mit 1.8 joinen will, kommt der npc einfach nicht.
Das Plugin habe ich mit protocollib geschrieben. soweit ich weiß, benutzt das team auch protocollib für kill aura, ich habe keine information ob sie das wirklich nutzen. aber man kann /packet machen für protocollib

meine frage ist es, wie mache ich es auch 1.8 kompatibel? die NPCs spawnen nur in 1.7, nicht in 1.8. manche server haben auch spigot hack & bei denen gehts irgendwie..
weiß einer wie das geht?

danke im voraus. :)
 
hallo :D
ich habe wieder eine Frage.. sorry dass ich etwas nervend sein kann..
bei mir klappt das anti kill aura plugin perfekt, jedoch, wenn ich mit 1.8 joinen will, kommt der npc einfach nicht.
Das Plugin habe ich mit protocollib geschrieben. soweit ich weiß, benutzt das team auch protocollib für kill aura, ich habe keine information ob sie das wirklich nutzen. aber man kann /packet machen für protocollib

meine frage ist es, wie mache ich es auch 1.8 kompatibel? die NPCs spawnen nur in 1.7, nicht in 1.8. manche server haben auch spigot hack & bei denen gehts irgendwie..
weiß einer wie das geht?

danke im voraus. :)
Du musst bevor du den Spieler spawnst das Packet "PacketPlayOutPlayerInfo" mit den entsprechenden Parametern senden. Falls du die Packet Wrapper benutzt: "WrapperPlayServerPlayerInfo".
 
Du musst bevor du den Spieler spawnst das Packet "PacketPlayOutPlayerInfo" mit den entsprechenden Parametern senden. Falls du die Packet Wrapper benutzt: "WrapperPlayServerPlayerInfo".
hey danke für die antwort

habe jedoch ein Problem, vor dem erstellen habe ich folgende methode verwendet:
Code:
    public WrapperPlayServerPlayerInfo bevor(Player p) {
        WrapperPlayServerPlayerInfo packet = new WrapperPlayServerPlayerInfo();
        packet.setOnline(true);
        packet.setPing((short) 0);
        packet.sendPacket(p);
        return packet;
    }
Bevor ich den npc spawne, habe ich diese methode verwendet.
In der Konsole kommt jedoch ein error:
http://hastebin.com/icodizinuk.avrasm

Ich habe von github o.Ä. das kopiert:
https://github.com/aadnk/PacketWrap...acketwrapper/WrapperPlayServerPlayerInfo.java

Es scheint nicht zu funktionieren.. ich habe auch (beim code) packet.setplayername alles versucht.

Wo ist das problem eigentlich? danke im voraus
 
hey danke für die antwort

habe jedoch ein Problem, vor dem erstellen habe ich folgende methode verwendet:
Code:
    public WrapperPlayServerPlayerInfo bevor(Player p) {
        WrapperPlayServerPlayerInfo packet = new WrapperPlayServerPlayerInfo();
        packet.setOnline(true);
        packet.setPing((short) 0);
        packet.sendPacket(p);
        return packet;
    }
Bevor ich den npc spawne, habe ich diese methode verwendet.
In der Konsole kommt jedoch ein error:
http://hastebin.com/icodizinuk.avrasm

Ich habe von github o.Ä. das kopiert:
https://github.com/aadnk/PacketWrap...acketwrapper/WrapperPlayServerPlayerInfo.java

Es scheint nicht zu funktionieren.. ich habe auch (beim code) packet.setplayername alles versucht.

Wo ist das problem eigentlich? danke im voraus
Wieso hast du eine Methode erstellt die das Packet returnt wenn du es innerhalb dieser Methode sendest?

Man abgesehen davon benutzt du die alten Packet Wrapper...
Hier die neueste Version: *click*

Hier wie ich sie verwende: (Bei mir geht es)
PHP:
WrapperPlayServerPlayerInfo fakeEntityInfo = new WrapperPlayServerPlayerInfo();

PlayerInfoData infoData = new PlayerInfoData( new WrappedGameProfile( UUID.fromString( "0-0-0-0-0" ), displayName ), 0, EnumWrappers.NativeGameMode.NOT_SET, WrappedChatComponent.fromText( displayName ) );
fakeEntityInfo.setData( Arrays.asList( new PlayerInfoData[]{ infoData } ) );

fakeEntityInfo.sendPacket( player );

Da nach musst du halt das spawn Packet senden...
 
Hey Leute, es wäre schön wenn ihr mir helfen könntet!
Ich bin grade dabei ein Ban-Plugin für unseren Server zu programmieren und verwende dafür das Ban-Manager Plugin von Lonzbonz als Vorlage. Es ist auch schon so gut wie fertig, aber ich habe nun folgendes Problem:

Hier einmal die Main Klasse:

PHP:
package me.Blackagent_007.blockbreakerBanSystem;


import me.Blackagent_007.blockbreakerBanSystem.MySQL.MySQL;
import me.Blackagent_007.blockbreakerBanSystem.commands.BanCommands;
import me.Blackagent_007.blockbreakerBanSystem.listeners.JoinListener;
import me.Blackagent_007.blockbreakerBanSystem.listeners.PlayerLogin;
import me.Blackagent_007.blockbreakerBanSystem.util.FileManager;
import org.bukkit.Bukkit;
import org.bukkit.plugin.java.JavaPlugin;

public class Main extends JavaPlugin{

    public void onEnable() {
        instance = this;
        registerEvents();
        registerCommands();
        FileManager.setStandardConfig();
        FileManager.setStandardMySQL();
        FileManager.readConfig();
        FileManager.readMySQL();
        MySQL.connect();
        MySQL.createTable();
        Bukkit.getConsoleSender().sendMessage(prefix + "Plugin aktiviert");
    }

    public void onDisable() {
        MySQL.close();
    }

    private void registerEvents() {
        this.getServer().getPluginManager().registerEvents(new JoinListener(), this);
        this.getServer().getPluginManager().registerEvents(new PlayerLogin(this), this);
    }

    private void registerCommands() {
        BanCommands banCMD = new BanCommands(this);
        getCommand("ban").setExecutor(banCMD);
        getCommand("tempban").setExecutor(banCMD);
        getCommand("check").setExecutor(banCMD);
        getCommand("unban").setExecutor(banCMD);
    }

    public String prefix;
    public static Main instance;

    public static Main getInstance() {
        return instance;
    }
}

Die "BanManager" Klasse:

PHP:
package me.Blackagent_007.blockbreakerBanSystem.util;

import me.Blackagent_007.blockbreakerBanSystem.MySQL.MySQL;
import org.bukkit.Bukkit;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

public class BanManager {

    public static void ban(String uuid, String playername, String reason, int seconds) {
        long end = 0;
        if(seconds == -1) {
            end = -1;
        }
        long current = System.currentTimeMillis();
        long millis = seconds*1000;
        end = current + millis;
        MySQL.update("INSERT INTO BannedPlayers (Spielername, UUID, Ende, Grund) VALUES ('"+playername+"','"+uuid+"','"+end+"','"+reason+"')");
        if(Bukkit.getPlayer(playername) != null) {
            Bukkit.getPlayer(playername).kickPlayer("§cDu wurdest vom Server gebannt!\n" +
            "\n" +
            "§3Grund: §e" + getReason(uuid) + "\n" +
            "\n" +
              "§3Verbleibende Zeit: §e" + getRemainingTime(uuid) + "\n" +
            "\n" +
            "§3 Du kannst §c§nkeinen§3 Entbannungsantrag stellen!");
        }
    }

    public static void unban(String uuid) {
        MySQL.update("DELETE FROM BannedPlayers WHERE UUID='"+uuid+"'");
    }

    public static boolean isBanned(String uuid) {
        ResultSet rs = MySQL.getResult("SELECT Ende FROM BannedPlayers WHERE UUID='"+uuid+"'");
        try {
            return rs.next();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return false;
    }

    public static String getReason(String uuid) {
        ResultSet rs = MySQL.getResult("SELECT * FROM BannedPlayers WHERE UUID='"+uuid+"'");
        try {
            while(rs.next()) {
                return rs.getString("Grund");
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return "";
    }

    public static Long getEnd(String uuid) {
        ResultSet rs = MySQL.getResult("SELECT * FROM BannedPlayers WHERE UUID='"+uuid+"'");
        try {
            while(rs.next()) {
                return rs.getLong("Ende");
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return null;
    }

    public static List<String> getBannedPlayers() {
        List<String> list = new ArrayList<String>();
        ResultSet rs = MySQL.getResult("SELECT * FROM BannedPlayers");
        try {
            while(rs.next()) {
                list.add(rs.getString("Spielername"));
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return list;
    }


    public static String getRemainingTime(String uuid) {
        long current = System.currentTimeMillis();
        long end = getEnd(uuid);
        long millis = end - current;

        int seconds = 0;
        int minutes = 0;
        int hours = 0;
        int days = 0;
        int weeks = 0;

        while(millis > 1000) {
            millis -= 1000;
            seconds ++;
        }
        while(seconds > 60) {
            seconds -= 60;
            minutes ++;
        }
        while (minutes > 60) {
            minutes -= 60;
            hours++;
        }
        while(hours > 24) {
            hours -= 24;
            days ++;
        }
        while(days > 7) {
            days -= 7;
            weeks ++;
        }

        return "§e" + weeks + "Woche(n) " + days + " Tage(e) " + hours + " Stunde(n) " + minutes + " Minute(n) " + seconds + " Sekunde(n)";
    }

}

Und die "BanCommands" Klasse:

PHP:
package me.Blackagent_007.blockbreakerBanSystem.commands;

import me.Blackagent_007.blockbreakerBanSystem.Main;
import me.Blackagent_007.blockbreakerBanSystem.util.BanManager;
import me.Blackagent_007.blockbreakerBanSystem.util.BanUnit;
import org.bukkit.Bukkit;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;

import java.util.List;

public class BanCommands implements CommandExecutor{

    private Main plugin;

    public BanCommands(Main plugin) {
        this.plugin = plugin;
    }



    @Override
    public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {

        if (cmd.getName().equalsIgnoreCase("ban")) {
            if(args.length >= 2) {
                String playername = args[0];
                if (BanManager.isBanned(getUUID(playername))) {
                    sender.sendMessage(plugin.prefix + "§cDieser Spieler ist bereits gebannt!");
                    return true;
                }
                String reason = "";
                for(int i = 1; i < args.length; i++) {
                    reason += args[i] + " ";
                }
                BanManager.ban(getUUID(playername), playername, reason, -1);
                sender.sendMessage(plugin.prefix + "§Du hast §e" + playername + " §4PERMANENT §7gebannt!");
                return true;
            }
            sender.sendMessage(plugin.prefix + "§c/ban <Spieler> <Grund>");
            return true;

        }

        if(cmd.getName().equalsIgnoreCase("tempban")) {
            if(args.length >= 4) {
                String playername = args[0];
                if (BanManager.isBanned(getUUID(playername))) {
                    sender.sendMessage(plugin.prefix + "§cDieser Spieler ist bereits gebannt!");
                    return true;
                }
                int value;
                try {
                    value = Integer.valueOf(args[1]);
                } catch(NumberFormatException e) {
                    sender.sendMessage(plugin.prefix + "§c<Zahlenwert> muss eine Zahl sein!");
                    return true;
                }
                String unitString = args[2];

                String reason = "";
                for(int i = 3; i < args.length; i++) {
                    reason += args[i] + " ";
                }
                List<String> unitList = BanUnit.getUnitsAsString();
                if(unitList.contains(unitString.toLowerCase())) {
                    BanUnit unit = BanUnit.getUnit(unitString);
                    int seconds = value * unit.getToSecond();
                    BanManager.ban(getUUID(playername), playername, reason, seconds);
                    sender.sendMessage(plugin.prefix + "§7Du hast §e" + playername + " §7für §c" + value + unit.getName() + " §7gebannt!");
                    return true;
                }
                sender.sendMessage(plugin.prefix + "§cDiese <Einheit> existiert nich!");
                return true;
            }
            sender.sendMessage(plugin.prefix + "§c/tempban <Spieler> <Zahlenwert> <Einheit> <Grund>");
            return true;
        }

    if(cmd.getName().equalsIgnoreCase("check")) {
        if(args.length == 1) {
            if(args [0].equalsIgnoreCase("list")) {
                List<String> list = BanManager.getBannedPlayers();
                if(list.size() == 0) {
                    sender.sendMessage(plugin.prefix + "§cEs sind aktuell keine Spieler gebannt!");
                    return true;
                }
                sender.sendMessage(plugin.prefix + "§7----------§6§1Ban-Liste §7----------");
                for(String allBanned : BanManager.getBannedPlayers()) {
                    sender.sendMessage(plugin.prefix + "§e" + allBanned + " §7(Grund: §r" + BanManager.getReason(getUUID(allBanned)) + "§7)");
                }
                return true;
            }
            String playername = args[0];
            sender.sendMessage(plugin.prefix + "§7----------§6§1Ban-Infos §7----------");
            sender.sendMessage(plugin.prefix + "§eName: §r" + playername);
            sender.sendMessage(plugin.prefix + "§eGebannt: §r" + (BanManager.isBanned(getUUID(playername)) ? "§aJa!" : "§cNein!"));
            if(BanManager.isBanned(getUUID(playername))) {
                sender.sendMessage(plugin.prefix + "§eGrund §r" + BanManager.getReason(getUUID(playername)));
                sender.sendMessage(plugin.prefix + "§eVerbleibende Zeit: §r" + BanManager.getRemainingTime(getUUID(playername)));
            }
            return true;
        }
        sender.sendMessage(plugin.prefix + "§c/check (list) <Spieler>");
        return true;
    }

    if(cmd.getName().equalsIgnoreCase("unban")) {
        if(args.length == 1) {
            String playername = args[0];
            if(BanManager.isBanned(getUUID(playername))) {
                sender.sendMessage(plugin.prefix + "§cDieser Spieler ist nicht gebannt!");
                return true;
            }
            BanManager.unban(getUUID(playername));
            sender.sendMessage(plugin.prefix + "§7Du hast §e" + playername + " §7entbannt!");
            return true;
        }
        sender.sendMessage(plugin.prefix + "§c/unban <Spieler>");
        return true;
    }
    return true;
    }

    @SuppressWarnings("deprecation")
    private String getUUID(String playername) {
        return Bukkit.getOfflinePlayer(playername).getUniqueId().toString();
    }

}

Ich würde mich echt freuen, wenn ihr mir helfen könntet! Vielen Dank im Vorraus :DD

Gruß Blackagent_007
 
Hey Leute, es wäre schön wenn ihr mir helfen könntet!
Ich bin grade dabei ein Ban-Plugin für unseren Server zu programmieren und verwende dafür das Ban-Manager Plugin von Lonzbonz als Vorlage. Es ist auch schon so gut wie fertig, aber ich habe nun folgendes Problem:

Hier einmal die Main Klasse:

PHP:
package me.Blackagent_007.blockbreakerBanSystem;


import me.Blackagent_007.blockbreakerBanSystem.MySQL.MySQL;
import me.Blackagent_007.blockbreakerBanSystem.commands.BanCommands;
import me.Blackagent_007.blockbreakerBanSystem.listeners.JoinListener;
import me.Blackagent_007.blockbreakerBanSystem.listeners.PlayerLogin;
import me.Blackagent_007.blockbreakerBanSystem.util.FileManager;
import org.bukkit.Bukkit;
import org.bukkit.plugin.java.JavaPlugin;

public class Main extends JavaPlugin{

    public void onEnable() {
        instance = this;
        registerEvents();
        registerCommands();
        FileManager.setStandardConfig();
        FileManager.setStandardMySQL();
        FileManager.readConfig();
        FileManager.readMySQL();
        MySQL.connect();
        MySQL.createTable();
        Bukkit.getConsoleSender().sendMessage(prefix + "Plugin aktiviert");
    }

    public void onDisable() {
        MySQL.close();
    }

    private void registerEvents() {
        this.getServer().getPluginManager().registerEvents(new JoinListener(), this);
        this.getServer().getPluginManager().registerEvents(new PlayerLogin(this), this);
    }

    private void registerCommands() {
        BanCommands banCMD = new BanCommands(this);
        getCommand("ban").setExecutor(banCMD);
        getCommand("tempban").setExecutor(banCMD);
        getCommand("check").setExecutor(banCMD);
        getCommand("unban").setExecutor(banCMD);
    }

    public String prefix;
    public static Main instance;

    public static Main getInstance() {
        return instance;
    }
}

Die "BanManager" Klasse:

PHP:
package me.Blackagent_007.blockbreakerBanSystem.util;

import me.Blackagent_007.blockbreakerBanSystem.MySQL.MySQL;
import org.bukkit.Bukkit;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

public class BanManager {

    public static void ban(String uuid, String playername, String reason, int seconds) {
        long end = 0;
        if(seconds == -1) {
            end = -1;
        }
        long current = System.currentTimeMillis();
        long millis = seconds*1000;
        end = current + millis;
        MySQL.update("INSERT INTO BannedPlayers (Spielername, UUID, Ende, Grund) VALUES ('"+playername+"','"+uuid+"','"+end+"','"+reason+"')");
        if(Bukkit.getPlayer(playername) != null) {
            Bukkit.getPlayer(playername).kickPlayer("§cDu wurdest vom Server gebannt!\n" +
            "\n" +
            "§3Grund: §e" + getReason(uuid) + "\n" +
            "\n" +
              "§3Verbleibende Zeit: §e" + getRemainingTime(uuid) + "\n" +
            "\n" +
            "§3 Du kannst §c§nkeinen§3 Entbannungsantrag stellen!");
        }
    }

    public static void unban(String uuid) {
        MySQL.update("DELETE FROM BannedPlayers WHERE UUID='"+uuid+"'");
    }

    public static boolean isBanned(String uuid) {
        ResultSet rs = MySQL.getResult("SELECT Ende FROM BannedPlayers WHERE UUID='"+uuid+"'");
        try {
            return rs.next();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return false;
    }

    public static String getReason(String uuid) {
        ResultSet rs = MySQL.getResult("SELECT * FROM BannedPlayers WHERE UUID='"+uuid+"'");
        try {
            while(rs.next()) {
                return rs.getString("Grund");
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return "";
    }

    public static Long getEnd(String uuid) {
        ResultSet rs = MySQL.getResult("SELECT * FROM BannedPlayers WHERE UUID='"+uuid+"'");
        try {
            while(rs.next()) {
                return rs.getLong("Ende");
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return null;
    }

    public static List<String> getBannedPlayers() {
        List<String> list = new ArrayList<String>();
        ResultSet rs = MySQL.getResult("SELECT * FROM BannedPlayers");
        try {
            while(rs.next()) {
                list.add(rs.getString("Spielername"));
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return list;
    }


    public static String getRemainingTime(String uuid) {
        long current = System.currentTimeMillis();
        long end = getEnd(uuid);
        long millis = end - current;

        int seconds = 0;
        int minutes = 0;
        int hours = 0;
        int days = 0;
        int weeks = 0;

        while(millis > 1000) {
            millis -= 1000;
            seconds ++;
        }
        while(seconds > 60) {
            seconds -= 60;
            minutes ++;
        }
        while (minutes > 60) {
            minutes -= 60;
            hours++;
        }
        while(hours > 24) {
            hours -= 24;
            days ++;
        }
        while(days > 7) {
            days -= 7;
            weeks ++;
        }

        return "§e" + weeks + "Woche(n) " + days + " Tage(e) " + hours + " Stunde(n) " + minutes + " Minute(n) " + seconds + " Sekunde(n)";
    }

}

Und die "BanCommands" Klasse:

PHP:
package me.Blackagent_007.blockbreakerBanSystem.commands;

import me.Blackagent_007.blockbreakerBanSystem.Main;
import me.Blackagent_007.blockbreakerBanSystem.util.BanManager;
import me.Blackagent_007.blockbreakerBanSystem.util.BanUnit;
import org.bukkit.Bukkit;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;

import java.util.List;

public class BanCommands implements CommandExecutor{

    private Main plugin;

    public BanCommands(Main plugin) {
        this.plugin = plugin;
    }



    @Override
    public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {

        if (cmd.getName().equalsIgnoreCase("ban")) {
            if(args.length >= 2) {
                String playername = args[0];
                if (BanManager.isBanned(getUUID(playername))) {
                    sender.sendMessage(plugin.prefix + "§cDieser Spieler ist bereits gebannt!");
                    return true;
                }
                String reason = "";
                for(int i = 1; i < args.length; i++) {
                    reason += args[i] + " ";
                }
                BanManager.ban(getUUID(playername), playername, reason, -1);
                sender.sendMessage(plugin.prefix + "§Du hast §e" + playername + " §4PERMANENT §7gebannt!");
                return true;
            }
            sender.sendMessage(plugin.prefix + "§c/ban <Spieler> <Grund>");
            return true;

        }

        if(cmd.getName().equalsIgnoreCase("tempban")) {
            if(args.length >= 4) {
                String playername = args[0];
                if (BanManager.isBanned(getUUID(playername))) {
                    sender.sendMessage(plugin.prefix + "§cDieser Spieler ist bereits gebannt!");
                    return true;
                }
                int value;
                try {
                    value = Integer.valueOf(args[1]);
                } catch(NumberFormatException e) {
                    sender.sendMessage(plugin.prefix + "§c<Zahlenwert> muss eine Zahl sein!");
                    return true;
                }
                String unitString = args[2];

                String reason = "";
                for(int i = 3; i < args.length; i++) {
                    reason += args[i] + " ";
                }
                List<String> unitList = BanUnit.getUnitsAsString();
                if(unitList.contains(unitString.toLowerCase())) {
                    BanUnit unit = BanUnit.getUnit(unitString);
                    int seconds = value * unit.getToSecond();
                    BanManager.ban(getUUID(playername), playername, reason, seconds);
                    sender.sendMessage(plugin.prefix + "§7Du hast §e" + playername + " §7für §c" + value + unit.getName() + " §7gebannt!");
                    return true;
                }
                sender.sendMessage(plugin.prefix + "§cDiese <Einheit> existiert nich!");
                return true;
            }
            sender.sendMessage(plugin.prefix + "§c/tempban <Spieler> <Zahlenwert> <Einheit> <Grund>");
            return true;
        }

    if(cmd.getName().equalsIgnoreCase("check")) {
        if(args.length == 1) {
            if(args [0].equalsIgnoreCase("list")) {
                List<String> list = BanManager.getBannedPlayers();
                if(list.size() == 0) {
                    sender.sendMessage(plugin.prefix + "§cEs sind aktuell keine Spieler gebannt!");
                    return true;
                }
                sender.sendMessage(plugin.prefix + "§7----------§6§1Ban-Liste §7----------");
                for(String allBanned : BanManager.getBannedPlayers()) {
                    sender.sendMessage(plugin.prefix + "§e" + allBanned + " §7(Grund: §r" + BanManager.getReason(getUUID(allBanned)) + "§7)");
                }
                return true;
            }
            String playername = args[0];
            sender.sendMessage(plugin.prefix + "§7----------§6§1Ban-Infos §7----------");
            sender.sendMessage(plugin.prefix + "§eName: §r" + playername);
            sender.sendMessage(plugin.prefix + "§eGebannt: §r" + (BanManager.isBanned(getUUID(playername)) ? "§aJa!" : "§cNein!"));
            if(BanManager.isBanned(getUUID(playername))) {
                sender.sendMessage(plugin.prefix + "§eGrund §r" + BanManager.getReason(getUUID(playername)));
                sender.sendMessage(plugin.prefix + "§eVerbleibende Zeit: §r" + BanManager.getRemainingTime(getUUID(playername)));
            }
            return true;
        }
        sender.sendMessage(plugin.prefix + "§c/check (list) <Spieler>");
        return true;
    }

    if(cmd.getName().equalsIgnoreCase("unban")) {
        if(args.length == 1) {
            String playername = args[0];
            if(BanManager.isBanned(getUUID(playername))) {
                sender.sendMessage(plugin.prefix + "§cDieser Spieler ist nicht gebannt!");
                return true;
            }
            BanManager.unban(getUUID(playername));
            sender.sendMessage(plugin.prefix + "§7Du hast §e" + playername + " §7entbannt!");
            return true;
        }
        sender.sendMessage(plugin.prefix + "§c/unban <Spieler>");
        return true;
    }
    return true;
    }

    @SuppressWarnings("deprecation")
    private String getUUID(String playername) {
        return Bukkit.getOfflinePlayer(playername).getUniqueId().toString();
    }

}

Ich würde mich echt freuen, wenn ihr mir helfen könntet! Vielen Dank im Vorraus :DD

Gruß Blackagent_007
Welches Problem?
 
Hey Leute, es wäre schön wenn ihr mir helfen könntet!
Ich bin grade dabei ein Ban-Plugin für unseren Server zu programmieren und verwende dafür das Ban-Manager Plugin von Lonzbonz als Vorlage. Es ist auch schon so gut wie fertig, aber ich habe nun folgendes Problem:

Hier einmal die Main Klasse:

PHP:
package me.Blackagent_007.blockbreakerBanSystem;


import me.Blackagent_007.blockbreakerBanSystem.MySQL.MySQL;
import me.Blackagent_007.blockbreakerBanSystem.commands.BanCommands;
import me.Blackagent_007.blockbreakerBanSystem.listeners.JoinListener;
import me.Blackagent_007.blockbreakerBanSystem.listeners.PlayerLogin;
import me.Blackagent_007.blockbreakerBanSystem.util.FileManager;
import org.bukkit.Bukkit;
import org.bukkit.plugin.java.JavaPlugin;

public class Main extends JavaPlugin{

    public void onEnable() {
        instance = this;
        registerEvents();
        registerCommands();
        FileManager.setStandardConfig();
        FileManager.setStandardMySQL();
        FileManager.readConfig();
        FileManager.readMySQL();
        MySQL.connect();
        MySQL.createTable();
        Bukkit.getConsoleSender().sendMessage(prefix + "Plugin aktiviert");
    }

    public void onDisable() {
        MySQL.close();
    }

    private void registerEvents() {
        this.getServer().getPluginManager().registerEvents(new JoinListener(), this);
        this.getServer().getPluginManager().registerEvents(new PlayerLogin(this), this);
    }

    private void registerCommands() {
        BanCommands banCMD = new BanCommands(this);
        getCommand("ban").setExecutor(banCMD);
        getCommand("tempban").setExecutor(banCMD);
        getCommand("check").setExecutor(banCMD);
        getCommand("unban").setExecutor(banCMD);
    }

    public String prefix;
    public static Main instance;

    public static Main getInstance() {
        return instance;
    }
}

Die "BanManager" Klasse:

PHP:
package me.Blackagent_007.blockbreakerBanSystem.util;

import me.Blackagent_007.blockbreakerBanSystem.MySQL.MySQL;
import org.bukkit.Bukkit;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

public class BanManager {

    public static void ban(String uuid, String playername, String reason, int seconds) {
        long end = 0;
        if(seconds == -1) {
            end = -1;
        }
        long current = System.currentTimeMillis();
        long millis = seconds*1000;
        end = current + millis;
        MySQL.update("INSERT INTO BannedPlayers (Spielername, UUID, Ende, Grund) VALUES ('"+playername+"','"+uuid+"','"+end+"','"+reason+"')");
        if(Bukkit.getPlayer(playername) != null) {
            Bukkit.getPlayer(playername).kickPlayer("§cDu wurdest vom Server gebannt!\n" +
            "\n" +
            "§3Grund: §e" + getReason(uuid) + "\n" +
            "\n" +
              "§3Verbleibende Zeit: §e" + getRemainingTime(uuid) + "\n" +
            "\n" +
            "§3 Du kannst §c§nkeinen§3 Entbannungsantrag stellen!");
        }
    }

    public static void unban(String uuid) {
        MySQL.update("DELETE FROM BannedPlayers WHERE UUID='"+uuid+"'");
    }

    public static boolean isBanned(String uuid) {
        ResultSet rs = MySQL.getResult("SELECT Ende FROM BannedPlayers WHERE UUID='"+uuid+"'");
        try {
            return rs.next();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return false;
    }

    public static String getReason(String uuid) {
        ResultSet rs = MySQL.getResult("SELECT * FROM BannedPlayers WHERE UUID='"+uuid+"'");
        try {
            while(rs.next()) {
                return rs.getString("Grund");
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return "";
    }

    public static Long getEnd(String uuid) {
        ResultSet rs = MySQL.getResult("SELECT * FROM BannedPlayers WHERE UUID='"+uuid+"'");
        try {
            while(rs.next()) {
                return rs.getLong("Ende");
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return null;
    }

    public static List<String> getBannedPlayers() {
        List<String> list = new ArrayList<String>();
        ResultSet rs = MySQL.getResult("SELECT * FROM BannedPlayers");
        try {
            while(rs.next()) {
                list.add(rs.getString("Spielername"));
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return list;
    }


    public static String getRemainingTime(String uuid) {
        long current = System.currentTimeMillis();
        long end = getEnd(uuid);
        long millis = end - current;

        int seconds = 0;
        int minutes = 0;
        int hours = 0;
        int days = 0;
        int weeks = 0;

        while(millis > 1000) {
            millis -= 1000;
            seconds ++;
        }
        while(seconds > 60) {
            seconds -= 60;
            minutes ++;
        }
        while (minutes > 60) {
            minutes -= 60;
            hours++;
        }
        while(hours > 24) {
            hours -= 24;
            days ++;
        }
        while(days > 7) {
            days -= 7;
            weeks ++;
        }

        return "§e" + weeks + "Woche(n) " + days + " Tage(e) " + hours + " Stunde(n) " + minutes + " Minute(n) " + seconds + " Sekunde(n)";
    }

}

Und die "BanCommands" Klasse:

PHP:
package me.Blackagent_007.blockbreakerBanSystem.commands;

import me.Blackagent_007.blockbreakerBanSystem.Main;
import me.Blackagent_007.blockbreakerBanSystem.util.BanManager;
import me.Blackagent_007.blockbreakerBanSystem.util.BanUnit;
import org.bukkit.Bukkit;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;

import java.util.List;

public class BanCommands implements CommandExecutor{

    private Main plugin;

    public BanCommands(Main plugin) {
        this.plugin = plugin;
    }



    @Override
    public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {

        if (cmd.getName().equalsIgnoreCase("ban")) {
            if(args.length >= 2) {
                String playername = args[0];
                if (BanManager.isBanned(getUUID(playername))) {
                    sender.sendMessage(plugin.prefix + "§cDieser Spieler ist bereits gebannt!");
                    return true;
                }
                String reason = "";
                for(int i = 1; i < args.length; i++) {
                    reason += args[i] + " ";
                }
                BanManager.ban(getUUID(playername), playername, reason, -1);
                sender.sendMessage(plugin.prefix + "§Du hast §e" + playername + " §4PERMANENT §7gebannt!");
                return true;
            }
            sender.sendMessage(plugin.prefix + "§c/ban <Spieler> <Grund>");
            return true;

        }

        if(cmd.getName().equalsIgnoreCase("tempban")) {
            if(args.length >= 4) {
                String playername = args[0];
                if (BanManager.isBanned(getUUID(playername))) {
                    sender.sendMessage(plugin.prefix + "§cDieser Spieler ist bereits gebannt!");
                    return true;
                }
                int value;
                try {
                    value = Integer.valueOf(args[1]);
                } catch(NumberFormatException e) {
                    sender.sendMessage(plugin.prefix + "§c<Zahlenwert> muss eine Zahl sein!");
                    return true;
                }
                String unitString = args[2];

                String reason = "";
                for(int i = 3; i < args.length; i++) {
                    reason += args[i] + " ";
                }
                List<String> unitList = BanUnit.getUnitsAsString();
                if(unitList.contains(unitString.toLowerCase())) {
                    BanUnit unit = BanUnit.getUnit(unitString);
                    int seconds = value * unit.getToSecond();
                    BanManager.ban(getUUID(playername), playername, reason, seconds);
                    sender.sendMessage(plugin.prefix + "§7Du hast §e" + playername + " §7für §c" + value + unit.getName() + " §7gebannt!");
                    return true;
                }
                sender.sendMessage(plugin.prefix + "§cDiese <Einheit> existiert nich!");
                return true;
            }
            sender.sendMessage(plugin.prefix + "§c/tempban <Spieler> <Zahlenwert> <Einheit> <Grund>");
            return true;
        }

    if(cmd.getName().equalsIgnoreCase("check")) {
        if(args.length == 1) {
            if(args [0].equalsIgnoreCase("list")) {
                List<String> list = BanManager.getBannedPlayers();
                if(list.size() == 0) {
                    sender.sendMessage(plugin.prefix + "§cEs sind aktuell keine Spieler gebannt!");
                    return true;
                }
                sender.sendMessage(plugin.prefix + "§7----------§6§1Ban-Liste §7----------");
                for(String allBanned : BanManager.getBannedPlayers()) {
                    sender.sendMessage(plugin.prefix + "§e" + allBanned + " §7(Grund: §r" + BanManager.getReason(getUUID(allBanned)) + "§7)");
                }
                return true;
            }
            String playername = args[0];
            sender.sendMessage(plugin.prefix + "§7----------§6§1Ban-Infos §7----------");
            sender.sendMessage(plugin.prefix + "§eName: §r" + playername);
            sender.sendMessage(plugin.prefix + "§eGebannt: §r" + (BanManager.isBanned(getUUID(playername)) ? "§aJa!" : "§cNein!"));
            if(BanManager.isBanned(getUUID(playername))) {
                sender.sendMessage(plugin.prefix + "§eGrund §r" + BanManager.getReason(getUUID(playername)));
                sender.sendMessage(plugin.prefix + "§eVerbleibende Zeit: §r" + BanManager.getRemainingTime(getUUID(playername)));
            }
            return true;
        }
        sender.sendMessage(plugin.prefix + "§c/check (list) <Spieler>");
        return true;
    }

    if(cmd.getName().equalsIgnoreCase("unban")) {
        if(args.length == 1) {
            String playername = args[0];
            if(BanManager.isBanned(getUUID(playername))) {
                sender.sendMessage(plugin.prefix + "§cDieser Spieler ist nicht gebannt!");
                return true;
            }
            BanManager.unban(getUUID(playername));
            sender.sendMessage(plugin.prefix + "§7Du hast §e" + playername + " §7entbannt!");
            return true;
        }
        sender.sendMessage(plugin.prefix + "§c/unban <Spieler>");
        return true;
    }
    return true;
    }

    @SuppressWarnings("deprecation")
    private String getUUID(String playername) {
        return Bukkit.getOfflinePlayer(playername).getUniqueId().toString();
    }

}

Ich würde mich echt freuen, wenn ihr mir helfen könntet! Vielen Dank im Vorraus :DD

Gruß Blackagent_007

PHP:
[15:40:04 ERROR]: Error occurred while enabling blockbreakerBanSystem v1.0 (Is i
t up to date?)
java.lang.NullPointerException
        at me.Blackagent_007.blockbreakerBanSystem.Main.registerCommands(Main.ja
va:47) ~[?:?]
        at me.Blackagent_007.blockbreakerBanSystem.Main.onEnable(Main.java:26) ~
[?:?]
        at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:316) ~[s
pigot.jar:git-Spigot-"606148f"]
        at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader
.java:333) [spigot.jar:git-Spigot-"606148f"]
        at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManage
r.java:412) [spigot.jar:git-Spigot-"606148f"]
        at org.bukkit.craftbukkit.v1_8_R1.CraftServer.loadPlugin(CraftServer.jav
a:352) [spigot.jar:git-Spigot-"606148f"]
        at org.bukkit.craftbukkit.v1_8_R1.CraftServer.enablePlugins(CraftServer.
java:313) [spigot.jar:git-Spigot-"606148f"]
        at net.minecraft.server.v1_8_R1.MinecraftServer.q(MinecraftServer.java:4
00) [spigot.jar:git-Spigot-"606148f"]
        at net.minecraft.server.v1_8_R1.MinecraftServer.k(MinecraftServer.java:3
68) [spigot.jar:git-Spigot-"606148f"]
        at net.minecraft.server.v1_8_R1.MinecraftServer.a(MinecraftServer.java:3
23) [spigot.jar:git-Spigot-"606148f"]
        at net.minecraft.server.v1_8_R1.DedicatedServer.init(DedicatedServer.jav
a:211) [spigot.jar:git-Spigot-"606148f"]
        at net.minecraft.server.v1_8_R1.MinecraftServer.run(MinecraftServer.java
:496) [spigot.jar:git-Spigot-"606148f"]
        at java.lang.Thread.run(Unknown Source) [?:1.8.0_25]

Tut mir leid xD die Fehlermeldung hab ich voll vergessen :D
 
  • Like
Reaktionen: TebosBrime
PHP:
[15:40:04 ERROR]: Error occurred while enabling blockbreakerBanSystem v1.0 (Is i
t up to date?)
java.lang.NullPointerException
        at me.Blackagent_007.blockbreakerBanSystem.Main.registerCommands(Main.ja
va:47) ~[?:?]
        at me.Blackagent_007.blockbreakerBanSystem.Main.onEnable(Main.java:26) ~
[?:?]
        at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:316) ~[s
pigot.jar:git-Spigot-"606148f"]
        at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader
.java:333) [spigot.jar:git-Spigot-"606148f"]
        at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManage
r.java:412) [spigot.jar:git-Spigot-"606148f"]
        at org.bukkit.craftbukkit.v1_8_R1.CraftServer.loadPlugin(CraftServer.jav
a:352) [spigot.jar:git-Spigot-"606148f"]
        at org.bukkit.craftbukkit.v1_8_R1.CraftServer.enablePlugins(CraftServer.
java:313) [spigot.jar:git-Spigot-"606148f"]
        at net.minecraft.server.v1_8_R1.MinecraftServer.q(MinecraftServer.java:4
00) [spigot.jar:git-Spigot-"606148f"]
        at net.minecraft.server.v1_8_R1.MinecraftServer.k(MinecraftServer.java:3
68) [spigot.jar:git-Spigot-"606148f"]
        at net.minecraft.server.v1_8_R1.MinecraftServer.a(MinecraftServer.java:3
23) [spigot.jar:git-Spigot-"606148f"]
        at net.minecraft.server.v1_8_R1.DedicatedServer.init(DedicatedServer.jav
a:211) [spigot.jar:git-Spigot-"606148f"]
        at net.minecraft.server.v1_8_R1.MinecraftServer.run(MinecraftServer.java
:496) [spigot.jar:git-Spigot-"606148f"]
        at java.lang.Thread.run(Unknown Source) [?:1.8.0_25]

Tut mir leid xD die Fehlermeldung hab ich voll vergessen :D
Werde ich mir Zuhause am PC anschauen.
 
  • Like
Reaktionen: Blackagent
Wieso hast du eine Methode erstellt die das Packet returnt wenn du es innerhalb dieser Methode sendest?

Man abgesehen davon benutzt du die alten Packet Wrapper...
Hier die neueste Version: *click*

Hier wie ich sie verwende: (Bei mir geht es)
PHP:
WrapperPlayServerPlayerInfo fakeEntityInfo = new WrapperPlayServerPlayerInfo();

PlayerInfoData infoData = new PlayerInfoData( new WrappedGameProfile( UUID.fromString( "0-0-0-0-0" ), displayName ), 0, EnumWrappers.NativeGameMode.NOT_SET, WrappedChatComponent.fromText( displayName ) );
fakeEntityInfo.setData( Arrays.asList( new PlayerInfoData[]{ infoData } ) );

fakeEntityInfo.sendPacket( player );

Da nach musst du halt das spawn Packet senden...
Das Problem ist, dass das nur auf protocollib 1.8 geht oder? bei mir gehts nicht.
ich will spigot 1.7 - 1.8

trotzdem danke für deine hilfe
 
Das Problem ist, dass das nur auf protocollib 1.8 geht oder? bei mir gehts nicht.
ich will spigot 1.7 - 1.8

trotzdem danke für deine hilfe
Einer eine idee?

Problem:
hey danke für die antwort

habe jedoch ein Problem, vor dem erstellen habe ich folgende methode verwendet:
Code:
public WrapperPlayServerPlayerInfo bevor(Player p) {
WrapperPlayServerPlayerInfo packet = new WrapperPlayServerPlayerInfo();
packet.setOnline(true);
packet.setPing((short) 0);
packet.sendPacket(p);
return packet;
}
Bevor ich den npc spawne, habe ich diese methode verwendet.
In der Konsole kommt jedoch ein error:
http://hastebin.com/icodizinuk.avrasm

Ich habe von github o.Ä. das kopiert:
https://github.com/aadnk/PacketWrap...acketwrapper/WrapperPlayServerPlayerInfo.java

Es scheint nicht zu funktionieren.. ich habe auch (beim code) packet.setplayername alles versucht.

Wo ist das problem eigentlich? danke im voraus

/ * kopiert aus der letzten seite * /

wie mache ich diese 1.7 & 1.8? also dass der npc auch auf 1.8 spawnt?
weiß einer bitte, wie das geht?
danke im voraus!
 
Hallo ich hab eine Frage die für euch Profis glaub ich ganz einfach ist :)
Ich programiere/ schaue Tutorials seit 2 Tagen und hab auch schon selber rumgespeitl nun die Frage
Wieso ist diese } Rot unterstrichen? Wenn ich sie lösche werden 2 weitere darüber rot angestrichen und wenn ich eine Neue Klammer setzte kommen auch Fehlermeldungen!
MLOi0WG.png

Ich hoffe mir kann wer helfen :D Thx
 
Einer eine idee?

Problem:
hey danke für die antwort

habe jedoch ein Problem, vor dem erstellen habe ich folgende methode verwendet:
Code:
public WrapperPlayServerPlayerInfo bevor(Player p) {
WrapperPlayServerPlayerInfo packet = new WrapperPlayServerPlayerInfo();
packet.setOnline(true);
packet.setPing((short) 0);
packet.sendPacket(p);
return packet;
}
Bevor ich den npc spawne, habe ich diese methode verwendet.
In der Konsole kommt jedoch ein error:
http://hastebin.com/icodizinuk.avrasm

Ich habe von github o.Ä. das kopiert:
https://github.com/aadnk/PacketWrap...acketwrapper/WrapperPlayServerPlayerInfo.java

Es scheint nicht zu funktionieren.. ich habe auch (beim code) packet.setplayername alles versucht.

Wo ist das problem eigentlich? danke im voraus

/ * kopiert aus der letzten seite * /

wie mache ich diese 1.7 & 1.8? also dass der npc auch auf 1.8 spawnt?
weiß einer bitte, wie das geht?
danke im voraus!

Hmm. Ich befasse mich zwar nicht mit Bukkit, aber dein Error ist eine IndexOutOfBoundsException. Das heißt, wenn z.B. du ein Array hast mit der Länge 3 aber dann irgendwo versuchst auf Stelle 4 im Array zuzugreifen, dann kommt dieser Fehler. Also z.B. String[] strings = new Strings[5]; Fehler kommt dann von: strings.get[6];
Ich hoffe, ich konnte dir damit irgendwie weiterhelfen.
 
Hallo ich hab eine Frage die für euch Profis glaub ich ganz einfach ist :)
Ich programiere/ schaue Tutorials seit 2 Tagen und hab auch schon selber rumgespeitl nun die Frage
Wieso ist diese } Rot unterstrichen? Wenn ich sie lösche werden 2 weitere darüber rot angestrichen und wenn ich eine Neue Klammer setzte kommen auch Fehlermeldungen!
MLOi0WG.png

Ich hoffe mir kann wer helfen :D Thx
Ugh..
Schau bei cmd.getName().equalsIgnoreCase("info")) {
du hast keine geschleifte Klammer zum Beenden der "Abfrage".
Mach mal unter return true; ein }
 
  • Like
Reaktionen: Lyrous
Hallo ich hab eine Frage die für euch Profis glaub ich ganz einfach ist :)
Ich programiere/ schaue Tutorials seit 2 Tagen und hab auch schon selber rumgespeitl nun die Frage
Wieso ist diese } Rot unterstrichen? Wenn ich sie lösche werden 2 weitere darüber rot angestrichen und wenn ich eine Neue Klammer setzte kommen auch Fehlermeldungen!
MLOi0WG.png

Ich hoffe mir kann wer helfen :D Thx
Fahr mit dem Mauszeiger über das rote x am rand und schreib was da steht.
EDIT: Ich glaub ich weis wo der Fehler liegt, du hast nach return true; wahrscheinlich eine Klammer vergessen, überprüf das mal.
 
  • Like
Reaktionen: Lyrous
Hallo da ich derzeit probiere ein anticheat plugin zu schreiben will ich wissen wie groß die größte range ist die man haben kann meine größte war 3.8745771252993095 aber da ich nicht weiß ob das die max range ist frage ich einfach
 
Ugh..
Schau bei cmd.getName().equalsIgnoreCase("info")) {
du hast keine geschleifte Klammer zum Beenden der "Abfrage".
Mach mal unter return true; ein }

Fahr mit dem Mauszeiger über das rote x am rand und schreib was da steht.
EDIT: Ich glaub ich weis wo der Fehler liegt, du hast nach return true; wahrscheinlich eine Klammer vergessen, überprüf das mal.

Danke hat geklappt :)
 
  • Like
Reaktionen: iGamePlayHD
Hallo ich hab eine Frage die für euch Profis glaub ich ganz einfach ist :)
Ich programiere/ schaue Tutorials seit 2 Tagen und hab auch schon selber rumgespeitl nun die Frage
Wieso ist diese } Rot unterstrichen? Wenn ich sie lösche werden 2 weitere darüber rot angestrichen und wenn ich eine Neue Klammer setzte kommen auch Fehlermeldungen!
MLOi0WG.png

Ich hoffe mir kann wer helfen :D Thx
Na, lernt da jemamd mit lonzbonz programmieren?
 
  • Like
Reaktionen: v_f_1
Status
Für weitere Antworten geschlossen.

Soziale Medien

  • X
  • TikTok

Über uns

  • GommeHD.net ist einer der größten Minecraft-Server der Welt. Dir gefällt unser Server? Dann unterstütze uns durch einen Kauf im Shop!
  • Shop