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.

comniemeer

User / Kunde

  • "comniemeer" started this thread

Posts: 90

  • Send private message

1

Monday, December 10th 2012, 7:40pm

[Plugin] Spieler teleportieren

Hallo!
Ich brauche ein wenig Hilfe bei einem kleinem Plugin.
Und zwar soll der Serveradmin einen Befehl, wie in etwa "/spiel set Arena1" eingeben, um seine aktuellen Koordinaten und die Welt im Pluginordner in einem weiteren Ordner namens "Arenen" in einer speziellen Config namens "Arena1" zu speichern.

PHP Source code

1
2
3
4
5
6
7
worldFunwelt
x200.5
y64.0
z286.5
yaw0.0
pitch0.0
nameArena1

Leider weiß ich noch nicht wie man so etwas anstellt...
Nachdem die Arena gesetzt wurde soll man da mit "/spiel Ort" hinkommen.
Hat jemand eine Ahnung? :?:
Ich freue mich schon auf gute Antworten!
MfG Martin

bubbleguj

User / Kunde

  • "bubbleguj" is male

Posts: 704

Location: Vancouver, Canada

Occupation: Special Projects Assistant

Thanks: 9

  • Send private message

2

Monday, December 10th 2012, 7:48pm

Is doch easy...
1) Extra Config erstellen
2) Spielerlocation auslesen und in Config speichern
3) Configdaten auslesen und zu Location machen
4) Spieler teleporten

Wo liegt das problem, oder versteh' ich was' falsch?
Programmer (noun.)
A person who fixed a problem that you don't have, in a way you don't understand.

Algorithm (noun.)
Word used by programmers when they don't want to explain what they did.

xXAlex10Xx

User / Kunde

  • "xXAlex10Xx" is male

Posts: 818

Location: Nirgends

Occupation: 'Schüler' - ist n' Insider

Thanks: 8

  • Send private message

3

Monday, December 10th 2012, 7:54pm

Hey, so mach cihs immer:

PHP Source code

1
2
3
4
5
6
7
8
9
10
// Defininieren einer Welt
World w Bukkit.getServer().getWorld(getConfig().getString("world"));
// Definieren der Koordinaten...
double x getConfig().getDouble("x");
double y getConfig().getDouble("y");
double z getConfig().getDouble("z");
// Erstellen einer Location mit new Location(WELT, X, Y, Z)
Location loc = new Location(wx,z);
//Player zu der Location teleporten
p.teleport(loc);
:thumbsup:

1 registered user thanked already.

Users who thanked for this post:

Omnimon1997 (29.06.2013)

comniemeer

User / Kunde

  • "comniemeer" started this thread

Posts: 90

  • Send private message

4

Monday, December 10th 2012, 10:40pm

Is doch easy...
1) Extra Config erstellen
2) Spielerlocation auslesen und in Config speichern
3) Configdaten auslesen und zu Location machen
4) Spieler teleporten

Wo liegt das problem, oder versteh' ich was' falsch?

Naja, etwas genauer (so wie Alex) wäre schon schöner, da ich noch nie etwas mit Configs gemacht habe und demzufolge ein schönes Beispiel brauche. Und das Beispiel von Alex ist schon ganz gut aber ich weiß noch nicht, wie ich so zum Beispiel 10 Arenen in einer Config möglichst übersichtlich unterbringe.

MfG

xXAlex10Xx

User / Kunde

  • "xXAlex10Xx" is male

Posts: 818

Location: Nirgends

Occupation: 'Schüler' - ist n' Insider

Thanks: 8

  • Send private message

5

Tuesday, December 11th 2012, 1:58pm

arena_1_world
arena_1_x
...

MfG
:thumbsup:

bubbleguj

User / Kunde

  • "bubbleguj" is male

Posts: 704

Location: Vancouver, Canada

Occupation: Special Projects Assistant

Thanks: 9

  • Send private message

6

Tuesday, December 11th 2012, 5:26pm

Wie jez? Du weist also garnicht, wie Configs gehen und willst' nen fertigen Code von uns? O.o
Programmer (noun.)
A person who fixed a problem that you don't have, in a way you don't understand.

Algorithm (noun.)
Word used by programmers when they don't want to explain what they did.

comniemeer

User / Kunde

  • "comniemeer" started this thread

Posts: 90

  • Send private message

7

Tuesday, December 11th 2012, 7:28pm

Ich hab jetzt mal das so ähnlich wie es Alex beschrieben hat gemacht:

CommandPingusmash (CommandExecutor-Klasse)


Funinator (Main-Klasse)


Config

PHP Source code

