ServerPlugin Config Übernahme Fehler

Dieses Thema im Forum "Programmierung" wurde erstellt von MrPyro13, 24. August 2014.

  1. MrPyro13
    Offline

    MrPyro13

    Registriert seit:
    29. April 2013
    Beiträge:
    829
    Minecraft:
    MrPyro13
    Hallo,

    in dem folgenden Code werden folgende Stellen immer rot markiert:

    Code (Text):
    1.  
    2. package de.mrpyro13.ImpComs;
    3.  
    4. import org.bukkit.Bukkit;
    5. import org.bukkit.command.Command;
    6. import org.bukkit.command.CommandExecutor;
    7. import org.bukkit.command.CommandSender;
    8.  
    9. public class iCountdown_Command implements CommandExecutor {
    10.  
    11.     private Main inst;
    12.  
    13.     public iCountdown_Command(Main plugin){
    14.         this.inst = plugin;
    15.     }
    16.  
    17.     @Override
    18.     public boolean onCommand(final CommandSender sender, Command cmd, String label, String[] args) {
    19.         //SCRIPT ANFANG
    20.      
    21.         String countdown_start_message = inst.getConfig().getString("i-Countdown.countdown_start_message");
    22.         sender.sendMessage(countdown_start_message);
    23.         Bukkit.getScheduler().scheduleSyncRepeatingTask(inst, new Runnable() {
    24.             int high = 11;
    25.             @Override
    26.             public void run() {
    27.                 if(high != 1) {
    28.                     high--;
    29.                     String countdown_broadcast_message = inst.getConfig().getString("i-Countdown.countdown_broadcast_message");
    30.                     countdown_broadcast_message = countdown_broadcast_message.replace("{Countdown}", high);
    31.                     sender.sendMessage(countdown_broadcast_message);
    32.                 } else {
    33.                     String countdown_stop_message = inst.getConfig().getString("i-Countdown.countdown_stop_message");
    34.                     sender.sendMessage(countdown_stop_message);
    35.                     Bukkit.getScheduler().cancelAllTasks();
    36.                 }
    37.             }
    38.         }, 0, 20);
    39.      
    40.         //SCRIPT ENDE
    41.         return true;
    42.     }
    43.  
    44. }
    45.  
    Mein Frage:
    Wie kann ich Variablen aus der Config eine Variable aus dem Code zuweisen? Oder anders formuliert: Wie bekomme ich den Code fehlerfrei
     
    #1
  2. combo
    Offline

    combo

    Registriert seit:
    16. Juli 2012
    Beiträge:
    160
    Minecraft:
    combo5
    Was wird denn als rot markiert das ist aus deinem Beitrag nicht zu entnehmen!
     
    #2
  3. MrPyro13
    Offline

    MrPyro13

    Registriert seit:
    29. April 2013
    Beiträge:
    829
    Minecraft:
    MrPyro13
    Komisch... Ich kann es im Code nicht rot markieren... Naja dieses Stelle hier:

     
    #3
  4. MiCrJonas
    Offline

    MiCrJonas

    Registriert seit:
    29. Oktober 2012
    Beiträge:
    1.069
    Du musst die Variable "high" nach "public void run() {" deklarieren:
    Code (Text):
    1.  
    2. @Override
    3. public void run() {
    4.   int high = 11; // <--
    5.   if(high != 1) {
    6.  
     
    #4
  5. MiCrJonas
    Offline

    MiCrJonas

    Registriert seit:
    29. Oktober 2012
    Beiträge:
    1.069
    Die Methode replace() braucht als Argumente 2 Strings. high ist aber kein String. Um high in einen String umzuwandeln, kannst du "String.valueOf(high)" benutzen. Also
    Code (Text):
    1. countdown_broadcast_message.replace("{Countdown}", String.valueOf(high));
     
    #5
    MrPyro13 gefällt das.
  6. MrPyro13
    Offline

    MrPyro13

    Registriert seit:
    29. April 2013
    Beiträge:
    829
    Minecraft:
    MrPyro13
    Ok, dass die MEthode replace() als Argumente 2 Strings braucht habe ich nicht gewusst.
    Jetzt ist es verständlich und funktioniert! DANKESCHÖN :D

    //Kann geschlossen werden
     
    #6