You are not logged in.

  • Login
Bitte besucht unser neues Forum unter https://forum.nitrado.net | Please visit our new Forum at https://forum.nitrado.net

LegendCraft1905

User / Kunde

  • "LegendCraft1905" started this thread

Posts: 14

  • Send private message

1

Wednesday, October 28th 2015, 9:38am

Minecraft Map-Vote-System - Bei den Maps koordinaten festlegen

Hallo liebe Developer!
Seid längerem versuche ich mich bei meinem Map-Vote-System. Nur mein Problem ist, ich weiß nicht wie ich bei meinen Maps die Cords festlegen kann.


Main Class:

Quoted

public List<String> voted = new ArrayList<>();
public HashMap<String, Integer> votes = new HashMap<>();

public List<String> arenas = new ArrayList<>();

@Override
public void onEnable() {

arenas.add("mix");
arenas.add("medieval");
arenas.add("classic");

for(String all : arenas) {
votes.put(all, 0);
}

instance = this;
this.registerCommands();
this.registerEvents();
FileManageSystem.createStandardConfig();
FileManageSystem.fetchData();
System.out.println("[SkyLegendPvP] plugin version: " + this.getDescription().getVersion() + " von TheRiveHD enabled!");
}

@Override
public void onDisable() {
System.out.println("[SkyLegendPvP] plugin disabled!");
}



private void registerEvents() {
this.getServer().getPluginManager().registerEvents(new PlayerListener(this), this);
this.getServer().getPluginManager().registerEvents(new ChatListener(this), this);
this.getServer().getPluginManager().registerEvents(new FreeSigns (this), (this));
}

private void registerCommands() {
getCommand("ticket").setExecutor(new SupportCommand(this));
getCommand("Gamemode").setExecutor(new Gamemode());
getCommand("Map").setExecutor(new Map(this));
getCommand("broadcast").setExecutor(new Broadcast());

}


public String prefix;
public static Main instance;
public String supporterPermission;
public List<String> needHelp = new LinkedList<String>();
public List<String> onlineSupporters = new ArrayList<String>();
public HashMap<String, String> supportChat = new HashMap<>();

public static Main getInstance() {
return instance;
}

}




Map Vote Command:

Quoted

public class Map implements CommandExecutor {

private Main plugin;

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

@SuppressWarnings("static-access")
@Override
public boolean onCommand(CommandSender sender, Command cmd, String cmdlabel, String[] args) {
if(sender instanceof Player) {
Player p = (Player) sender;
Location loc = new Location(getServer().getWorld(p.getWorld().getName()), 1, 1, 1);

if(args[0].equalsIgnoreCase("result")) {
getResult();
p.teleport(loc);
}
if(args[0].equalsIgnoreCase("list")) {
getList(p);

}
if(args[0].equalsIgnoreCase("vote")) {
if(!plugin.voted.contains(p.getName())) {
if(plugin.arenas.contains(args[1].toLowerCase())) {

int votes = plugin.votes.get(args[1].toLowerCase());
votes++;
plugin.votes.put(args[1].toLowerCase(), votes);



p.sendMessage("§3§lSLP §8» §eDu hast für die Map §c" + args[1]);
p.sendMessage("§3§lSLP §8» §eDiese Map hat §c" + plugin.votes.get(args[1].toLowerCase() + " §eVotes!"));
plugin.voted.add(p.getName());
} else {
p.sendMessage("§3§lSLP §8» §eDiese Map steht nicht zuverfügung!");
}
} else {
p.sendMessage("§3§lSLP §8» §eDu hast bereits Abgestimmt!");

}
}
}

return true;
}


private Bukkit getServer() {
// TODO Auto-generated method stub
return null;
}

public void getList(Player p) {
p.sendMessage("§7§l-§8§l------ §6§lVOTES §8§l------§7§l-");
for(String all : plugin.arenas) {
p.sendMessage("§6" + all + " §c" + plugin.votes.get(all));
}

}

public void getResult() {

int max = 0;
for(int i : plugin.votes.values()) {
if(i > max) {
max = i;
}
}

String winner = "";

for(String all : plugin.votes.keySet()) {
if(plugin.votes.get(all) == max) {
winner = all;
}

}
Bukkit.broadcastMessage("§3§lSLP §8» §eDie Map §c" + winner + " §ehat gewonnen!");



}


}




---------------------

MFG TheRiveHD
Serverbesitzer von SkyLegendPvP.de

jdev

User / Kunde

  • "jdev" is male

Posts: 178

Location: localhost:21

  • Send private message

2

Wednesday, October 28th 2015, 11:26am

Da die Listen der Arenen nur Strings beinhaltet, kannst du entweder eine weitere hashmap hinzufügen, oder du lädst die Coords direkt aus einem File ("arenaname.pos1" etc.). Ansonsten kannst du ein Objekt Arena erstellen, was all dies beinhaltet.
Supporten tut man nicht für Anerkennung, Danksagungen, Werbung oder Geld. Man tut es aus Spaß.

Gebauer_01

User / Kunde

Posts: 2,304

  • Send private message

3

Wednesday, October 28th 2015, 2:09pm

Mach dir eine HashMap<Map, Integer>. Die Klasse Map musst du natürlich neu erstellen. Beim Initialisieren machst du einfach hashmap.put(new Map(koordinaten), 0).

LegendCraft1905

User / Kunde

  • "LegendCraft1905" started this thread

Posts: 14

  • Send private message

4

Friday, December 11th 2015, 8:08pm

Beispiel Code :rolleyes:

Bitte besucht unser neues Forum unter https://forum.nitrado.net| Please visit our new Forum at https://forum.nitrado.net