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

Broadcaster - Dein Auto Messager

StarDrink

Redstoneengineer
Registriert
9 September 2011
Beiträge
37
Diamanten
0
Minecraft
StarDrink
Hallo Zusammen,

Da mir in letzter Zeit ziemlich langweilig war, und auch nicht viel zu tun hatte habe ich nun ein Auto-Message Plugin für euch gemacht. Dies ist komplett auf Deutsch, die Texte sind in einer Datei änderbar. Nun ein paar Informationen.

Features
  • Automatisches Senden eigener Nachrichten
  • Falls Fehler, Anzeige in der Konsole
  • Permissions
  • Nachrichten editierbar

Kommandos
  • /start --> Aktiviert das Senden der Nachrichten
  • /stop --> Deaktiviert das Senden der Nachrichten

Permissions
  • bc.* --> Permission, die alle Kommandos erlaubt
  • bc.start --> Permission zum Starten ( Senden der Nachrichten aktivieren )
  • bc.stop --> Permission zum Stoppen ( Senden der Nachrichten deaktivieren )

Lizenz
  • Es ist euch erlaubt das Plugin für euren eigenen Server zu benutzen
  • Es ist euch nicht erlaubt das Plugin ohne Einverständnis zu verändern
  • Es ist euch nicht erlaubt das Plugin zu verkaufen

WICHTIG
  • Bei dem ersten Start wird ein Ordner mit einer Config generiert. Dort könnt ihr paar Dinge ändern.
  • Um das Plugin gangbar zu machen, müsst ihr IN DEM ORDNER eine Textdatei namens messages erstellen
  • In dieser Textdatei könnt ihr nun eure Texte festlegen. Zeilenumbruch wird erkannt

Changelog
  • Beta 1.0 : Nocht nicht zum Download, jegliche Bugfixes sowie weitere Features
  • Alpha 1.2: Nocht nicht zum Download. messages.txt wird automatisch generiert, neue Kommandos
  • Alpha 1.0: Bereits zum Download, komplett aufgebaut

Autor(en)
  • StarDrink


Downloads
  • Alpha 1.0:
    Info: Dies ist eine Zip-Datei. Entpacken und beide Dateien in den Plugins-Ordner hochladen. Somit muss keine messages.txt erstellt werden
    Download Alpha 1.0
 
Zuletzt bearbeitet:

Mrcookie008

Braumeister
Registriert
15 Dezember 2011
Beiträge
380
Diamanten
0
Minecraft
xCookieZz oder Mrcookie008 (Beides Premium)
Ein Simpler Automessager gibts zwar genug, trotzdem schön =)
 

Sn0wBlizz4rd

Braumeister
Registriert
26 September 2012
Beiträge
418
Diamanten
1
Minecraft
Sn0wBlizz4rd
Sorry, aber das sieht mir so aus, als hättest du einfach 90% des Codes von DeBukkit abgeschrieben...
Trotzdem, weiter so!
 

Crafter6432

Workaholic
Registriert
22 Dezember 2011
Beiträge
681
Diamanten
1
Code:
/stop ?

Du überschreibst also den Stop Befehl von Bukkit, was ist wenn ich meinen Server mal ausmachen will ?
 

Plugin00

Kuhfänger
Registriert
3 Februar 2013
Beiträge
71
Diamanten
0
Hmm sehr Stark von DeBukkit nach geschreiben,

DeBukkit's Code:
Code:
package me.DeBukkIt.Broadcaster;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.LineNumberReader;

import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;

public class Broadcaster extends JavaPlugin {

	public static Broadcaster plugin;
	public static int AktuelleZeile = 0;
	public static int ID = 0;
	public static boolean rennt = true;
	public static long Intervall = 10;
	
	@Override
	public void onDisable(){
		
	}
	
	@Override
	public void onEnable(){
		ID = Bukkit.getScheduler().scheduleSyncRepeatingTask(this, new Runnable(){
			public void run(){
				try{
					broadcastMessages("plugins/Broadcaster/messages.txt");
				} catch(IOException e){
					System.err.println("Broadcaster could not broadcast message.");
					System.err.println("Stopping Broadcaster...");
					Bukkit.getScheduler().cancelTask(ID);
					rennt = false;
				}
			}
		}, /*Verzögerung nach Server-Start*/ 0, /*Server-Ticks, da meistens 20 Ticks/sec*/ Intervall * 20);
	}
	
