1. Es freut uns dass du in unser Minecraft Forum gefunden hast. Hier kannst du mit über 130.000 Minecraft Fans über Minecraft diskutieren, Fragen stellen und anderen helfen. In diesem Minecraft Forum kannst du auch nach Teammitgliedern, Administratoren, Moderatoren , Supporter oder Sponsoren suchen. Gerne kannst du im Offtopic Bereich unseres Minecraft Forums auch über nicht Minecraft spezifische Themen reden. Wir hoffen dir gefällt es in unserem Minecraft Forum!

Blöcke mit Data setzen?

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

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

  1. HardSoul
    Offline

    HardSoul Ehemaliges Teammitglied Ehem. Teammitglied

    Registriert seit:
    2. August 2012
    Beiträge:
    716
    Geschlecht:
    männlich
    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 ;)
     
  2. HeadiPlays
    Offline

    HeadiPlays Redstoneengineer

    Registriert seit:
    8. Februar 2014
    Beiträge:
    45
    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 ^^
     
Status des Themas:
Es sind keine weiteren Antworten möglich.