Blöcke mit Data setzen?

Dieses Thema im Forum "Programmierung" wurde erstellt von Basti07711, 15. August 2014.

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. Basti07711
    Offline

    Basti07711 Ehem. Teammitglied

    Registriert seit:
    2. August 2012
    Beiträge:
    714
    Ort:
    Hinter dir
    Minecraft:
    Basti07711
    Hi leute,
    ich hätte eine Frage. Wie setze ich Blöcke, die eine Data haben, wie z.B. bunte Wolle? Ich verzweifel an diesem Problem...
    Das ist bisher mein Code:
    Code (Text):
    1.     File file = new File("plugins/BlockRegen", "Saves.yml");
    2.     FileConfiguration saves = YamlConfiguration.loadConfiguration(file);
    3.    
    4.     @EventHandler
    5.     public void onBlockPlace(BlockPlaceEvent e){
    6.         if(e.getPlayer() instanceof Player){
    7.             String location= e.getBlock().getLocation().getWorld().getName() + "," + e.getBlock().getLocation().getX() + "," + e.getBlock().getLocation().getY() + "," + e.getBlock().getLocation().getZ();
    8.            
    9.             if(saves.getStringList("Saves").contains(location)){
    10.             }else{
    11.                 List<String> list = saves.getStringList("Saves");
    12.                
    13.                 list.add(location);
    14.                
    15.                 saves.set("Saves", list);
    16.                
    17.                 try {
    18.                     saves.save(file);
    19.                 } catch (IOException e1) {
    20.                     e1.printStackTrace();
    21.                 }
    22.             }
    23.         }
    24.     }
    25.    
    26.     @EventHandler
    27.     public void onBlockBreak(final BlockBreakEvent e){
    28.         if(e.getPlayer() instanceof Player){
    29.             String location= e.getBlock().getLocation().getWorld().getName() + "," + e.getBlock().getLocation().getX() + "," + e.getBlock().getLocation().getY() + "," + e.getBlock().getLocation().getZ();
    30.             if(saves.getStringList("Saves").contains(location)){
    31.                 List<String> list = saves.getStringList("Saves");
    32.                
    33.                 list.remove(location);
    34.                
    35.                 saves.set("Saves", list);
    36.                
    37.                 try {
    38.                     saves.save(file);
    39.                 } catch (IOException e1) {
    40.                     e1.printStackTrace();
    41.                 }
    42.                
    43.             }else{
    44.                 final Location loc = e.getBlock().getLocation();
    45.                 final Material m = e.getBlock().getType();
    46.                
    47.                
    48.                 Bukkit.getServer().getScheduler().runTaskLater(Bukkit.getServer().getPluginManager().getPlugin("BlockRegen"), new Runnable() {
    49.                     public void run(){
    50.                         e.getPlayer().getLocation().getWorld().getBlockAt(loc).setType(m);
    51.                     }
    52.                 }, 600);
    53.             }
    54.         }
    55.     }
    56.  
    57. }
    Kann mir jemand sagen wie ich das mache? Ich bedanke mich schonmal im voraus ;)
     
    #1
  2. HeadiPlays
    Offline

    HeadiPlays

    Registriert seit:
    8. Februar 2014
    Beiträge:
    45
    Ort:
    Bayern
    Minecraft:
    HeadShotNoob
    Bei sowas musst du mit bytes arbeiten, Beispiel:
    Code (Text):
    1. Block b = p.getLocation().getBlock();
    2.         b.setType(Material.WOOL);
    3.         b.setData((byte)12);
    4.        
    Hier sollte zum Beispiel eine Farbige wolle rauskommen, habe es nicht versucht, aber nach diesem Schema funktioniert es ^^
     
    #2
Status des Themas:
Es sind keine weiteren Antworten möglich.