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

prog266

Moderator im Ruhestand

  • "prog266" started this thread

Posts: 7,603

Thanks: 476

  • Send private message

1

Tuesday, June 5th 2012, 7:19pm

Hier ein Ausschnitt einer meiner Plugins. Falls du etwas nicht verstehst, steht dir Google sofort zur Verfügung.

PHP Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
    @EventHandler
    public void onPlayerChat(PlayerChatEvent event) {
        //World Filter
        if(plugin.config.getBoolean("worldFilter")) {
            for(String word plugin.config.getStringList("blockedWords")) {
                if(mess.contains(word.toLowerCase())) {
                    player.sendMessage(ChatColor.RED word "? Oh no.. Badword in your Sentences! I refuse me to send this ..!");
                    event.setCancelled(true);
                    return;
                }
            }
        }

    }

Das ist einfach eine Schleife, in der die Wörter der Config verglichen werden.

MFG

prog266

Moderator im Ruhestand

  • "prog266" started this thread

Posts: 7,603

Thanks: 476

  • Send private message

2

Tuesday, June 5th 2012, 7:37pm

Wie siehts mit deiner Eigeninitiative aus..?
--> http://wiki.bukkit.org/Introduction_to_the_New_Event_System

MFG

prog266

Moderator im Ruhestand

  • "prog266" started this thread

Posts: 7,603

Thanks: 476

  • Send private message

3

Tuesday, June 5th 2012, 9:07pm

Du erstellst eine neue Klasse, in der du die Klasse "Listener" implementierst. In deiner Hauptklasse registrierst du dann die Events mit der Methode registerEvents(Plugin, EventListener) der Klasse PluginManager.

Spoiler Spoiler

PHP 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
import org.bukkit.ChatColor;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerChatEvent;

public class ChatListener implements Listener {
    
    private Plugin plugin;

    public ChatListener(Plugin plugin) {
        this.plugin plugin;
    }
    
    @EventHandler
    public void onPlayerChat(PlayerChatEvent event) {

        //General
        String message event.getMessage();
        String mess event.getMessage().toLowerCase();
        Player player event.getPlayer();
        
        //Word Filter
        if(plugin.config.getBoolean("wordFilter")) {
            for(String word plugin.config.getStringList("blockedWords")) {
                if(mess.contains(word.toLowerCase())) {
                    player.sendMessage(ChatColor.RED word "? Oh no.. Badword in your Sentences! I refuse me to send this ..!");
                    event.setCancelled(true);
                    return;
                }
            }
        }

    }
}

Das ist nur ein Beispiel. Nicht zum kopieren gedacht. Registrieren von Events läuft folgendermaßen ab:

PHP Source code

1
getServer().getPluginManager().registerEvents(this, Class);


MFG

prog266

Moderator im Ruhestand

  • "prog266" started this thread

Posts: 7,603

Thanks: 476

  • Send private message

4

Tuesday, June 5th 2012, 9:27pm

Und welche Fehler kommen denn?
Und mit was hast du dich "vertippt"?

MFG

Stuppsman

User / Kunde

Posts: 2,766

Thanks: 25

  • Send private message

5

Wednesday, June 6th 2012, 12:05am

Danach habe ich mich vertippt und nun geht nichtsmehr :/



:thumbsup: Wieso machstn das "vertippte" dann nicht weg? :D

Aber so rum funktioniert das wahrscheinlich nicht.. Du wirst uns schon deinen Code zeigen müssen (Übern "Quellcode"-Teil nicht übern "Editor" als PHP-Code formatiert) - auch wenn hier manche Leute in letzter Zeit ziemlich zerrissen werden, wenn se sich nicht anstrengen. In meinem Tutorial ist ein ganz ähnlicher Fall geschildert, auch wenn ich zugeben muss, dass der Listener etwas kurz kommt in der Beschreibung. Trotzdem wird das PlayerChatEvent benutzt - performCommand wollteste auch mal in Aktion sehn. Also ich denk, da sollteste schonmal etwas weiter mit kommen.

Dein Problem wird sein, dass der player sich, wenn du player.performCommand("<befehl ohne slash>") benutzt, selbst verwarnen muss - und da krichste nen logisches Permissions-problem - sonst können die auch andere verwarnen. (Oder du machst es etwas komplizierter mit mehreren Permissions) Aber irgendwer hier wird schon wissen, wie der Server den Command ausführen kann, dann kannste dir das schonma sparen.
Nein, ich hab kein Skype.. bei Interesse an einer privaten Unterrichtsstunde, wende dich bitte direkt an mein Team! 8)

bluefreaklp

User / Kunde

Posts: 292

  • Send private message

6

Tuesday, June 12th 2012, 3:26pm

... In der Bukkit Wiki gibs ein Tutorial wie man ein Plugin erstellt...

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