1
2
3
4
5
6
7
PingusmashArena:
    x:
    y:
    z:
    welt:
    yaw:
    pitch:

Allerdings wird beim Serverstart nicht der Ordner "Pingusmash" mit Config generiert...

Außerdem kommt bei der Eingabe von "/pingusmash set", was eigentlich die Koordinaten definieren soll, die Meldung, dass zu wenig Argumente eingegeben wurden... Zudem bin ich mir nicht sicher, ob dann die Koordinaten mit dem folgenden Block in die Config geschrieben würden:

Teleportkoordianten definieren

PHP Source code

1
2
3
4
5
6
plugin.getConfig().set("PingusmashArena.x"player.getLocation().getX());
plugin.getConfig().set("PingusmashArena.y"player.getLocation().getY());
plugin.getConfig().set("PingusmashArena.z"player.getLocation().getZ());
plugin.getConfig().set("PingusmashArena.welt"player.getLocation().getWorld().getName());
plugin.getConfig().set("PingusmashArena.yaw"player.getLocation().getYaw());
plugin.getConfig().set("PingusmashArena.pitch"player.getLocation().getPitch());

Ich bin mir auch nicht ganz sicher, ob das mit "float yaw" und "float pitch" richtig ist oder ob das anders abgerufen werden muss:

Teleport-Block

PHP Source code

1
2
3
4
5
6
7
8
double x plugin.getConfig().getDouble("PingusmashArena.x");
double y plugin.getConfig().getDouble("PingusmashArena.y");
double z plugin.getConfig().getDouble("PingusmashArena.z");
World w plugin.getServer().getWorld(plugin.getConfig().getString("PingusmashArena.welt"));
float yaw = (float) plugin.getConfig().get("PingusmashArena.yaw");
float pitch = (float) plugin.getConfig().get("PingusmashArena.pitch");
Location PingusmashArena = new Location(wxyzyawpitch);
ziel.teleport(PingusmashArena);

Und wenn ich "pingusmash set" in die Konsole eingebe kommt das:

Serverlog

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
>pingusmash set
19:15:30 [WARNING] Unexpected exception while parsing console command "pingusmas
h set"
org.bukkit.command.CommandException: Unhandled exception executing command 'ping
usmash' in plugin Funinator vAlpha v1.0
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46)
        at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:18
6)
        at org.bukkit.craftbukkit.CraftServer.dispatchCommand(CraftServer.java:5
02)
        at org.bukkit.craftbukkit.CraftServer.dispatchServerCommand(CraftServer.
java:494)
        at net.minecraft.server.DedicatedServer.al(DedicatedServer.java:258)
        at net.minecraft.server.DedicatedServer.r(DedicatedServer.java:223)
        at net.minecraft.server.MinecraftServer.q(MinecraftServer.java:493)
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:426)
        at net.minecraft.server.ThreadServerApplication.run(SourceFile:856)
Caused by: java.lang.ClassCastException: org.bukkit.craftbukkit.command.Coloured
ConsoleSender cannot be cast to org.bukkit.entity.Player
        at me.comniemeer.funinator.CommandPingusmash.onCommand(CommandPingusmash
.java:103)
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44)
        ... 8 more

Eigentlich müsste da ja die Meldung "Dieser Befehl ist nur für Spieler!" kommen.
Aber am wichtigsten ist erst einmal das mit der Config, warum die nicht geladen wird, und die Sache mit "yaw" und "pitch".
Ich würde euch vielmals danken!

@ bubbleguj
Nein, jetzt nicht mehr :D Ich hab mir mal den Config-Abschnitt in Stuppsman's Tutorial angesehen, aber die Config wird beim Start nicht generiert...

Universum

User / Kunde

Posts: 959

Thanks: 6

  • Send private message

8

Tuesday, December 11th 2012, 7:42pm

Config: Du musst erst ne Methode für einbauen ;)
Koordinaten: Du musst die Config nach set() speichern ;)
Console: Du hast den CommandSender anscheinend zu einem player konvertiert.
*Mad*

comniemeer

User / Kunde

  • "comniemeer" started this thread

Posts: 90

  • Send private message

9

Tuesday, December 11th 2012, 7:52pm

Config: Du musst erst ne Methode für einbauen ;)

Ähm wie mache ich das und wo muss die hin?

Koordinaten: Du musst die Config nach set() speichern ;)

Ähm hab ich das nicht schon?

PHP Source code

1
plugin.getConfig().set("PingusmashArena.x"player.getLocation().getX());


Console: Du hast den CommandSender anscheinend zu einem player konvertiert.

Ähm Das hab ich hinbekommen ;)


