Programmieren – die besten Beiträge

Wieso bekommt die Variabel einen anderen Wert?

Wenn ich den C# Code ausführe wird der Wert der Variabel tief auf eingabe+48 gesetzt.

Wie kann ich das verhindern?

private static void tri()
        {
            Console.Write("Bitte geben sie die breite an: ");
            int tief = Console.Read();
            Console.WriteLine(tief);
            int tiefe = tief + 2;
            Console.WriteLine(tiefe +" "+ tief);
            StringBuilder dreieck = new StringBuilder(string.Empty);
            char[] form = new char[tiefe];
            for (int i = 0; i < tiefe; i++)
            {
                form[i] = ' ';
            }
            for (int it = 0; it <= tiefe/2-1; it++)
            {
                    try
                    {
                        form[(tiefe / 2 + 1) - it] = '#';
                        form[(tiefe / 2 + 1) + it] = '#';
                    }
                    catch
                    {
                        //abbrechen
                    }
                  dreieck.AppendFormat(new String(form)+ "\n");
              }
              Console.WriteLine(dreieck);
        }
Bild zum Beitrag
Programm, programmieren, C Sharp, Informatik, Visual Studio

Wie genau funktionieren Load- und Save-Methoden in Java?

Ich habe folgende Klassen gegeben:

class Person {
  private String firstname;

  private String lastname;

  private String sortname;

  public Person() {
  }

  public Person(String firstname, String lastname) {
    this.firstname = firstname;
    this.lastname = lastname;
    updateSortname();
  }

  public String getFirstname() {
    return firstname;
  }

  public void setFirstname(String firstname) {
    this.firstname = firstname;
    updateSortname();
  }

  public String getLastname() {
    return lastname;
  }

  public void setLastname(String lastname) {
    this.lastname = lastname;
    updateSortname();
  }

  public String getSortname() {
    return sortname;
  }

  public void updateSortname() {
    sortname = lastname + firstname;
  }

  @Override
  public String toString() {
    return firstname + " " + lastname + " (" + sortname + ")";
  }

  public static List<Person> load(String filename) throws IOException {
    return null;
  }

  public static Person load(DataInputStream in) throws IOException {
    return null;
  }

  public static void save(String filename, List<Person> list) throws IOException {
  }

  public static void save(DataOutputStream out, Person person) throws IOException {
  }

  public static List<Person> unserialize(String filename) throws IOException, ClassNotFoundException {
    return null;
  }

  public static void serialize(String filename, List<Person> persons) throws IOException {
  }
}

public class PersonTest {
  public static void main(String[] args) throws IOException, ClassNotFoundException {
    List<Person> persons = new ArrayList<>();
    persons.add(new Person("Willy", "Wonka"));
    persons.add(new Person("Charlie", "Bucket"));
    persons.add(new Person("Grandpa", "Joe"));
    System.out.println(persons);

    Person.save("persons.sav", persons);
    persons = Person.load("persons.sav");
    System.out.println(persons);

    Person.serialize("persons.ser", persons);
    persons = Person.unserialize("persons.ser");
    System.out.println(persons);
  }
}

Mein Problem:

Ich soll für dieses Programm die Methoden load, save, unserialize und serialize definieren. Ich habe bisher nur Beispiele dazu gesehen, mit einzelnen Klassenobjekten, wie z.B. einer Klasse Domino. Wie man dabei mit Arrays arbeitet, ist mir nicht klar und ich würde mich freuen, wenn mir jemand das Thema I/O genauer erklären könnte.

programmieren, Java

Minecraft Plugin programmieren Item verschieben oder droppen verbieten?

Minecraft Plugin programmieren Item verschieben oder droppen verbieten? Dies ist mein Sourcecode:
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;