	@SuppressWarnings("resource")
	private static void broadcastMessages(String dateiName) throws IOException{
		FileInputStream file = new FileInputStream(dateiName);
		BufferedReader reader = new BufferedReader(new InputStreamReader(file));
		
		for(int i = 0; i < AktuelleZeile; i++){
			reader.readLine();
		}
		String line = reader.readLine();
		//Farb-Korrekturen
		line = line.replaceAll("&a", ChatColor.GREEN + "");
		line = line.replaceAll("&c", ChatColor.RED + "");
		line = line.replaceAll("&f", ChatColor.WHITE + "");
		line = line.replaceAll("&6", ChatColor.GOLD + "");
		
		Bukkit.getServer().broadcastMessage(ChatColor.WHITE + "[" + ChatColor.GREEN + "Info" + ChatColor.WHITE + "] " + ChatColor.RESET + line);
		
		LineNumberReader lnr = new LineNumberReader(new FileReader(new File(dateiName)));
		lnr.skip(Long.MAX_VALUE);
		int lastLine = lnr.getLineNumber();
		if(AktuelleZeile + 1 == lastLine + 1){
			AktuelleZeile = 0;
		} else {
			AktuelleZeile++;
		}
		
		
	}
	
	public boolean onCommand(CommandSender sender, Command cmd, String cmdLabel, String[] args){
		
		Player p = (Player) sender;
		
		if(cmd.getName().equalsIgnoreCase("broadcast")){
			if(!(args.length == 1)){
				return false;
			} else {
				if(args[0].equalsIgnoreCase("stop")){
					if(rennt){
						Bukkit.getServer().getScheduler().cancelTask(ID);
						p.sendMessage("Angehalten.");
						rennt = false;
						return true;
					} else {
						p.sendMessage("Bereits angehalten.");
						return true;
					}
				}
				if(args[0].equalsIgnoreCase("start")){
					if(rennt){
						p.sendMessage("Läuft bereits.");
					} else {
						p.sendMessage("Starte Broadcaster...");
							ID = Bukkit.getScheduler().scheduleSyncRepeatingTask(this, new Runnable(){
								public void run(){
									try{
										broadcastMessages("plugins/Broadcaster/messages.txt");
									} catch(IOException e){
										System.err.println("Broadcaster could not broadcast message.");
										System.err.println("Stopping Broadcaster...");
										Bukkit.getScheduler().cancelTask(ID);
									}
								}
							}, /*Verzögerung nach Server-Start*/ 0, /*Server-Ticks, da meistens 20 Ticks/sec*/ Intervall * 20);
						rennt = true;
						p.sendMessage("Gestartet.");
					}
				}
			}
		}
		return false;		
	}
}
Dein Code:

Code:
package me.schertel.Broadcaster;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.LineNumberReader;
import java.util.logging.Logger;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Server;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.file.FileConfigurationOptions;
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.scheduler.BukkitScheduler;

public final class Broadcaster extends JavaPlugin
{
  Logger log = Bukkit.getLogger();
  public static Broadcaster plugin;
  public static int AktuelleZeile = 0;
  public static int ID = 0;
  public static boolean rennt = true;
  public static long Intervall = 10L;

  public void onDisable()
  {
  }

  public void onEnable()
  {
    loadConfig();
    ID = Bukkit.getScheduler().scheduleSyncRepeatingTask(this, new Runnable() {
      public void run() {
        try {
          Broadcaster.broadcastMessages("plugins/Broadcaster/messages.txt");
        } catch (IOException e) {
          Broadcaster.this.getLogger().info("Broadcaster hat die Textdatei nicht gefunden");
          Broadcaster.this.getLogger().info("Broadcaster wird gestoppt...");
          Bukkit.getScheduler().cancelTask(Broadcaster.ID);
          Broadcaster.rennt = false;
        }
      }
    }
    , 0L, Intervall * 20L);
  }

