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

Dear visitor, welcome to Nitrado.net Prepaid Gameserver Community-Support - Archiv. If this is your first visit here, please read the Help. It explains in detail how this page works. To use all features of this page, you should consider registering. Please use the registration form, to register here or read more information about the registration process. If you are already registered, please login here.

MarcSenpai

User / Kunde

  • "MarcSenpai" is male
  • "MarcSenpai" started this thread

Posts: 138

Location: Clover

Occupation: Schüler

  • Send private message

1

Saturday, April 14th 2018, 7:04pm

Config.yml erstellen/benutzen

Konnte euch dieser Beitrag helfen?

A total of 1 Vote has been submitted.

100%

Jap (1)

0%

Nope

0%

Zu viele ungeklärte fragen!

Hallo miteinander :vain:
Da ich selbst große Probleme mit Config Datein hatte, will ich euch heute meine Vorlage erklären und geben.
Zuerst zeige ich euch mal den QuellCode, ich habe schon kleine "Notizen" rangeschrieben, aber ich erkläre es ihr nochmal.
Ich zeige das alles hier in Eclipse.

Spoiler Spoiler

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
package me.marcsenpai.main; //Euer package


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.PlayerJoinEvent;
import org.bukkit.plugin.java.JavaPlugin;


public class Main extends JavaPlugin implements Listener{ // Listener nur wenn ihr ein Event habt! Commands braucht ihr nicht registrieren!
   
   
   
   
	@Override
	public void onEnable(){
            	loadConfig(); //Config laden
    	System.out.println("[Vorlage] Geladen");
	 PluginManager pm = Bukkit.getPluginManager();
		pm.registerEvents(this, this);
}
   
	@Override
	public void onDisable(){
    	System.out.println("[Vorlage] Deaktiviert");
 	
	}

	public boolean onCommand(CommandSender sender, Command cmd, String cmdlabel, String[] args){
    	Player p = (Player) sender;
   	
    	if(cmd.getName().equalsIgnoreCase("vorlage")){
    		if(p.hasPermission("vorlage")) {
    			p.sendMessage(ChatColor.translateAlternateColorCodes('&', getConfig().getString("Vorlage"))); //hier geben wir dem spieler dann die 
    		}                                    	// message aus die in der config unter Vorlagen steht und wir "machen" & zu einem Farbcode
    	}
 
    	return false;
   	
	}
   
	@EventHandler
	public void onJoin(PlayerJoinEvent e) {
		Player p = e.getPlayer();
		if(p.hasPermission("team")) {
			e.setJoinMessage(ChatColor.translateAlternateColorCodes('&', getConfig().getString("Vorlage2")).replace("[Spieler]", p.getName()));
		}       	// hier "replacen" wir außerdem noch [Spieler] mit p.getName(); also dem Spieler, man kann alles replacen, man kann in die
		//config auch [Player] schreiben und es mit p.getName(); replacen!
	}
	
   
	public void loadConfig(){
    	reloadConfig(); // noch mals reloaden
		
		
		getConfig().options().header("pass auf"); // header hinzufügen
		getConfig().addDefault("Vorlage", "&6Dies ist ein Vorlage"); //erster punkt, in der config steht dan Vorlage: '&6Dies ist eine Vorlage' oder wenn wir /vorlage eingeben
		getConfig().addDefault("Vorlage2", "&6Dies ist die zweite vorlage, Hallo [Spieler]"); //hier steht dann beim Joinen Dies ist die zweite vorlage, Hallo Marc_Senpai
   	
    	getConfig().options().copyDefaults(true); // hiermit erlauben wir das verändern
   	saveConfig(); // und speichern
	}
 
}

Also zum Anfang erstmal das Grundgerüst.
Dann schreiben wir in den OnEnable teil einmal loadConfig(); damit wir die Config laden.
Als nächstes wollen wir dann einen Command erstellen der uns wenn wir /vorlage eingeben alles ausgibt was in der Config steht.
Aber bevor wir das machen können müssen wir erst vor die letzte Klammer gehen und erstmal die Default Config erstellen.

Spoiler Spoiler

Source code

1
2
3
4
5
6
7
8
9
10
11
12
public void loadConfig(){
    	reloadConfig(); 
		
		
		getConfig().options().header("pass auf"); 
		getConfig().addDefault("Vorlage", "&6Dies ist ein Vorlage"); 
		
   	
    	getConfig().options().copyDefaults(true); 
   	saveConfig(); 
	} 
} // das ist die Letzte Klammer

