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

Was habe ich falsch gemacht... :/

TommyboyTV

Redstoneengineer
Mitglied seit
Sep 19, 2017
Beiträge
36
Bewertungen
1
#1
Hey Leute!
Ich würde gerne wissen, was ich hier falsch gemacht habe:
[JUSTIFY]
Player p = (Player)sender;

StringBuilder text = new StringBuilder();
for(int i = 0 ; i < args.length ; i++) {
text.append(args).append("");

if(p.hasPermission("Admin")) {
if(p.getName().equalsIgnoreCase("Adminchat")) {
for (Player target : Bukkit.getServer().getOnlinePlayers()) {
if (target.hasPermission("Admin")) {
target.sendMessage("§4[ADMINCHAT] " + sender.getName() + args);
[/JUSTIFY]
 

moinless

Schafhirte
Mitglied seit
Okt 4, 2013
Beiträge
102
Bewertungen
69
#2
Es wäre von Vorteil, wenn du die ganze Klasse schicken könntest und sagen könntest, was sie machen soll.

Trotzdem würde ich raten, dass du in dieser Zeile etwas verwechselt hast:
if(p.getName().equalsIgnoreCase("Adminchat")) {
Ich denke mal, du möchtest den eingegeben Command erhalten, nicht den Namen des Spielers?
 

TommyboyTV

Redstoneengineer
Mitglied seit
Sep 19, 2017
Beiträge
36
Bewertungen
1
#3
Jo, das habe ich mitlerweile auch schon gemerkt und korrigiert.
Hier @moinless :
package chats;

import org.bukkit.Bukkit;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;

public class Chats implements CommandExecutor {

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

Player p = (Player)sender;

StringBuilder text = new StringBuilder();
for(int i = 0 ; i < args.length ; i++) {
text.append(args).append("");

if(p.hasPermission("Admin")) {
if(cmd.getName().equalsIgnoreCase("Adminchat")) {
for (Player target : Bukkit.getServer().getOnlinePlayers()) {
if (target.hasPermission("Admin")) {
target.sendMessage("§4[ADMINCHAT] " + sender.getName() + args);
}
}
}
}

}



return false;
}

}
 
Zuletzt bearbeitet:
F

Figz

Guest
#4
1. Bitte benutze Code-Tags
2. Hast du immernoch nicht gesagt, was eigentlich dein Problem ist


3....:

Code:
if(cmd.getName().equalsIgnoreCase("Adminchat"))
{
  if(sender instanceof Player)
  {
    Player p = (Player)sender;
    if(p.hasPermission("Admin")
    {
      for(Player player : Bukkit.getOnlinePlayers())
      {
        if(player.hasPermission("Admin") { player.sendMessage("§4[ADMINCHAT] " + p.getName() + args); }
      }
    }
  }
}
 

TommyboyTV

Redstoneengineer
Mitglied seit
Sep 19, 2017
Beiträge
36
Bewertungen
1
#5
1. Bitte benutze Code-Tags
2. Hast du immernoch nicht gesagt, was eigentlich dein Problem ist
Mein Problem ist, dass ich nicht weiß, was das Problem ist :/


3....:

Code:
if(cmd.getName().equalsIgnoreCase("Adminchat"))
{
  if(sender instanceof Player)
  {
    Player p = (Player)sender;
    if(p.hasPermission("Admin")
    {
      for(Player player : Bukkit.getOnlinePlayers())
      {
        if(player.hasPermission("Admin") { player.sendMessage("§4[ADMINCHAT] " + p.getName() + args); }
      }
    }
  }
}
So funktionierts immer noch nicht :/
 

BlackHole

Workaholic
Mitglied seit
Jul 1, 2012
Beiträge
629
Bewertungen
199
Minecraft
BlackHole
#7
Ich sehe spontan zwei Fehler. "Richtig" wären die Zeilen so:
Code:
text.append(args[i]).append(" ");
Code:
target.sendMessage("§4[ADMINCHAT] " + sender.getName() + " " + text);
 

TommyboyTV

Redstoneengineer
Mitglied seit
Sep 19, 2017
Beiträge
36
Bewertungen
1
#8
Ich will machen dass es so zu sagen einen extra "chat" für Admins gibt, in den nur Admins was schreiben können und nur Admins es lesen können
 
F

Figz

Guest
#9
Ich will machen dass es so zu sagen einen extra "chat" für Admins gibt, in den nur Admins was schreiben können und nur Admins es lesen können
Das habe ich bereits verstanden, aber was funktioniert nicht? Bekommen die Spieler keine Nachricht? ist die Nachricht falsch aufgebaut? Bekommen falsche Spieler die Nachricht?
Ich sehe spontan zwei Fehler. "Richtig" wären die Zeilen so:
Code:
text.append(args[i]).append(" ");
Code:
target.sendMessage("§4[ADMINCHAT] " + sender.getName() + " " + text);
Eher Nebensache, was die Funktionalität angeht.
 
F

Figz

Guest
#11
Dann hat womöglich kein Spieler die Permission..?

Der Code passt auf jeden Fall. Vielleicht ist der Command nicht registriert?
 
F

Figz

Guest
#13
Ich glaube dass es ganz entscheidend ist, ob ein Spieler den richtigen Text ausgegeben bekommt oder .toString() eines Arrays.
Entschuldige, da hast du recht. Habe mich verlesen und nicht gesehen, dass du args zu text geändert hast. Trotz allem hat es nix damit zu tun, ob der Spieler die Nachricht erhält oder nicht ^^
 

Arthweran

Minecrafter
Mitglied seit
Jan 13, 2013
Beiträge
23
Bewertungen
3
Minecraft
Arthweran
#14
Moin, ich denke mal das es daran liegt, das du unter deiner for Schleife (Da, wenn es in der for Schleife steht, die for Schleife nach dem ersten Durchlauf "abricht".) , ein "return true;" vergessen hast.
 
F

Figz

Guest
#15
Moin, ich denke mal das es daran liegt, das du unter deiner for Schleife (Da, wenn es in der for Schleife steht, die for Schleife nach dem ersten Durchlauf "abricht".) , ein "return true;" vergessen hast.
Das bewirkt nur, dass der Spieler eine Meldung bekommt "/Adminchat". Der Code der dort ist sollte trotzdem ausgeführt werden.

An den TE, poste mal deine plugin.yml ...
 

TommyboyTV

Redstoneengineer
Mitglied seit
Sep 19, 2017
Beiträge
36
Bewertungen
1
#16
Das bewirkt nur, dass der Spieler eine Meldung bekommt "/Adminchat". Der Code der dort ist sollte trotzdem ausgeführt werden.

An den TE, poste mal deine plugin.yml ...
Hier: (Hab das von der Frage dick gemacht)
name: BC
authors: [Tommyboy004]
version: 1.1
main: at.Tom.main.main
commands:
vote:
antrag:
antragannehmen:
money:
pay:
Adminchat:
aliases: [AC]
Rundruf:
aliases: [say]
Call:
permissions:
Admin:
 
Zuletzt bearbeitet:

Baba43

Ehem. Teammitglied
Ehem. Teammitglied
Mitglied seit
Nov 5, 2012
Beiträge
753
Bewertungen
503
#17
Kommen die Nachrichten denn an, wenn du die Prüfung der Berechtigung raus nimmst (wahlweise an jeweils einer Stelle und an beiden Stellen)?
 
F

Figz

Guest
#19
das Problem ist folgendes: Deine Plugin.yml ist falsch aufgebaut..
Du kannst nicht jeden Command hintereinander schreiben, du musst mindestrens eine Beschreibung dahinter haben oder eine usage..

In dem Link findest du den korrekten part der commands (leerzeichen sind wichtig)

https://pastebin.com/varGvzZp

aliases kannst du natürlich auch mit reinschreiben, habe ich jetzt nicht getan.
 

BlackHole

Workaholic
Mitglied seit
Jul 1, 2012
Beiträge
629
Bewertungen
199
Minecraft
BlackHole
#20
Die Eigenschaften von Befehlen dürften in der plugin.yml durchaus leer sein. Die Zeilen mit "usage" sind also unötig.

@TommyboyTV Bitte verwende für deinen Quellcode und YAML-Dateien immer Codeblöcke. Dazu schreibst du ohne Leerzeichen davor [ code ] und dahinter [ /code ]. Wie dir vielleicht im ersten Beitrag auffällt wurde ein [ i ] als Beginn von kursiven Text interpretiert. Bei YAML kommt es auf jedes Leerzeichen an.

Ich vermute mal, dass du Spielern die Gruppe "Admin" zugewiesen hast, diese aber nicht über eine gesetzte Permission "Admin" verfügen. Belese dich doch mal bei dem von dir verwendeten Permissionsplugin, wie du einer Gruppe eine Permission zuweist. Ich würde dir aber auch empfhelen, einen besseren Namen für diese Permission zu verwenden. Also z.B. "tom.adminchat".
 
Allgemein
Help Benutzer
    KleinerStern☆ KleinerStern☆: Richtig CowBot
    Oben