  private static void broadcastMessages(String dateiName)
    throws IOException
  {
    FileInputStream file = new FileInputStream(dateiName);
    BufferedReader reader = new BufferedReader(new InputStreamReader(file));

    for (int i = 0; i < AktuelleZeile; i++) {
      reader.readLine();
    }
    String line = reader.readLine();

    line = line.replaceAll("&a", ChatColor.GREEN + "");
    line = line.replaceAll("&c", ChatColor.RED + "");
    line = line.replaceAll("&f", ChatColor.WHITE + "");
    line = line.replaceAll("&6", ChatColor.GOLD + "");

    Bukkit.getServer().broadcastMessage(ChatColor.WHITE + "[" + ChatColor.GREEN + "Info" + ChatColor.WHITE + "] " + ChatColor.RESET + line);

    LineNumberReader lnr = new LineNumberReader(new FileReader(new File(dateiName)));
    lnr.skip(9223372036854775807L);
    int lastLine = lnr.getLineNumber();
    if (AktuelleZeile + 1 == lastLine + 1)
      AktuelleZeile = 0;
    else
      AktuelleZeile += 1;
  }

  public boolean onCommand(CommandSender sender, Command cmd, String cmdLabel, String[] args)
  {
    Player p = (Player)sender;

    if (cmd.getName().equalsIgnoreCase("broadcast")) {
      String i = getConfig().getString("Start/Stop");
      int u = getConfig().getInt("SchnelligkeitSenden");
      if (args.length != 1) {
        if (p.hasPermission("bc.*"))
          return false;
      } else {
        if ((args[0].equalsIgnoreCase("stop")) && 
          (p.hasPermission("bc.stop"))) {
          if (rennt) {
            Bukkit.getServer().getScheduler().cancelTask(ID);
            p.sendMessage("i");
            rennt = false;
            return true;
          }
          p.sendMessage("i");
          return true;
        }

        if ((args[0].equalsIgnoreCase("start")) && 
          (p.hasPermission("bc.start"))) {
          if (rennt) {
            p.sendMessage("i");
          } else {
            p.sendMessage("i");
            ID = Bukkit.getScheduler().scheduleSyncRepeatingTask(this, new Runnable() {
              public void run() {
                try {
                  Broadcaster.broadcastMessages("plugins/Broadcaster/messages.txt");
                } catch (IOException e) {
                  Broadcaster.this.getLogger().info("Konnte keine Messages verbreiten...");
                  Broadcaster.this.getLogger().info("Stoppe Broadcaster...");
                  Bukkit.getScheduler().cancelTask(Broadcaster.ID);
                }
              }
            }
            , 0L, Intervall * u);

            rennt = true;
            p.sendMessage("i");
          }
        }
      }
    }

    return false;
  }

  private void loadConfig()
  {
    FileConfiguration cfg = getConfig();
    cfg.options().copyDefaults(true);
    saveConfig();
  }
}

Und da mit will ich nicht sagen das "Du", Nicht Programmieren kannst, Ich will da mit nur sagen, Das es kein sinn hat was Wie von "DeBukkit" Oder wo andars, Denn Code zu "nehmen",
 

StarDrink

Redstoneengineer
Registriert
9 September 2011
Beiträge
37
Diamanten
0
Minecraft
StarDrink
Hallo,

