Ich fahre nicht fort, da hast du wohl eine } übersehen.
2.) Warum ist da überhaupt DeadCode? :/
€dit: liegt an "message" o.O
Ich fahre nicht fort, da hast du wohl eine } übersehen.
2.) Warum ist da überhaupt DeadCode? :/
€dit: liegt an "message" o.O
@Panjab ich werde deinen Code mal kopieren.
PS: Kannst du Rock sagen das ich nicht nur fragen zum coden stelle sondern auch viel antworte. Nur so. Ich wäre dir dankbar!![]()
Den Beitrag mal in einen Spoiler gepackt...
Geändert von Johannes_C25 (06.06.2012 um 18:35 Uhr) Grund: Spoiler eingefügt, ist sonst ziemlich lange...
Bei mir ist es mittlerweile auch kein Death Code mehr, nachdem ich alles neu geschrieben habe.
@Johannes_C25 :
Vielen Dank! Kannst du mir dir for-each Schleife nochmal erklären?
Edit: (07.06.2012 um 21:09)
@Johannes_C25 :
Dein Code funktioniert super, nur mein Problem ist: Es wird immer nur das 1. Wort angezeigt, sprich wenn ich /send test eingebe, kommt:
[SEND] test
Wenn ich aber /send wie gehts? eingebe, kommt:
[SEND] wie
![]()
@Johannes_C25 kannst du mir das mit der HashMap noch mal erklären? Also wenn ich den Command /pchat ‹Spieler› eingebe das dann wenn ich Chatte nur dem ‹Spieler› die Message gesendet wird die ich geschrieben habe. Und wenn der ‹Spieler› was schreibt das auch nur mir die Message gesendet wird.
(@Baba43 @Panjab @spoothie )
@Panjab
"Wenn ich aber /send wie gehts? eingebe, kommt:
[SEND] wie"
Versteht ich jetzt nicht...
Mit der for-each Schleife geht das eigendlich so:
Die ausgabe sollte in diesem Fall folgende sein:Code:String[] array = {"Eintrag 0", "1.", "noch etwas", "String...", "hallo"} //Erstellt ein String-array mit namen array. for(String s:array) { //Hier fängt die for-Schleife an. Der Code der hierrunter steht (bis die for-schleife geschlossen wird) wird für jeden Eintrag in array einmal ausgeführt. String s ist hierbei der Jeweilige Eintrag. //Hier kommt die Schleife 5 mal an (array hat eine lenge von 5). System.out.println(s); }
Was genau das Problem ist, werde ich mir gleich nochmal ansehen...Code:Eintrag 0 1. noch etwas String... hallo
@handyhacker
Ich kann es mal versuchen...
Du kannst mit einer HashMap immer einen Schlüssel eintragen und ein Wert, der dem Schlüssel zugeordnet ist. (eig. so änlich wie in einer .yml...) So kannst du zum Beispiel sagen, wenn ich "hallo" habe, möchte ich immer "welt" bekommen, und bei "ich", möchte ich "reden" bekommen. Das würdest du dann wie folgt machen:
Wenn du jetzt auf diese Einträge zugreifen möchtest, kannst du dies so machen:Code:HashMap<String, String> zuordnung = new HashMap<String, String>(); zuordnung.put("hallo", "welt"); zuordnung.put("ich", "reden");
Ich hoffe, ich habe das ein bisschen verständlich erklärt...sonst such doch nochmal, ob google nicht irgendwelche guten erklärungen kennt...Code:String schlüssel = "hallo"; String Wert = zuordnung.get(schlüssel);
Edit:
@Panjab
Kannst du nochmal den Code schreiben, wie er zur Zeit aussieht? Ich finde nämlich nichts, was falsch sein sollte...
Geändert von Johannes_C25 (08.06.2012 um 12:12 Uhr)
@Johannes_C25 So geht es aber nicht: ich kann das target nicht ab fragenPHP-Code:package handyhacker.ActivateMe.Binary;
import java.util.HashMap;
import java.util.Vector;
import java.util.logging.Logger;
import handyhacker.ActivateMe.Commands.ActivateMeCommand;
import handyhacker.ActivateMe.Commands.ActivationJoinCommand;
import handyhacker.ActivateMe.Commands.ListCommand;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerChatEvent;
import org.bukkit.plugin.java.JavaPlugin;
public class ActivateMe extends JavaPlugin implements Listener{
public HashMap<Player, Boolean> AC = new HashMap<Player, Boolean>();
public Vector<Player> vec = new Vector<Player>();
Logger log;
public void onDisable() {
log.info("Plug-in wird deaktiviert...");
log.info("2%");
log.info("14%");
log.info("29%");
log.info("53%");
log.info("67%");
log.info("98%");
log.info("100%");
log.info("Plug-in wurde erfolgreich deaktiviert!");
}
public void onEnable() {
log = this.getLogger();
registerEvents();
log.info("Loading classes...");
log.info("Loading german Language Files...");
log.info("Commands werden geladen...");
log.info("Erfolgreich 5 Commands regestriert!");
log.info("Erfolgreich alle Commands geladen!");
log.info("Plug-in wurde aktiviert!");
this.getCommand("activateme").setExecutor(new ActivateMeCommand());
this.getCommand("cactivatemetouser").setExecutor(new ActivationJoinCommand());
this.getCommand("clist").setExecutor(new ListCommand());
}
private void registerEvents() {
getServer().getPluginManager().registerEvents(this, this);
}
public boolean onCommand(CommandSender sender, Command cmd, String Label, String[] args) {
if (sender instanceof Player) {
Player player = (Player) sender;
Player target = Bukkit.getServer().getPlayerExact(args[0]);
if (cmd.getName().equalsIgnoreCase("cactivate")) {
if (player.hasPermission("activateme.accept")) {
if (target.isWhitelisted()) {
if (args.length == 0) {
player.sendMessage(ChatColor.RED + "Du musst einen Spieler nennen!");
}
if (args[0].equalsIgnoreCase(args[0])) {
if (vec.contains(target)) {
player.sendMessage(ChatColor.GREEN + "Du bist nun im Freischaltungschat mit " + target.getName() + "!");
AC.put(player, true);
AC.put(target, true);
target.sendMessage(ChatColor.GREEN + "Der Staff " + ChatColor.GOLD + player.getName());
target.sendMessage(ChatColor.GREEN + "übernimmt deine Freischaltung!");
for(Player bmp : Bukkit.getServer().getOnlinePlayers()) {
if (bmp.hasPermission("activateme.showac")) {
bmp.sendMessage(ChatColor.GREEN + "Der Spieler "+ ChatColor.GOLD + target.getName() + ChatColor.GREEN + " wird von " + ChatColor.GOLD + player.getName() + ChatColor.GREEN + " freigeschaltet!");
}
}
}
}
}else{
player.sendMessage(ChatColor.RED + "Der Spieler " + target.getName() + " ist nicht in der Freischaltungsschlange!");
}
}else{
player.sendMessage(ChatColor.RED + "Nicht genügend Rechte für diesen Befehl!");
}
}
}else{
sender.sendMessage("Dieser Befehl ist nicht für die Konsole verfübar!");
}
return false;
}
[MENTION=109443]Event[/MENTION]Handler
public void onPlayerChat(PlayerChatEvent event) {
Player chatPlayer = event.getPlayer();
if (AC.containsKey(chatPlayer)) {
if (AC.containsKey(chatPlayer)) {
chatPlayer.sendMessage(event.getMessage());
}
}
}
}
Geändert von handyhacker (08.06.2012 um 14:05 Uhr)