• 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!

PlugIn Hilfe bei Bus System

abcabc

Redstoneengineer
Registriert
2 Mai 2018
Beiträge
35
Diamanten
250
Hallo, Ich benötige Hilfe im Thema zu Programmieren in Eclipse.
Ich programmiere aktuell ein Plugin mit dem man sich zu einem Bus senden kann.
In einer Config sind alle Bushaltestellen gelistet mit Preis Zeit zum Fahren und Position.
(Preis und Zeit kommen noch)
Der Bus ist auch gesetzt mein problem ist das wenn ein 2ter Spieler den Bus betritt und ein anderer Spieler den Bus verässt für alle Spieler die taskID beendet wird. Gibt es eine Möglichkeit diese ID so zu machen, das die sie nur für Einzelne Spieler gilt oder so... Ich bin nicht so gut im Programmieren und eher ein Anfänger. Wäre als schon wenn mir jmd helfen könnte
Lg NiciToni


Der Command:
package me.nicitoni;

import java.sql.Array;
import java.util.List;

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

import net.md_5.bungee.api.ChatMessageType;
import net.md_5.bungee.api.chat.TextComponent;
import net.milkbowl.vault.economy.Economy;

public class Stationen implements CommandExecutor {
    private int taskID2;
    boolean gestartet = false;
    private int bustimerTask;
    FileConfiguration cfg = Main.getPlugin().getConfig();
    @Override
    public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {

        Player p = (Player) sender;
        if (p.hasPermission("bus.*")) {
            
            Economy eco = (Economy) Main.getEconomy();
            if (args[0].equalsIgnoreCase("setstation")) {
                cfg.set("Bushaltestellen." + args[1] + "", p.getLocation());
                Main.getPlugin().saveConfig();
                sender.sendMessage("§5[§fBus§5]§4: Du hast eine Bushaltestelle gesetzt  §4(§5" + args[1] + "§4)");

            }

            if (args[0].equalsIgnoreCase("send")) {

                Player target = Bukkit.getPlayer(args[2]);
                String bushaltestelle = args[1];
                if (cfg.isSet("Bushaltestellen." + bushaltestelle)
                        && ("Bushaltestellen." + bushaltestelle != "DELETED")) {
                    
                        target.sendMessage("§5[§fBus§5]§4: Du bist num im Bus nach " + bushaltestelle
                                + " Du bist in 15 Sekunden da");
                        target.teleport((Location) cfg.get("Bus.position"));
                        target.setCanPickupItems(false);
                        target.spigot().sendMessage(ChatMessageType.ACTION_BAR,
                                new TextComponent(ChatColor.AQUA + "Die Fahrt beginnt"));

                        taskID2 = Bukkit.getScheduler().scheduleSyncRepeatingTask(Main.getPlugin(), new Runnable() {
                            int count = 16;

                            @Override
                            public void run() {
                                count -= 1;

                                target.spigot().sendMessage(ChatMessageType.ACTION_BAR, new TextComponent(
                                        ChatColor.AQUA + "Du bist da in §4[§f" + count + "§4 Sekunden" + "§4]"));
                                if (count == 0) {
                                    target.teleport((Location) cfg.get("Bushaltestellen." + bushaltestelle + ""));
                                    Bukkit.getScheduler().cancelTask(taskID2);
                                    target.sendMessage("§5[§fBus§5]§4: Du bist nun angekommen das macht dann nun 15$");
                                    Bukkit.dispatchCommand(Bukkit.getConsoleSender(),
                                            "money take " + target.getName() + " 15");
                                    target.sendMessage("§4-------- Abrechnung --------");
                                    target.sendMessage("§4-- Abrechnung wegen: Busfahrt nach --");
                                    target.sendMessage("§4-- §b" + bushaltestelle + " §4---");
                                    target.sendMessage("§4-- Abrechnugsinformationen -----");
                                    target.sendMessage("§5-- Abgezogener Betrag - 15$    ");
                                    target.sendMessage("§4-- Name des Spielers " + target.getName() + "");
                                    target.sendMessage("§4-------- Abrechnung --------");
                                    target.setCanPickupItems(true);
                                    Bukkit.getScheduler().cancelTask(taskID2);
                                    if (!eco.hasAccount(target)) {
                                        eco.createPlayerAccount(target);
                                    }
                                    eco.withdrawPlayer(target, 15);
                                    
                                }

                            }
                        }, 0, 20);
                    
                } else {
                    target.sendMessage("§5[§fBus§5]§4: §fDiese Bushaltestelle gibt es nicht");
                }
            }
            if (args[0].equalsIgnoreCase("setbus")) {
                cfg.set("Bus.position", p.getLocation());
                Main.getPlugin().saveConfig();
                p.sendMessage("§5[§fBus§5]§4: Der Bus wurde gesetzt ");

            }
            if (args[0].equalsIgnoreCase("list")) {
                Array Bushaltestellen = (Array) cfg.get("Bushaltestellen");
                p.sendMessage(Bushaltestellen.toString());

            }
            if (args[0].equalsIgnoreCase("remove")) {
                Bukkit.broadcastMessage("ausgeführt");
                if (cfg.isSet("Bushaltestellen." + args[1])) {
                    cfg.set("Bushaltestellen." + args[1], "DELETED");
                    Main.getPlugin().saveConfig();
                }
            }

        }

        return false;
    }

