Jump to content

Hast du schon das Minecraftforum.de-Gütesiegel gesehen? Hier kommst du dorthin!

Empfohlene Beiträge

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?

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Was meinst du?

Was macht deine "readJoinMessage"?

Wo ist joinMessage deklariert?

Beispiele was es tun soll?

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

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();
	}

 

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

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>)

  • Danke 1

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

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));
		}
	}
}

 

bearbeitet von DasNik03

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen
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?

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

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

bearbeitet von DasNik03

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Nope, das geht nur mit viel Magie im Hintergrund. Das geht nur mit Reflection und ist recht kompliziert um sowas umzusetzen.

  • Danke 1

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden

×