Ich bin noch Anfänger im Programmieren, ich versuche es so zu lernen. Sorry :-(

Zu dem Thema /stop. Dieser Kommand wird in der Alpha 1.2 mit /mstop ausgetauscht, somit ist der normale Server-Stop wieder möglich.
 

Mrcookie008

Braumeister
Registriert
15 Dezember 2011
Beiträge
380
Diamanten
0
Minecraft
xCookieZz oder Mrcookie008 (Beides Premium)
Ich würde dir ehrlich gesagt nicht DeBukkit empfehlen.. 70% von dem was er erzählt ist totaler Mist..

Lern lieber Java mit Büchern oder wenn du nur die BukkitAPI beherrschen willst lerne von Youtubern wie:

Postcrafter
EsrilMC
Juscroopro

etc.

Aber bitte nicht von DeBukkit >_>
Allein schon sein boolean = erfolg(); hat mich umgehauen :p

(Und ja klein Cookie hat anfangs auch von DeBukkit gelernt, bis er im Forum des öfteren "Freundlich" darauf hingewießen wurde das er nicht wirklich tolles zeug erzählt, was ich heute bestätigen kann :p)

LG.
 
Zuletzt bearbeitet:

StarDrink

Redstoneengineer
Registriert
9 September 2011
Beiträge
37
Diamanten
0
Minecraft
StarDrink
Ich würde dir ehrlich gesagt nicht DeBukkit empfehlen.. 70% von dem was er erzählt ist totaler Mist..

Lern lieber Java mit Büchern oder wenn du nur die BukkitAPI beherrschen willst lerne von Youtubern wie:

Postcrafter
EsrilMC
Juscroopro

etc.

Aber bitte nicht von DeBukkit >_>
Allein schon sein boolean = erfolg(); hat mich umgehauen :p

(Und ja klein Cookie hat anfangs auch von DeBukkit gelernt, bis er im Forum des öfteren "Freundlich" darauf hingewießen wurde das er nicht wirklich tolles zeug erzählt, was ich heute bestätigen kann :p)

LG.

Mach ich auch nichtmehr ;-) Hab jetzt von jemanden *ZENSORED* einen Link zu einem Java Buch bekommen. Ich update das Plugin weiterhin mit dem "Noobi" Code, werde die nächsten Plugins mit einem Code machen, den man dann auch anschauen kann ;-)
 

hobibi

Kuhfänger
Registriert
21 November 2011
Beiträge
58
Alter
29
Diamanten
0
Minecraft
Hobibi
Japp das stimmt das selbe habe ich mir auch gedacht weil ich mir DeBukkits Tutorials auch anschaue aber lerne lieber aus dem buch Klick mich

Fullquote entfernt by Cabraca
 
Zuletzt bearbeitet von einem Moderator:

StarDrink

Redstoneengineer
Registriert
9 September 2011
Beiträge
37
Diamanten
0
Minecraft
StarDrink
Hi,

Jop das mache ich auch. Ich schau keine Videos mehr von dem. Mein Code ist nun komplett anders. Zum Alpha 1.2 update dauert es noch bisschen da ich nebenbei noch eine App programmieren muss.
 
A

Adrian1999

Guest
Copy'n'paste

Hey leute,

Wollte nur nochmal sagen das das genze hier eine kleine lügerei ist ;)
Er hat ganz einfach den Code von DeBukkit genommen.
In diesem fall ist jedes kind besser im coden als er den strg +c und strg +v wird wohl jeder können :D
Viel Spaß noch beim copieren weiterer Plugins...
 

Galliar12

Kuhfänger
Registriert
16 Juli 2011
Beiträge
85
Diamanten
0
Minecraft
Galliar12
oh mein gott :O Die größte Offenbarung seit der Computer erfunden wurde *ironie off*

Nein ehrlich, lies dir mal die vorherigen Kommentare durch :rolleyes:
 

ScaryHutman

Vorarbeiter
Registriert
1 Januar 2013
Beiträge
205
Diamanten
0
Minecraft
Scary_Hutman
Ob hier nun Code kopiert wurde ist doch eher zweitrangig. Jeder hat einmal klein angefangen und muss langsam ein Gefühl für's Programmieren entwickeln. DeBukkit's Code ist zwar nicht der Beste, aber zu Anfangen reicht er. Wer sich anfangs an anderem Code orientiert handelt aus meiner Sicht verantwortungsbewusster, da er nicht einfach drauflos schreibt, sondern lernt wie man Probleme am "Besten" lösen kann. Optimieren kann man später immer noch.

ScaryHutman
 

StarDrink

Redstoneengineer
Registriert
9 September 2011
Beiträge
37
Diamanten
0
Minecraft
StarDrink
Hi,

Danke @ScaryHutman.

@Adrian: Nur weil du deinen Server eh nie zum laufen bringst und mich in Skype blockiert hast, kann ich nun in Ruhe sagen, dass du erstmal MIT Video nen Code schreiben sollst. Nichtmal das schaffst du. Auch wenn ich hierfür das Risiko einer Verwarnung eingehe. PS: Nochmal zu dem Thema.. Wer Lesen kann ist klar im Vorteil

@All: Update wird noch ca. 3 Tage dauern.
 
Oben