    public void bustimerStarten(String[] args, CommandSender s) {
        if (gestartet = false) {
            gestartet = true;
            bustimerTask = Bukkit.getScheduler().scheduleSyncRepeatingTask(Main.getPlugin(), new Runnable() {

                @Override
                public void run() {
                
                    List<String> alle = cfg.getStringList("Bus.Fahrende.Name");
                    
                    
                }
                
            }, 0, 20);
                
            

        }
    }

}

Main Class:
package me.nicitoni;

import org.bukkit.plugin.PluginManager;
import org.bukkit.plugin.java.JavaPlugin;

import net.milkbowl.vault.chat.Chat;
import net.milkbowl.vault.permission.Permission;
import net.milkbowl.vault.economy.*;

public class Main extends JavaPlugin  {
    
    private static Main plugin;
    String chatN = "§f[§5Security]§f:";
    private static Economy econ = null;
    private static Permission perms = null;
    private static Chat chat = null;
    
    public void onEnable() {
        plugin = this;
        System.out.println("Handschellen: Plugin wurde geladen");
        getCommand("artzt").setExecutor(new Taser());
        getCommand("medic").setExecutor(new Krankenwagen());
        getCommand("busse").setExecutor(new Stationen());
        
        PluginManager pm = getServer().getPluginManager();
        
        pm.registerEvents(new KrangenwagenListener(), this);
        pm.registerEvents(new Bewussltlos(), this);
        pm.registerEvents(new RechungListener(), this);
    }
    
    public void onDisable() {
        System.out.println("Handschellen: Plugin wurde deaktiviert ");
    }
    public static Main getPlugin() {
        return plugin;
    }
    public static Economy getEconomy() {
        return econ;
    }
    
    public static Permission getPermissions() {
        return perms;
    }
    
    public static Chat getChat() {
        return chat;
    }


}
 

LegitAsDuck

Redstoneengineer
Registriert
14 Juli 2018
Beiträge
30
Diamanten
312
Wie schon jemand vor mir in einem deiner Beiträge schrib:
Ich kann dir nur ans Herz legen die Grundkenntnisse zu lernen und zu verstehen.
Man merkt ganz deutlich, dass du nicht weißt was du das tust, sondern einfach abtippst.
Kopier einfach den folgenden Code den ich abgeändert hab:
Code:
package me.nicitoni;

import java.sql.Array;
import java.util.List;

import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Location;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.entity.Player;
import org.bukkit.scheduler.BukkitRunnable;

import net.md_5.bungee.api.ChatMessageType;
import net.md_5.bungee.api.chat.TextComponent;
import net.milkbowl.vault.economy.Economy;