public class RankUpCommand implements CommandExecutor {

@Override
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
    Player p = (Player) sender;
    if(p.hasPermission("rankup.open")) {
        if((sender instanceof Player)) {
            if(args.length == 0) {
                Inventory inventory = Bukkit.createInventory(null, 9*3, "§6§lRank-Up");
                p.openInventory(inventory);
                p.sendMessage("§7Du hast das Rank-Up Menü geöffnet!");
                
                ItemStack diamond = new ItemStack(Material.DIAMOND);
                ItemMeta itemMeta = diamond.getItemMeta();
                itemMeta.setDisplayName("§b§lDiamond Rang");
                diamond.setItemMeta(itemMeta);


                inventory.setItem(11, diamond);
                
                ItemStack ultra = new ItemStack(Material.BEACON);
                ItemMeta ItemMeta = ultra.getItemMeta();
                ItemMeta.setDisplayName("§b§lUltra Rang");
                ultra.setItemMeta(ItemMeta);
                
                inventory.setItem(13, ultra);
                
                ItemStack supreme = new ItemStack(Material.REDSTONE_BLOCK);
                ItemMeta iTemMeta = supreme.getItemMeta();
                iTemMeta.setDisplayName("§4§lSupreme Rang");
                supreme.setItemMeta(iTemMeta);
                
                inventory.setItem(15, supreme);
                
                ItemStack glass = new ItemStack(Material.STAINED_GLASS_PANE);
                ItemMeta itemmeta = glass.getItemMeta();
                itemmeta.setDisplayName("");
                supreme.setItemMeta(itemmeta);
                
                inventory.setItem(0, glass);
                inventory.setItem(1, glass);
                inventory.setItem(2, glass);
                inventory.setItem(3, glass);
                inventory.setItem(4, glass);
                inventory.setItem(5, glass);
                inventory.setItem(6, glass);
                inventory.setItem(7, glass);
                inventory.setItem(8, glass);
                inventory.setItem(9, glass);
                inventory.setItem(10, glass);
                inventory.setItem(12, glass);
                inventory.setItem(14, glass);
                inventory.setItem(16, glass);
                inventory.setItem(17, glass);
                inventory.setItem(18, glass);
                inventory.setItem(19, glass);
                inventory.setItem(20, glass);
                inventory.setItem(21, glass);
                inventory.setItem(22, glass);
                inventory.setItem(23, glass);
                inventory.setItem(24, glass);
                inventory.setItem(25, glass);
                inventory.setItem(26, glass);
                inventory.setItem(27, glass);
                inventory.setItem(28, glass); {
            
                
            }
            
        }
                }
            }
        
    
    return false;
}


}

Bitte hilft mir!

programmieren, Java, Minecraft, Informatik, Minecraft Server, Minecraft Plugin, Plugin Programmieren

Minecraft Plugin: Wie kann ich dafür sorgen, dass sich ein gespawnter Villager nicht mehr bewegt und ich beim Spawnen einen <Random> Namen wählen kann?

Hey liebe Programmiergemeinde,

ich bin gerade dabei, für meinen Server ein Plugin zu programmieren, welches einen Villager, der sich nicht bewegt, spawnt und diesem einen Displayname gibt.

Nun zu meiner Frage:

Ich bin soweit, dass der Villager gespawnt wird und der Displayname über seinen Kopf erscheint (diesen Namen soll man am Ende beim Spawnen festlegen können).
Der Villager wird gespawnt und immer wenn er sich bewegt, durch einen Scheduler wieder an seinen "Spawn-Point" zurückgesetzt. Jedoch nickt der Villager immer und ich weiß nicht, wie ich das ausschalten kann. (Es soll am Ende wie auf Mineplex oder Gomme sein).

Weiß jemand, wie ich es hinbekomme, dass der Villager sich gar nicht mehr bewegt und ich beim Spawnen einen <Random> Namen wählen kann?

Code:

@Override
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
  if (sender instanceof Player) {
    Player p = (Player)sender;

    if (p.isOp()) {
      final Villager s = (Villager) p.getWorld().spawnEntity(p.getLocation(), EntityType.VILLAGER);
      s.setCustomName("§5Test");
      s.setCustomNameVisible(true);
      final Location loc = s.getLocation();

      Bukkit.getScheduler().scheduleSyncRepeatingTask(main.getInstance(), new Runnable() {
        @Override
        public void run() {
          s.teleport(loc);
        }
      }, 1L, 1L);
    }
  }

  return false;
}
Computer, programmieren, Minecraft, villager

Meistgelesene Beiträge zum Thema Programmieren