Also jetzt mal erklärt: Zuerst Reloaden wir die Config, dann fügen wir ein Header ein,
das machen wir mit header("header") aber vorher müssen wir noch auf die Config aufrufen das geht mit
getConfig() dann sagen wir .options() für die Optionen und dann erst unseren Header.
Nun wollen wir aber auch noch etwas hinein packen.
Also rufen wir wieder unsere Config auf (getConfig() ) und dann adden wir ein Default mit .addDefault("Vorlage", "&6Dies ist eine Vorlage").
Zuerst steht unser "Punkt" also der Punkt Vorlage: un dahinter Hallo.
so jetzt müssen wir aber auch noch sagen das sie es verändern dürfen,
das machen wir wie immer zuerst mit getConfig() dann wider .options() und dann copyDeafaults und dann true (zum erlauben)
oder false (zum nicht erlauben) danach saven wir unsere Config nurnoch mit saveConfig();

Jetzt wollen wir mal weiter mit unserem Command.
Also zuerst das Gerüst

Source code

1
2
3
4
5
6
Player p = (Player) sender;
if(cmd.getName().equalsIgnoreCase("vorlage")){
    		
    			
    		}                                    	
    	

dann fügen wir noch Permissions ein

Source code

1
2
3
4
5
6
Player p = (Player) sender;
if(cmd.getName().equalsIgnoreCase("vorlage")){
    		if(p.hasPermission("vorlage")) {
    		   
    		}                                   	
    	}

und dann was passieren soll, also ihm eine nachricht schicken.
Aber wenn wir Farbcodes benutzen wollen müssen wir sie noch übersetzen
mit ChatColor.translateAlternateColorCodes('&' Pfad.zur.Liste);

Source code

1
2
3
4
5
6
Player p = (Player) sender;
if(cmd.getName().equalsIgnoreCase("vorlage")){
    		if(p.hasPermission("vorlage")) {
   	p.sendMessage(ChatColor.translateAlternateColorCodes('&', getConfig().getString("Vorlage"))); 	   
    		}                                   	
    	}
Dann nurnoch in der Plugin.yml registrieren und Probieren:

und dann
awddawdgf.PNG

So jetzt wollen wir aber auch noch manchmal Variablen benutzen z.B. den Spielr Namen.
Also benutzen wir mal ein EventHandler und zwar das PlayerJoinEvent.

Source code

1
2
3
4
5
@EventHandler
	public void Join(PlayerJoinEvent e) {
		Player p = e.getPlayer();
		
	}

Dann noch Permissions

Source code

1
2
3
4
5
6
7
8
9
@EventHandler
	public void Join(PlayerJoinEvent e) {
		Player p = e.getPlayer();
		if(p.hasPermission("team")) {

		  
		}       	
	   
	}

So, jetzt wollen wir die Eventnachricht von der Config benutzen also
ChatColor.translateAlternateColorCodes('&', getConfig().getString("Vorlage2"))?
Ja schon aber wir wollen aber auch noch, den namen haben.
Also schreiben wir wieder in unser public void loadConfig
getConfig().addDefault("Vorlage2", "&6Dies ist die zweite vorlage, Hallo [Spieler]");

Source code

1
2
3
4
5
6
7
8
9
10
11
public void loadConfig(){
    	reloadConfig(); 
		
		
		getConfig().options().header("pass auf"); 
		getConfig().addDefault("Vorlage", "&6Dies ist ein Vorlage"); 
		getConfig().addDefault("Vorlage2", "&6Dies ist die zweite vorlage, Hallo [Spieler]");
   	
    	getConfig().options().copyDefaults(true); 
   	saveConfig(); 
	}

So jetzt wollen wir aber da wo [Spieler] steht den Namen hin, das machen wir in dem wir
replace benutzen, .replace("[Spieler]", p.getName()
das schreiben wir einfach hinter unsere translatealternativColorcodes

Source code

1
e.setJoinMessage(ChatColor.translateAlternateColorCodes('&', getConfig().getString("Vorlage2")).replace("[Spieler]", p.getName()));

So und rauskommt wenn wir joinen und die permissions haben:
thfhserf.PNG

Die Config sieht jetzt so aus:
df.PNG

Z.: Der Ordner hat den Namen von dem Namen den ihr in der Plugin.yml angegeben hat.
Bei Fragen oder Falsch angaben einfach hier schreiben, ich versuche sie schnellst möglich zu beantworten!
Ich hoffe ich konnte euch helfen

In der kürze liegt die Würze
- Shakespeares | Unitygaming-FastFelix

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