Edit: Ach ja, wie ist das mit dem yaw und pitch nun?

Universum

User / Kunde

Posts: 959

Thanks: 6

  • Send private message

10

Tuesday, December 11th 2012, 7:59pm

:rolleyes: Speichern, nicht setten.

config.save(new File(pfadzudeinerconfig);

Methode: mach doch sowas wie

Source code

1
2
3
void saveCfg(){if(! new File(getDataFolder(), "config.yml").exists()){
            this.saveDefaultConfig();
        }
*Mad*

comniemeer

User / Kunde

  • "comniemeer" started this thread

Posts: 90

  • Send private message

11

Tuesday, December 11th 2012, 8:56pm

Ich hab jetzt das in die Main-Class gemacht:

PHP Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
    public FileConfiguration config;
    
    public void loadConfig() {
        if (new File("plugins/Funinator/config.yml").exists()){            
            config getConfig();
            config.options().copyDefaults(true);
            System.out.println("[Funinator] Die Config wurde geladen.");    
        } else {
            saveDefaultConfig();
            config getConfig();
            config.options().copyDefaults(true);
            System.out.println("[Funinator] Die Config wurde erstellt und geladen.");
        }
    }

Aber die Config wird einfach nicht geladen!

Und das hier, so ist es falsch, oder?

PHP Source code

1
plugin.getConfig().set("PingusmashArena.x"player.getLocation().getX());

Ist es so etwa richtig?

PHP Source code

1
plugin.getConfig().save(new File("plugins/Funinator/config.yml"));

Aber wie werden dann die Felder (x, y, z, welt, ...) ausgefüllt?
MfG

This post has been edited 4 times, last edit by "comniemeer" (Dec 15th 2012, 11:39pm)


comniemeer

User / Kunde

  • "comniemeer" started this thread

Posts: 90

  • Send private message

12

Friday, December 14th 2012, 12:02am

#push
So jetzt habe ich es Dank Stuppsman geschafft die Config zu laden, weiß aber immer noch nicht wie ich in die Felder in der Config mit einem Befehl ausfülle! Weiß jemand was?
Danke und fG!

comniemeer

User / Kunde

  • "comniemeer" started this thread

Posts: 90

  • Send private message

13

Saturday, December 15th 2012, 11:38pm

#push

Robin_Micky

User / Kunde

  • "Robin_Micky" is male

Posts: 233

Thanks: 2

  • Send private message

14

Sunday, December 16th 2012, 3:02pm

Also wie ichs gemacht hab:

Source code

1
2
3
4
5
6
7
ArrayList<String> banned = new ArrayList<String>();
File banned_file;
FileConfiguration banned_c;
banned_file = new File(datafolder, "banned.yml");
banned_c = YamlConfiguration.loadConfiguration(banned_file);
banned_c.set("banned", banned);
banned_c.save(banned_file);

Das ist ein "Ausschnitt"
Grüße

P.S. Bitte lass das mit den "/plugins/Funinator/config.yml" bitte, dafür gibts getDataFolder()

EDIT:
Wenn du ne eigene Klasse erstellst, hängst du genau da, wo ich häng, da wo nämlich yml failt, nehm lieber XML

This post has been edited 1 times, last edit by "Robin_Micky" (Dec 16th 2012, 3:09pm)


TheMiners1999

User / Kunde

Posts: 106

  • Send private message

15

Friday, January 10th 2014, 7:13am

Hallo,

ich habe mir jetzt nicht alles durchgelesen, aber so habe ich es von PostCrafter (Der Server muss reloaded werden, um die Werte zu speichern, aber das kann ich noch fixen):

Java 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
69
70
71
72
73
74
75
76
77
 package de.StgMiner.MCmyServer; 

import java.io.File; 
import java.io.IOException; 

import org.bukkit.Bukkit; 
import org.bukkit.Location; 
import org.bukkit.World; 
import org.bukkit.command.Command; 
import org.bukkit.command.CommandExecutor; 
import org.bukkit.command.CommandSender; 
import org.bukkit.configuration.file.FileConfiguration; 
import org.bukkit.configuration.file.YamlConfiguration; 
import org.bukkit.entity.Player; 

public class SpawnsCMD implements CommandExecutor { 

private File file = new File("plugins/MCmyServer", "SpawnLocation.yml"); 
private FileConfiguration cfg = YamlConfiguration.loadConfiguration(this.file); 

@Override 
public boolean onCommand(CommandSender cs, Command cmd, String label, String[] args) { 

Player p = (Player) cs; 
if(cs instanceof Player) { 

if(cmd.getName().equalsIgnoreCase("setspawn")) { 

Location loc = p.getLocation(); 
String str = "spawn."; //Pfad in der Config
this.cfg.set(str + "world", loc.getWorld().getName()); 
this.cfg.set(str + "x", loc.getZ()); 
this.cfg.set(str + "y", loc.getY()); 
this.cfg.set(str + "z", loc.getZ()); 
this.cfg.set(str + "yaw", loc.getYaw()); 
this.cfg.set(str + "pitch", loc.getPitch()); 

try { 
this.cfg.save(this.file); 
cs.sendMessage("§6[§2MCmyServer§6] §2Lobby-Spawn Succesfully set!"); 
} catch (IOException e) { 
e.printStackTrace(); 
} 

} 

else if(cmd.getName().equalsIgnoreCase("spawn")) { 

String str = "spawn."; //Pfad in der Config (Wie du merkst, der wie oben bei /setspawn)
World w = Bukkit.getWorld(this.cfg.getString(str + "world")); 
if(w == null) { 
cs.sendMessage("§6[§2MCmyServer§6] §4There is no World, with the Name in the conig"); 
return true; 
} 

double x = this.cfg.getDouble(str + "x"); 
double y = this.cfg.getDouble(str + "y"); 
double z = this.cfg.getDouble(str + "z"); 
double yaw = this.cfg.getDouble(str + "yaw"); 
double pitch = this.cfg.getDouble(str + "pitch"); 
Location loc = new Location(w, x, y, z, (float) yaw, (float) pitch); 
p.teleport(loc); 
cs.sendMessage("§6[§2MCmyServer§6] §2You are now at the Lobby-Spawn"); 

} 

} 

else { 
cs.sendMessage("§6[§2MCmyServer§6] §4You have to be a Player!"); 
return true; 
} 

return false; 
} 

}




Bei fragen, einfach fragen
Mivcon.net - Spielerlebnisse, die man nie vergisst. Joine jetzt: MIVCON.net

bubbleguj

User / Kunde

  • "bubbleguj" is male

Posts: 704

Location: Vancouver, Canada

Occupation: Special Projects Assistant

Thanks: 9

  • Send private message

16

Friday, January 10th 2014, 1:44pm

Ich will ja jetzt nichts sagen, aber der Thread ist über ein Jahr alt...
Programmer (noun.)
A person who fixed a problem that you don't have, in a way you don't understand.

Algorithm (noun.)
Word used by programmers when they don't want to explain what they did.

comniemeer

User / Kunde

  • "comniemeer" started this thread

Posts: 90

  • Send private message

17

Saturday, January 11th 2014, 12:04am

Haha, danke ^^ xD
Ich will ja nicht angeben und so, kann mittlerweile aber schon ziemlich gut programmieren, somit hat sich das hier wohl erledigt! :D

Lui9iGamer

User / Kunde

Posts: 148

  • Send private message

18

Saturday, May 24th 2014, 11:20pm

Und wie hast du es gemacht das die Welt eingelesen wird?
Ich hab das so:

Java 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
if(args.length==1)
				{
					String str = "warps. " + args[0].toLowerCase() + ".";
					
					try
					{
						
						p.sendMessage("vor");
						World w = Bukkit.getServer().getWorld(this.cfg.getString(str + "world"));
						p.sendMessage("nach");
						if(w==null){
							p.sendMessage("§4Der Warp liegt in einer unbekannten Welt");
							return true;
						}
						
						double x = this.cfg.getDouble(str + "x");
						double y = this.cfg.getDouble(str + "y");
						double z = this.cfg.getDouble(str + "z");
						double yaw = this.cfg.getDouble(str + "yaw");
						double pitch = this.cfg.getDouble(str + "pitch");
						Location loc = new Location(w, x, y, z,(float) yaw,(float) pitch);
						p.teleport(loc);
						p.sendMessage("§aDu wurdest teleportiert.");
					}
					catch(NullPointerException exv)
					{
						p.sendMessage("Der Warp existiert nicht.");
						
					}
				}


und die letzte Nachricht die der Spieler erhält ist "vor".
Ab dann kommt eine Fehlermeldung.

comniemeer

User / Kunde

  • "comniemeer" started this thread

Posts: 90

  • Send private message

19

Saturday, May 24th 2014, 11:22pm

Die Fehlermeldung wäre sehr interessant ;)

mcf_

User / Kunde

Posts: 1,363

Thanks: 22

  • Send private message

20

Saturday, May 24th 2014, 11:26pm

Haha, wie der Thread immer wieder ausgegraben wird ^^



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

Similar threads