DasNik03 Posted March 11, 2018 Share Posted March 11, 2018 Hallo, Ich habe ein Problem mit der Programmierung meines Minecraft Plugins. Ich möchte gerne den Skript wie variablen (player) oder methoden wie ChatColor aus einer Variable verwenden können. (Zeile 11) public void playerJoin(PlayerJoinEvent event) throws IOException { Player player = event.getPlayer(); readJoinMessage(); if(joinMessage[0] == null) { joinMessage[0] = event.getJoinMessage(); } for(int i = 0; joinMessage[i] != null && i < joinMessage.length; i++) } player.sendMessage(joinMessage[i]); } } Kann mir bitte jemand helfen? Link to comment Share on other sites More sharing options...
boomer41 Posted March 11, 2018 Share Posted March 11, 2018 Was meinst du? Was macht deine "readJoinMessage"? Wo ist joinMessage deklariert? Beispiele was es tun soll? Link to comment Share on other sites More sharing options...
DasNik03 Posted March 11, 2018 Author Share Posted March 11, 2018 Es schreibt Zeile für Zeile aus einer Textdatei in den Arrey joinMessage. File JoinMessageF = new File("Censored"); String[] joinMessage = new String[10]; public void readJoinMessage() throws IOException { FileReader fr = new FileReader(JoinMessageF); BufferedReader br = new BufferedReader(fr); int i = 0; for(String Line = "none"; Line != null && i < joinMessage.length;) { Line = br.readLine(); joinMessage[i] = Line; i++; } br.close(); } Link to comment Share on other sites More sharing options...
boomer41 Posted March 11, 2018 Share Posted March 11, 2018 Erstmal das Array weg und ne Liste her. https://stackoverflow.com/questions/5343689/java-reading-a-file-into-an-arraylist Dann kannst du für jede Zeile dem Spieler ne Nachricht per ForEach schicken: https://stackoverflow.com/questions/1818729/java-foreach-loop-for-integer-i-list (Transferaufgabe: Deine Liste ist ArrayList<String> und die Anleitung hat ArrayList<Integer>) 1 Link to comment Share on other sites More sharing options...
DasNik03 Posted March 11, 2018 Author Share Posted March 11, 2018 (edited) Danke, aber das beantwortet nicht meine frage. Aber mein Skript sieht jetzt so aus: package Censored; import java.io.*; import java.util.*; import org.bukkit.entity.*; import org.bukkit.event.*; import org.bukkit.event.player.*; import org.bukkit.plugin.java.JavaPlugin; public class mBridge extends JavaPlugin implements Listener { File JoinMessageF = new File("Censored"); ArrayList<String> joinMessage = new ArrayList<String>(); public void readJoinMessage() throws IOException { Scanner s = new Scanner(JoinMessageF); while (s.hasNextLine()){ joinMessage.add(s.nextLine()); } s.close(); } @Override public void onEnable() { getServer().getPluginManager().registerEvents(this, this); System.out.println("Plugin mBridge successfull enabled!"); } @Override public void onDisable() { System.out.println("Plugin mBridge successfull disabled!"); } @EventHandler public void playerJoin(PlayerJoinEvent event) throws IOException { Player player = event.getPlayer(); readJoinMessage(); if(joinMessage.size() == 0) { joinMessage.add (event.getJoinMessage()); } event.setJoinMessage(null); for(int i = 0; i < joinMessage.size(); i++) { player.sendMessage(joinMessage.get(i)); } } } Edited March 11, 2018 by DasNik03 Link to comment Share on other sites More sharing options...
boomer41 Posted March 11, 2018 Share Posted March 11, 2018 vor 30 Minuten schrieb DasNik03: Danke, aber das beantwortet nicht meine frage. Effektiv hast du bis jetzt nichtmal eine Frage gestellt. Wenn du dir erhoffst, dass wir dir jetzt ein fertiges Plugin geben, dann hast du dich geschnitten. Du lernst daraus nichts. Wenn dann kannst du gerne Fragen stellen wie "Wie kann ich dem Spieler eine Nachricht senden?" Aber Fragen wie "Kann mir bitte einer helfen?" helfen genau nichts, denn bei was überhaupt? Link to comment Share on other sites More sharing options...
DasNik03 Posted March 11, 2018 Author Share Posted March 11, 2018 (edited) Ich hatte gefragt ob und wie es geht, befehle aus der text Datei auch in java auszuführen. also wenn in der Text Datei z.b. folgendes steht: ChatColor.Red + "Hallo, " + player.getDisplayName() folgendes ausgegeben wird: Hallo, <Name> und nicht: ChatColor.Red + "Hallo, " + player.getDisplayName() vor 2 Stunden schrieb DasNik03: Ich möchte gerne den Skript wie variablen (player) oder methoden wie ChatColor aus einer Variable verwenden können. (Zeile 11) Das ist doch eine Frage Edited March 11, 2018 by DasNik03 Link to comment Share on other sites More sharing options...
boomer41 Posted March 11, 2018 Share Posted March 11, 2018 Nope, das geht nur mit viel Magie im Hintergrund. Das geht nur mit Reflection und ist recht kompliziert um sowas umzusetzen. 1 Link to comment Share on other sites More sharing options...
DasNik03 Posted March 11, 2018 Author Share Posted March 11, 2018 Ok, dann trotzdem nochmal danke für den anderen Tip. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now