public class Stationen implements CommandExecutor {
    private int taskID2;
    boolean gestartet = false;
    private int bustimerTask;
    FileConfiguration cfg = Main.getPlugin().getConfig();
    @Override
    public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {

        Player p = (Player) sender;
        if (p.hasPermission("bus.*")) {
            
            Economy eco = (Economy) Main.getEconomy();
            if (args[0].equalsIgnoreCase("setstation")) {
                cfg.set("Bushaltestellen." + args[1] + "", p.getLocation());
                Main.getPlugin().saveConfig();
                sender.sendMessage("§5[§fBus§5]§4: Du hast eine Bushaltestelle gesetzt  §4(§5" + args[1] + "§4)");

            }

            if (args[0].equalsIgnoreCase("send")) {

                Player target = Bukkit.getPlayer(args[2]);
                String bushaltestelle = args[1];
                if (cfg.isSet("Bushaltestellen." + bushaltestelle)
                        && ("Bushaltestellen." + bushaltestelle != "DELETED")) {
                    
                        target.sendMessage("§5[§fBus§5]§4: Du bist num im Bus nach " + bushaltestelle
                                + " Du bist in 15 Sekunden da");
                        target.teleport((Location) cfg.get("Bus.position"));
                        target.setCanPickupItems(false);
                        target.spigot().sendMessage(ChatMessageType.ACTION_BAR,
                                new TextComponent(ChatColor.AQUA + "Die Fahrt beginnt"));
                        BukkitRunnable bk = (BukkitRunnable) new BukkitRunnable() {
                            int count = 16;
                            @Override
                            public void run() {
                                count -= 1;

                                target.spigot().sendMessage(ChatMessageType.ACTION_BAR, new TextComponent(
                                        ChatColor.AQUA + "Du bist da in §4[§f" + count + "§4 Sekunden" + "§4]"));
                                if (count == 0) {
                                    target.teleport((Location) cfg.get("Bushaltestellen." + bushaltestelle + ""));
                                    Bukkit.getScheduler().cancelTask(taskID2);
                                    target.sendMessage("§5[§fBus§5]§4: Du bist nun angekommen das macht dann nun 15$");
                                    Bukkit.dispatchCommand(Bukkit.getConsoleSender(),
                                            "money take " + target.getName() + " 15");
                                    target.sendMessage("§4-------- Abrechnung --------");
                                    target.sendMessage("§4-- Abrechnung wegen: Busfahrt nach --");
                                    target.sendMessage("§4-- §b" + bushaltestelle + " §4---");
                                    target.sendMessage("§4-- Abrechnugsinformationen -----");
                                    target.sendMessage("§5-- Abgezogener Betrag - 15$    ");
                                    target.sendMessage("§4-- Name des Spielers " + target.getName() + "");
                                    target.sendMessage("§4-------- Abrechnung --------");
                                    target.setCanPickupItems(true);
                                    Bukkit.getScheduler().cancelTask(taskID2);
                                    if (!eco.hasAccount(target)) {
                                        eco.createPlayerAccount(target);
                                    }
                                    eco.withdrawPlayer(target, 15);
                                    
                                }
                            }
                        }.runTaskTimer(Main.getPlugin(Main.class), 0, 20);
                    
                    
                } else {
                    target.sendMessage("§5[§fBus§5]§4: §fDiese Bushaltestelle gibt es nicht");
                }
            }
            if (args[0].equalsIgnoreCase("setbus")) {
                cfg.set("Bus.position", p.getLocation());
                Main.getPlugin().saveConfig();
                p.sendMessage("§5[§fBus§5]§4: Der Bus wurde gesetzt ");

            }
            if (args[0].equalsIgnoreCase("list")) {
                Array Bushaltestellen = (Array) cfg.get("Bushaltestellen");
                p.sendMessage(Bushaltestellen.toString());

            }
            if (args[0].equalsIgnoreCase("remove")) {
                Bukkit.broadcastMessage("ausgeführt");
                if (cfg.isSet("Bushaltestellen." + args[1])) {
                    cfg.set("Bushaltestellen." + args[1], "DELETED");
                    Main.getPlugin().saveConfig();
                }
            }

        }

        return false;
    }

    public void bustimerStarten(String[] args, CommandSender s) {
        if (gestartet = false) {
            gestartet = true;
            bustimerTask = Bukkit.getScheduler().scheduleSyncRepeatingTask(Main.getPlugin(), new Runnable() {

                @Override
                public void run() {
                
                    List<String> alle = cfg.getStringList("Bus.Fahrende.Name");
                    
                    
                }
                
            }, 0, 20);
                
            

        }
    }

}

So schaffst du es dein Fortschritt in der Programmierung klein zu halten und in 20 Jahren bist du vielleicht bei der Objektorientierung angekommen
 

abcabc

Redstoneengineer
Registriert
2 Mai 2018
Beiträge
35
Diamanten
250
Hallo,
Vielen Dank für deine Hilfe.
Ich weiss das ich schlecht bin und noch herum probiere. Ich mache das als kleines Hobby und probiere Sachen aus.
Mein Ziel ist es nicht direkt die OOP zu lernen. Ich hätte noch ne letzt Frage. Wie kann ich die Task Stoppen weil wenn man ankommt / Der Timer bei 0 ist läuftt er einfach im Minusberreich weiter. Liebe Grüsse
NiciToni
 
Oben