• Es freut uns dass du in unser Minecraft Forum gefunden hast. Hier kannst du mit über 130.000 Minecraft Fans über Minecraft diskutieren, Fragen stellen und anderen helfen. In diesem Minecraft Forum kannst du auch nach Teammitgliedern, Administratoren, Moderatoren , Supporter oder Sponsoren suchen. Gerne kannst du im Offtopic Bereich unseres Minecraft Forums auch über nicht Minecraft spezifische Themen reden. Wir hoffen dir gefällt es in unserem Minecraft Forum!

Mapwechsel System Spieler teleportieren?

Mr_Redstone19

Schafhirte
Registriert
31 Januar 2018
Beiträge
103
Alter
50
Diamanten
0
Wie ich oben bereits sagte, habe ich ein MapWechselSystem aus einem YouTube Video abgeschrieben, weil ich selbst dazu noch nicht fähig bin xD
Hier der Code:

Javascript:
package at.*******.main;

import java.util.ArrayList;

import org.bukkit.Bukkit;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;

import commands.join;

public class main extends JavaPlugin {
 
    public static ArrayList<Player> Ingame = new ArrayList<>();
    public static ArrayList<Player> Spectator = new ArrayList<>();
 
    public void onEnable() {
        Bukkit.getConsoleSender().sendMessage("Surf");
     
        loadConfig();
        ChangeMap();
        this.getServer().getPluginManager().registerEvents(new join(), this);
    }

    private void loadConfig() {
        FileConfiguration cfg = this.getConfig();
        cfg.options().copyDefaults(true);
     
     
     
     
     
        saveConfig();
    } 
     
 
 
    public int mct = 120;
 
 
 
    public void ChangeMap() {
     
     
        Bukkit.getScheduler().runTaskTimerAsynchronously(this, new Runnable() {

            @Override
            public void run() {
             
                mct--;
             
             
                if(mct == 30) {
                    for(Player i : Ingame) {
                        i.sendMessage("§7[§3Surf§7] §7Neue Map in §a30 §7Sekunden!");
                    }
                }else                if(mct == 20) {
                    for(Player i : Ingame) {
                        i.sendMessage("§7[§3Surf§7] §7Neue Map in §a20 §7Sekunden!");
                    }
                }                if(mct == 10) {
                    for(Player i : Ingame) {
                        i.sendMessage("§7[§3Surf§7] §7Neue Map in §a10 §7Sekunden!");
                    }
                }                if(mct == 5) {
                    for(Player i : Ingame) {
                        i.sendMessage("§7[§3Surf§7] §7Neue Map in §a5 §7Sekunden!");
                    }
                }                if(mct == 3) {
                    for(Player i : Ingame) {
                        i.sendMessage("§7[§3Surf§7] §7Neue Map in §a3 §7Sekunden!");
                    }
                }                if(mct == 2) {
                    for(Player i : Ingame) {
                        i.sendMessage("§7[§3Surf§7] §7Neue Map in §a2 §7Sekunden!");
                    }
                }                if(mct == 1) {
                    for(Player i : Ingame) {
                        i.sendMessage("§7[§3Surf§7] §7Neue Map in §a1 §7Sekunde!");
                    }
                }                if(mct == 0) {
                    for(Player i : Ingame) {
                        i.sendMessage("§7[§3Surf§7] §7Map wird gewechselt!");
                        i.teleport(i.getLocation());
                     
                     
                    }
                    mct = 120;
                 
                }
             
             
             
             
            }
         
        }, 0, 20);
    }
}

Jedoch sagte er in dem Video nicht, wie man den Spieler dann teleportieren kann. Könnt ihr mir sagen, wie man wenigstens erstmal eine Arena damit verbindet? Und vielleicht könnt ihr mir sogar auch sagen, was ich tun muss, damit das PlugIn sich zufällig aus mehreren Koordinaten, die man da angibt, eine raussucht?
Danke

//Dean: Logs, Code & Configs bitte entweder als Code einfügen oder als Dateianhang, bzw.auf pastebin.com hochladen! Danke!
 
Zuletzt bearbeitet von einem Moderator:

UnityGaming

Workaholic
Registriert
25 Oktober 2015
Beiträge
527
Alter
26
Diamanten
312
Minecraft
FastFelix771
Bitte bitte bitte nutz' Code-Tags!
Beispiel:
Code:
 if(foo) then bar;

edoch sagte er in dem Video nicht, wie man den Spieler dann teleportieren kann
Player#teleport(Location) ist die entsprechende Methode.

Bukkit.getScheduler().runTaskTimerAsynchronously
Teleportieren im asynchronen Kontext - keine gute Idee.

Generell viel zu aufgeplustert der Code, das geht um Längen schmaler, aber darum geht es im Thema ja nicht.

Könnt ihr mir sagen, wie man wenigstens erstmal eine Arena damit verbindet?
Wie meinen?

i.teleport(i.getLocation());
Aktuell wird der Spieler an seine bisherige Position geportet, ergo nutzlos.
Du müsstest an dieser Stelle die Location der "Arena" oder whatever sonst einsetzen.

Und vielleicht könnt ihr mir sogar auch sagen, was ich tun muss, damit das PlugIn sich zufällig aus mehreren Koordinaten, die man da angibt, eine raussucht?
Eh, flüchtiges Beispiel:
Code:
List<Location> locations = new ArrayList<>();
locations.get(ThreadLocalRandom.current().nextInt(list.size()))


PS:
Der package Name wird ja wohl nicht so hoch vertraulich sein, dass du ihn anonymisieren musst, hm?
 
Zuletzt bearbeitet:

BlackHole

Workaholic
Registriert
1 Juli 2012
Beiträge
752
Diamanten
0
Minecraft
BlackHole
Generell ist ein Bukkit-Plugin nicht der ideale Einstieg in die Java-Programmierung. Es wäre viel sinnvoller, sich erst einmal mit den Grundlagen vertraut zu machen, um dann überhaupt verstehen zu können, wie man bestimmte Problemstellungen anpacken kann oder wie die einzelnen Sprachfunktionen von Java zusammenwirken. Wenn z.B. nicht verstanden hat was eine Instanz ist und wie der jeweilige Gültigkeitsbereich von Instanzvariablen aussieht, dann kommt man nicht weit.

Als Einstieg halte ich z.B. dieses kostenlose E-Book für sehr geeignet:
http://openbook.rheinwerk-verlag.de/javainsel/
 
Oben