Minecraft Spigot 1.8 Aufgabe um Uhrzeit ausführen?

1 Antwort

Du kannst nicht getHours() mit einem String mit == vergleichen !

Für Strings solltest du immer mit einer Equals-Methode herangehen.

danke, habe aber mittlerweile das Problem gelöst:

Ich speichere die Stunde und minute in eine config, und hole dann den Int( int h = getConfig...) aus der Config (sonst hat er sich wegen " String args " beschwert weil ich die args nicht als int festlegen konnte, dann  frage ich mit c.get(CALENDAR.HOUR_OF_DAY) (selbes für minute) die stunde und minute ab und wenn mein int aus der config dann == ist shutdown, naja nicht die saubere Lösung aber es geht. Danke für deine Hilfe nochmal.

0

Wie programmiere ich ein unnick?

public class CommandNick implements Listener, CommandExecutor{


private Field nameField;
static String prefix = "";
boolean Premium = false;
boolean Vip = false;
boolean Ultra = false;
private Main plugin;


public CommandNick(Main main){
    this.plugin = main;
}

@Override
public boolean onCommand(CommandSender s, Command cmd, String label, String[] args){
    nameField = getField(GameProfile.class, "name");
    Field altName = getField(GameProfile.class, "name");
        if(s instanceof Player)
        {
            Player p = (Player) s;
            CraftPlayer cp = (CraftPlayer)p;
            if(args.length == 0){
                p.sendMessage("/nick <name> <rank>");
            }else if(args.length == 1 || args.length == 2){
                MySqlNick.nick(p.getUniqueId(), args[0]);
                PermissionUser user = PermissionsEx.getUser(p);
                String[] permissions = user.getGroupsNames();
                String name = args[0];
                if(args.length == 2){
                    String Rank = args[1];
                    if(p.hasPermission("nick.owner")){
                        Premium = true;
                        Vip = true;
                        Ultra = true;
                    }else if(p.hasPermission("nick.ultra")){
                        Premium = true;
                        Vip = true;
                        Ultra = true;
                    }else if(p.hasPermission("nick.vip")){
                        Premium = true;
                        Vip = true;
                    }else if(p.hasPermission("nick.premium")){
                        Premium = true;
                    }
                    
                
                
                
                    if(Rank.equalsIgnoreCase("Premium") && Premium == true){
                        prefix = "§ePremium: ";
                    }else if(Rank.equalsIgnoreCase("Vip") && Vip == true){
                        prefix = "§5VIP: ";
                    }else if(Rank.equalsIgnoreCase("Ultra") && Ultra == true){
                        prefix = "§1Ultra: ";
                    }else{ 
                        prefix = "Spieler: ";
                    }
                }else{
                    prefix = "Spieler: ";
                }
                try {
                    nameField.set(cp.getProfile(), prefix + ""+name);
                } catch (IllegalArgumentException | IllegalAccessException e) {
                    e.printStackTrace();
                }
                
                PacketPlayOutEntityDestroy destroy = new PacketPlayOutEntityDestroy(cp.getEntityId());
                sendPacket(destroy);
                removeFromeTab(cp);
                
                new BukkitRunnable() {
                    
                    @Override
                    public void run() {
                        addToTab(cp);
                        PacketPlayOutNamedEntitySpawn spawn = new PacketPlayOutNamedEntitySpawn(cp.getHandle());
                        for(Player pl : Bukkit.getOnlinePlayers()){
                            if(!pl.equals(p)){
                                ((CraftPlayer)pl).getHandle().playerConnection.sendPacket(spawn);
                            }
                        }
                    }
                }.runTaskLater(this.plugin, 5);
                p.sendMessage(Main.prefix + "Du bist nun als " + MySqlNick.getNickname(p.getUniqueId()) + " mit dem Prefix " + prefix);
            }
        }
    
    return false;
}
public static void removeFromeTab(CraftPlayer cp){
    PacketPlayOutPlayerInfo packet = new PacketPlayOutPlayerInfo(EnumPlayerInfoAction.REMOVE_PLAYER, cp.getHandle());
    sendPacket(packet);
    }
public static void addToTab(CraftPlayer cp){
    PacketPlayOutPlayerInfo packet = new PacketPlayOutPlayerInfo(EnumPlayerInfoAction.ADD_PLAYER, cp.getHandle());
    sendPacket(packet);
    }
public static void sendPacket(Packet packet){
    for(Player all : Bukkit.getOnlinePlayers()){
        ((CraftPlayer)all).getHandle().playerConnection.sendPacket(packet);
    }
}

public static Field getField(Class clazz, String name){
    try {
        Field field = clazz.getDeclaredField(name);
        field.setAccessible(true);
        return field;
    } catch (NoSuchFieldException | SecurityException e) {
        return null;
    } 
        

}

}

Mein Nick Plugin

...zur Frage

Minecraft spigot: Craftplayer-String zu Player umwandeln?

Ich wollte ein Ban Plugin machen und stehe jetzt mit dem Problem da, dass ich einen String habe, der: CraftPlayer{name=MaxMustermann} heißt. Nun möchte ich diesen String in einen Spieler umwandeln oder einen anderen Spieler also z.b Tom in einen String: CraftPlayer{name=Tom} umwandeln, so dass ich beide in einer if-schleife vergleichen kann.

...zur Frage

Ist dieser Quelltext korrekt?

public class Main.java {

  public static void main (String[] args) {

String output ;

for (int i=7; i<=4263; i++) {

  if (i%3==0 && i%7==0) {

    output="FooBar";

  }

  else if (i%3==0) {

    output="Foo";

  }

  else if (i%7==0) {

    output="bar" ;

  }

  else {

    output= Integer.toString (i);

  }

  System.out.println (output);

}

  }

}

...zur Frage

In for schleife werden Spieler immer mehr?

Hallo. Ich habe eine Frage. Ich Programmiere Java Minecraft Plugins. Ich habe in einem Scheduler der, jede Sekunde ausgeführt wird, eine for schleife, in der alle Spieler in all abgespeichert werden. Jedoch ist es so, dass die Funktion (gekennzeichnet mit //a) mehrmals ausgeführt wird, je mehr Spieler auf dem Server waren. Kann man das Irgendwie verhindern?

Hier ein Video um zu erläutern wie ich das Meine; https://youtu.be/-_26qo3DTJ4

Code:

public void onKick(Player p) {
    if(!Bukkit.getScheduler().isCurrentlyRunning(sched)) {
        sched = Bukkit.getScheduler().scheduleSyncRepeatingTask(main, new Runnable() {
            
            @Override
            public void run() {
                
                if(Bukkit.getOnlinePlayers().size() == 0) {
                    Bukkit.getScheduler().cancelTask(sched);
                    return;
                }
                
                long jetzt = System.currentTimeMillis();
                
                for(Player all : Bukkit.getOnlinePlayers()) {
                    if(zeit.containsKey(all.getName())) {
                        int rest = (int) ((zeit.get(all.getName()) + (1*1000*60)) - jetzt);
                        if(rest/1000 == 30) {
                            MSG(all.getName(), 30); //a
                        }else if(rest/1000 == 20) {
                            MSG(all.getName(), 20); //a
                        }else if(rest/1000 == 10) {
                            MSG(all.getName(), 10); //a
                        }else if(rest/1000 == 5) {
                            MSG(all.getName(), 5); //a
                        }else if(rest/1000 == 4) {
                            MSG(all.getName(), 4); //a
                        }else if(rest/1000 == 3) {
                            MSG(all.getName(), 3); //a
                        }else if(rest/1000 == 2) {
                            MSG(all.getName(), 2); //a
                        }else if(rest/1000 == 1) {
                            MSG(all.getName(), 1); //a
                        }else if(rest/1000 <= 0) { //&lt;= bedeutet kleiner gleich
                            all.kickPlayer("§cDu wurdest gekickt, da deine Spielzeit abgelaufen ist!");
                            zeit.remove(all.getName());
                            if(Bukkit.getOnlinePlayers().size() == 0) {
                                Bukkit.getScheduler().cancelTask(sched);
                            }
                        }
                    }
                }
            }
        }, 0, 20);
    }
}

 //a
public void MSG(String name, int i) {
    if(main.getConfig().getBoolean("KickCountdown."+name)){
        Bukkit.broadcastMessage("§b"+name+ " §7wird in §b"+i+" §7Sekunden gekickt!");
        main.getConfig().set("KickCountdown."+name, false);
        main.saveConfig();
        Bukkit.getScheduler().runTaskLater(main, new Runnable() {
            
            @Override
            public void run() {
                main.getConfig().set("KickCountdown."+name, true);
                main.saveConfig();
            }
        }, 19);
    }
}
...zur Frage

"Cannot convert boolean to string" - Wie kann ich diesen Fehler beheben?

import java.util.Scanner;
import java.util.Random;

public class Ratespiel {
  public static void main(String[] args) {
    Scanner scannerVariable = new Scanner(System.in);
    Random var1 = new Random();
    String read;
    int zahl1 = var1.nextInt(100);
    read = String.valueOf(zahl1);
    read = String.valueOf(var1);
    
    System.out.println("Ich habe mir eine Zahl von 0 bist 100 ausgedacht! Errate sie! ");
    read = scannerVariable.nextLine();

    if (read.equals(var1)) {
      System.out.println("Super du hast es gschafft die Zahl lautete: " + var1);
    }
    else if (read.equals(<var1)) {
      System.out.println("Die Zahl ist größer");
    }
    else if (read > var1) {
      System.out.println("Die Zahl ist niedriger");
    }

    scannerVariable.close();
  }
}
...zur Frage

Import bei "Throw new RuntimeException"?

public class RuntimeException {

public static void main(String[] args) {

int n = 5;

if (n==5) {

throw new RuntimeException();

}

else {

System.out.println("richtig");

...zur Frage

Was möchtest Du wissen?