Skocz do zawartości

Pomoc w pluginie


ScoreBoard

Rekomendowane odpowiedzi

https://hastebin.com/sesowakebu.java powinno działać teraz jest tak że

if(!chat){
Bukkit.broadcastMessage("§a§lChat zostal wlaczony!");
Bukkit.broadcastMessage("§9§lPlugin na chat by JesteCzlowieke");
       chat = true;
return true;
}
jeśli chat jest off to go włączy
ale jak zrobisz
/chat on
/chat on
to drugie /chat on nic nie pokaze, mogą być gdzies literówki bo na telefonie to robiłem

Co ja tutaj robie...

Odnośnik do komentarza
Udostępnij na innych stronach

Popierdolony ten kod twój jakiś. 

 

https://hastebin.com/ivakayipot.java

i życie staje się prostsze. 

hmm zamiast tego:

    private static char[] chars;
 
    static {
        chars = new char[7680];
        Arrays.fill(chars, ' ');
    }
i
Bukkit.broadcastMessage(String.valueOf(chars));
nie łatwiej
for(int i=0;i<100;i++){
Bukkit.broadcastMessage(" ");
}
?

Co ja tutaj robie...

Odnośnik do komentarza
Udostępnij na innych stronach

 

Popierdolony ten kod twój jakiś. 

 

https://hastebin.com/ivakayipot.java

i życie staje się prostsze. 

hmm zamiast tego:

    private static char[] chars;
 
    static {
        chars = new char[7680];
        Arrays.fill(chars, ' ');
    }
i
Bukkit.broadcastMessage(String.valueOf(chars));
nie łatwiej
for(int i=0;i<100;i++){
Bukkit.broadcastMessage(" ");
}
?

 

Moje rozwiązanie jest dokładnie 100x szybsze (c**j że małe ilości! Bądźmy jak goto!). Wysyłasz 100 razy pakiet od czatu do wszystkich graczy na serwerze, ugh. Dużo optymalniejsze jest tworzenie na początku listy pustych charów o wielkości 7680 (mniej więcej zapełnia cały czat) i wysyłanie już później gotowej listy, jednym pakietem. Może dla poczatkującego troche dziwne, i oczywiście broadcast 100 razy też może być, ale ja wolę używać tej metody ;P

 

@Edit @dekros123

+ broadcastMessage wysyła wiadomość również do konsoli, a chyba nie chcesz mieć czyszczenia konsoli?;P

Moja oficjalna strona! :)

http://socketbyte.pl/ 

Odnośnik do komentarza
Udostępnij na innych stronach

Co to za kod lol

 

I wgl po co wszedzie przy wykonaniu komendy "plugin by ..", jesli bedziesz gdzies go udostepnial to napewno nikt go nie wezmie, jesli na wlasny serwer, to graczy takie cos wku*wia..

 

❤ MC.PROPACRAFT.PL 


★ SKRYPTY ★


★ TECHNIK SERWERÓW MINECRAFT ★


✮ Pomogłem? Strzej lajka! ✮


 

Odnośnik do komentarza
Udostępnij na innych stronach

Co to za kod lol

 

I wgl po co wszedzie przy wykonaniu komendy "plugin by ..", jesli bedziesz gdzies go udostepnial to napewno nikt go nie wezmie, jesli na wlasny serwer, to graczy takie cos wku*wia..

 

Czemu oceniasz kod innych skoro Twoj ledwo łapie się pod podstawy javy? Dodatkowo nie odpowiedziales na jego pytanie.

 

@topic

Trudno zeby dzialalo skoro sprawdzasz czy chat jest on zeby go wlaczyc o.O.

if(args[0].equalsIgnoreCase("on")){
    if(chat){
        Bukkit.broadcastMessage("§a§lChat zostal wlaczony!");
        Bukkit.broadcastMessage("§9§lPlugin na chat by JesteCzlowieke");
        return true;
    }
    chat = true;
}

Zobacz sobie to, chociaż Adam podał lepsze rozwiązanie.

 

https://hastebin.com/hekomexuza.java

Odnośnik do komentarza
Udostępnij na innych stronach

Thardess , g8wno się znasz a znów komentujesz . Zapewne to co umiesz to public void onEnable i onDisable ...

Ty mnie nie ucz . Plugin będzie udostępniony , ponieważ mało jest takich pluginów w internecie , wincyj skryptów . Zauważ że nawet w paczkach pluginów jest informacja o autorze ...

 

Thardess ... , może Qubusiek , hę ?

Odnośnik do komentarza
Udostępnij na innych stronach

Po co refreshujesz? Ten kod jest lepszy niż to Twoje coś, użyj po prostu tego. 

+ jeżeli trzymasz się swojego to @dekros123 czy @1361622928-U485574.png__AHA__ podali ci już rozwiązania. 

 

 

 

Ty mnie nie ucz . Plugin będzie udostępniony , ponieważ mało jest takich pluginów w internecie , wincyj skryptów 

Mało? Gdzie ty żyjesz? W dziurze na końcu wszechświata? xD

Moja oficjalna strona! :)

http://socketbyte.pl/ 

Odnośnik do komentarza
Udostępnij na innych stronach

@scoreboard, serio ku*wa myslisz ze nie znam takich podstaw?

Widziales wgl moj kod? ponad 100+ linijek w jednej klasie, twoje ok. 20-30.

 

Moj kod ledwo lapie sie pod podstawy javy?

Np; klasa z pluginu ecore:

package me.entify.ecore.command.cmd;

import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender;
import me.entify.ecore.command.Command;
import me.entify.ecore.lang.Config;
import me.entify.ecore.lang.Lang;
import me.entify.ecore.managers.ChatManager;
import me.entify.ecore.utils.Util;

public class ChatCommand
  extends Command
{
  public ChatCommand()
  {
    super("chat", "zarzadzanie chatem", "/chat <cc|on|off|lvl>", "ecore.chat.admin", new String[] { "czat" });
  }
  
  public boolean onExecute(CommandSender sender, String[] args)
  {
    if (args.length < 1)
    {
      String msg = Lang.MSG_USAGE;
      msg = msg.replace("{USAGE}", getUsage());
      return Util.sendMsg(sender, msg);
    }
    if ((args[0].equalsIgnoreCase("cc")) || (args[0].equalsIgnoreCase("clear")) || (args[0].equalsIgnoreCase("wyczysc")))
    {
      if (args.length != 1)
      {
        String msg = Lang.MSG_USAGE;
        msg = msg.replace("{USAGE}", getUsage());
        return Util.sendMsg(sender, msg);
      }
      ChatManager.clearChat();
      String msg = Lang.MSG_CHAT_CC;
      msg = msg.replace("{PLAYER}", sender.getName());
      Bukkit.broadcastMessage(Util.fixColor(msg));
    }
    else
    {
      if (args[0].equalsIgnoreCase("lvl"))
      {
        if (args.length < 2)
        {
          String msg = Lang.MSG_USAGE;
          msg = msg.replace("{USAGE}", getUsage());
          return Util.sendMsg(sender, msg);
        }
        if (!Util.isInteger(args[1])) {
          return Util.sendMsg(sender, "&4Blad: &c" + args[1] + " to nie liczba!");
        }
        Config.setLVL(Integer.parseInt(args[1]));
        Bukkit.broadcastMessage(String.valueOf(Util.fixColor(new StringBuilder("&8� &7Administrator &3").append(sender.getName()).append(" &7ustawil poziom pisania od &3").append(args[1]).toString())) + " �7lvla");
        return Util.sendMsg(sender, "&8� &7Ustawiles lvl pisania od &6" + args[1]);
      }
      if ((args[0].equalsIgnoreCase("on")) || (args[0].equalsIgnoreCase("wlacz")))
      {
        if (args.length != 1)
        {
          String msg = Lang.MSG_USAGE;
          msg = msg.replace("{USAGE}", getUsage());
          return Util.sendMsg(sender, msg);
        }
        ChatManager.setChat(true);
        String msg = Lang.MSG_CHAT_ON;
        msg = msg.replace("{PLAYER}", sender.getName());
        Bukkit.broadcastMessage(Util.fixColor(msg));
      }
      else
      {
        if ((!args[0].equalsIgnoreCase("off")) && (!args[0].equalsIgnoreCase("wylacz")))
        {
          String msg = Lang.MSG_USAGE;
          msg = msg.replace("{USAGE}", getUsage());
          return Util.sendMsg(sender, msg);
        }
        if (args.length != 1)
        {
          String msg = Lang.MSG_USAGE;
          msg = msg.replace("{USAGE}", getUsage());
          return Util.sendMsg(sender, msg);
        }
        ChatManager.setChat(false);
        String msg = Lang.MSG_CHAT_OFF;
        msg = msg.replace("{PLAYER}", sender.getName());
        Bukkit.broadcastMessage(Util.fixColor(msg));
      }
    }
    return true;
  }
}

Jeden plik z klasy, na /chat.

 

@edit, znajac zycie to pewnie teraz podpierdolisz mi polowe kodu.

 

A co do onEnable i onDisable;

  public void onLoad()
  {
    plugin = this;
  }
  
  public void onEnable()
  {
    instance = this;
    if (!setupChat()) {
      Logger.warning(new String[] {"NIE ZNALEZIONO VAULT!" });
    }
// onEnable
  public void onDisable()
  {
    Bukkit.getScheduler().cancelTasks(this);
    Player[] arrayOfPlayer;
    int j = (arrayOfPlayer = Bukkit.getOnlinePlayers()).length;
    for (int i = 0; i < j; i++)
    {
      Player p = arrayOfPlayer[i];
      CombatManager.removePlayer(p);
      UserManager.leaveFromGame(p);
    }
    Bukkit.savePlayers();
    for (World w : Bukkit.getWorlds()) {
      w.save();
    }
// onDisable
// Randomowe wycinanie tekstu z klas, ponad 60+ klas w pluginie, kazdy po ok. 100+ linijek.
// Sam package me.entify.ecore.command.cmd - ma ponad 30 klas.
 

❤ MC.PROPACRAFT.PL 


★ SKRYPTY ★


★ TECHNIK SERWERÓW MINECRAFT ★


✮ Pomogłem? Strzej lajka! ✮


 

Odnośnik do komentarza
Udostępnij na innych stronach

 

@scoreboard, serio ku*wa myslisz ze nie znam takich podstaw?

Widziales wgl moj kod? ponad 100+ linijek w jednej klasie, twoje ok. 20-30.

 

Moj kod ledwo lapie sie pod podstawy javy?

Np; klasa z pluginu ecore:

package me.entify.ecore.command.cmd;

import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender;
import me.entify.ecore.command.Command;
import me.entify.ecore.lang.Config;
import me.entify.ecore.lang.Lang;
import me.entify.ecore.managers.ChatManager;
import me.entify.ecore.utils.Util;

public class ChatCommand
  extends Command
{
  public ChatCommand()
  {
    super("chat", "zarzadzanie chatem", "/chat <cc|on|off|lvl>", "ecore.chat.admin", new String[] { "czat" });
  }
  
  public boolean onExecute(CommandSender sender, String[] args)
  {
    if (args.length < 1)
    {
      String msg = Lang.MSG_USAGE;
      msg = msg.replace("{USAGE}", getUsage());
      return Util.sendMsg(sender, msg);
    }
    if ((args[0].equalsIgnoreCase("cc")) || (args[0].equalsIgnoreCase("clear")) || (args[0].equalsIgnoreCase("wyczysc")))
    {
      if (args.length != 1)
      {
        String msg = Lang.MSG_USAGE;
        msg = msg.replace("{USAGE}", getUsage());
        return Util.sendMsg(sender, msg);
      }
      ChatManager.clearChat();
      String msg = Lang.MSG_CHAT_CC;
      msg = msg.replace("{PLAYER}", sender.getName());
      Bukkit.broadcastMessage(Util.fixColor(msg));
    }
    else
    {
      if (args[0].equalsIgnoreCase("lvl"))
      {
        if (args.length < 2)
        {
          String msg = Lang.MSG_USAGE;
          msg = msg.replace("{USAGE}", getUsage());
          return Util.sendMsg(sender, msg);
        }
        if (!Util.isInteger(args[1])) {
          return Util.sendMsg(sender, "&4Blad: &c" + args[1] + " to nie liczba!");
        }
        Config.setLVL(Integer.parseInt(args[1]));
        Bukkit.broadcastMessage(String.valueOf(Util.fixColor(new StringBuilder("&8� &7Administrator &3").append(sender.getName()).append(" &7ustawil poziom pisania od &3").append(args[1]).toString())) + " �7lvla");
        return Util.sendMsg(sender, "&8� &7Ustawiles lvl pisania od &6" + args[1]);
      }
      if ((args[0].equalsIgnoreCase("on")) || (args[0].equalsIgnoreCase("wlacz")))
      {
        if (args.length != 1)
        {
          String msg = Lang.MSG_USAGE;
          msg = msg.replace("{USAGE}", getUsage());
          return Util.sendMsg(sender, msg);
        }
        ChatManager.setChat(true);
        String msg = Lang.MSG_CHAT_ON;
        msg = msg.replace("{PLAYER}", sender.getName());
        Bukkit.broadcastMessage(Util.fixColor(msg));
      }
      else
      {
        if ((!args[0].equalsIgnoreCase("off")) && (!args[0].equalsIgnoreCase("wylacz")))
        {
          String msg = Lang.MSG_USAGE;
          msg = msg.replace("{USAGE}", getUsage());
          return Util.sendMsg(sender, msg);
        }
        if (args.length != 1)
        {
          String msg = Lang.MSG_USAGE;
          msg = msg.replace("{USAGE}", getUsage());
          return Util.sendMsg(sender, msg);
        }
        ChatManager.setChat(false);
        String msg = Lang.MSG_CHAT_OFF;
        msg = msg.replace("{PLAYER}", sender.getName());
        Bukkit.broadcastMessage(Util.fixColor(msg));
      }
    }
    return true;
  }
}

Jeden plik z klasy, na /chat.

 

@edit, znajac zycie to pewnie teraz podpierdolisz mi polowe kodu.

 

A co do onEnable i onDisable;

  public void onLoad()
  {
    plugin = this;
  }
  
  public void onEnable()
  {
    instance = this;
    if (!setupChat()) {
      Logger.warning(new String[] {"NIE ZNALEZIONO VAULT!" });
    }
// onEnable
  public void onDisable()
  {
    Bukkit.getScheduler().cancelTasks(this);
    Player[] arrayOfPlayer;
    int j = (arrayOfPlayer = Bukkit.getOnlinePlayers()).length;
    for (int i = 0; i < j; i++)
    {
      Player p = arrayOfPlayer[i];
      CombatManager.removePlayer(p);
      UserManager.leaveFromGame(p);
    }
    Bukkit.savePlayers();
    for (World w : Bukkit.getWorlds()) {
      w.save();
    }
// onDisable
// Randomowe wycinanie tekstu z klas, ponad 60+ klas w pluginie, kazdy po ok. 100+ linijek.
// Sam package me.entify.ecore.command.cmd - ma ponad 30 klas.

 

Ja bym się tym kodem nie chwalił XDDDDDDD

 

Dodatkowo ciekawe od kiedy długość kodu i ilość klas oznacza Twoje umiejętności

 

Coś Ci dekompiler szwankuje 

return Util.sendMsg(sender, "&8� &7Ustawiles lvl pisania od &6" + args[1]);
Odnośnik do komentarza
Udostępnij na innych stronach

    Player[] arrayOfPlayer;
    int j = (arrayOfPlayer = Bukkit.getOnlinePlayers()).length;
    for (int i = 0; i < j; i++)
    {
      Player p = arrayOfPlayer;
      CombatManager.removePlayer(p);
      UserManager.leaveFromGame(p);
    }
na 99% to dekompilator bo wątpie że "normalnie" ktoś coś takiego zrobi :D

Edit:
"Normalna" osoba zrobi to tak:
for(Player player : Bukkit.getOnlinePlayers()){
  CombatManager.removePlayer(p);
  UserManager.leaveFromGame(p);
}
ew możesz iteratora użyć :) 

Co ja tutaj robie...

Odnośnik do komentarza
Udostępnij na innych stronach

 

@scoreboard, serio ku*wa myslisz ze nie znam takich podstaw?

Widziales wgl moj kod? ponad 100+ linijek w jednej klasie, twoje ok. 20-30.

 

Moj kod ledwo lapie sie pod podstawy javy?

Np; klasa z pluginu ecore:

package me.entify.ecore.command.cmd;

import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender;
import me.entify.ecore.command.Command;
import me.entify.ecore.lang.Config;
import me.entify.ecore.lang.Lang;
import me.entify.ecore.managers.ChatManager;
import me.entify.ecore.utils.Util;

public class ChatCommand
  extends Command
{
  public ChatCommand()
  {
    super("chat", "zarzadzanie chatem", "/chat <cc|on|off|lvl>", "ecore.chat.admin", new String[] { "czat" });
  }
  
  public boolean onExecute(CommandSender sender, String[] args)
  {
    if (args.length < 1)
    {
      String msg = Lang.MSG_USAGE;
      msg = msg.replace("{USAGE}", getUsage());
      return Util.sendMsg(sender, msg);
    }
    if ((args[0].equalsIgnoreCase("cc")) || (args[0].equalsIgnoreCase("clear")) || (args[0].equalsIgnoreCase("wyczysc")))
    {
      if (args.length != 1)
      {
        String msg = Lang.MSG_USAGE;
        msg = msg.replace("{USAGE}", getUsage());
        return Util.sendMsg(sender, msg);
      }
      ChatManager.clearChat();
      String msg = Lang.MSG_CHAT_CC;
      msg = msg.replace("{PLAYER}", sender.getName());
      Bukkit.broadcastMessage(Util.fixColor(msg));
    }
    else
    {
      if (args[0].equalsIgnoreCase("lvl"))
      {
        if (args.length < 2)
        {
          String msg = Lang.MSG_USAGE;
          msg = msg.replace("{USAGE}", getUsage());
          return Util.sendMsg(sender, msg);
        }
        if (!Util.isInteger(args[1])) {
          return Util.sendMsg(sender, "&4Blad: &c" + args[1] + " to nie liczba!");
        }
        Config.setLVL(Integer.parseInt(args[1]));
        Bukkit.broadcastMessage(String.valueOf(Util.fixColor(new StringBuilder("&8� &7Administrator &3").append(sender.getName()).append(" &7ustawil poziom pisania od &3").append(args[1]).toString())) + " �7lvla");
        return Util.sendMsg(sender, "&8� &7Ustawiles lvl pisania od &6" + args[1]);
      }
      if ((args[0].equalsIgnoreCase("on")) || (args[0].equalsIgnoreCase("wlacz")))
      {
        if (args.length != 1)
        {
          String msg = Lang.MSG_USAGE;
          msg = msg.replace("{USAGE}", getUsage());
          return Util.sendMsg(sender, msg);
        }
        ChatManager.setChat(true);
        String msg = Lang.MSG_CHAT_ON;
        msg = msg.replace("{PLAYER}", sender.getName());
        Bukkit.broadcastMessage(Util.fixColor(msg));
      }
      else
      {
        if ((!args[0].equalsIgnoreCase("off")) && (!args[0].equalsIgnoreCase("wylacz")))
        {
          String msg = Lang.MSG_USAGE;
          msg = msg.replace("{USAGE}", getUsage());
          return Util.sendMsg(sender, msg);
        }
        if (args.length != 1)
        {
          String msg = Lang.MSG_USAGE;
          msg = msg.replace("{USAGE}", getUsage());
          return Util.sendMsg(sender, msg);
        }
        ChatManager.setChat(false);
        String msg = Lang.MSG_CHAT_OFF;
        msg = msg.replace("{PLAYER}", sender.getName());
        Bukkit.broadcastMessage(Util.fixColor(msg));
      }
    }
    return true;
  }
}

Jeden plik z klasy, na /chat.

 

@edit, znajac zycie to pewnie teraz podpierdolisz mi polowe kodu.

 

A co do onEnable i onDisable;

  public void onLoad()
  {
    plugin = this;
  }
  
  public void onEnable()
  {
    instance = this;
    if (!setupChat()) {
      Logger.warning(new String[] {"NIE ZNALEZIONO VAULT!" });
    }
// onEnable
  public void onDisable()
  {
    Bukkit.getScheduler().cancelTasks(this);
    Player[] arrayOfPlayer;
    int j = (arrayOfPlayer = Bukkit.getOnlinePlayers()).length;
    for (int i = 0; i < j; i++)
    {
      Player p = arrayOfPlayer[i];
      CombatManager.removePlayer(p);
      UserManager.leaveFromGame(p);
    }
    Bukkit.savePlayers();
    for (World w : Bukkit.getWorlds()) {
      w.save();
    }
// onDisable
// Randomowe wycinanie tekstu z klas, ponad 60+ klas w pluginie, kazdy po ok. 100+ linijek.
// Sam package me.entify.ecore.command.cmd - ma ponad 30 klas.

 

 

Co ja tu widze, kolejne myhardy przerobione (Zdecompilowane) .  Ta pętla przy onDisable jest typowa, jaka sie tworzy w decompilatorach, nie rozumiem po co taki kod dałeś, mogleś chociaż zamienic na for(Player p : Bukkit.getOn....()). Znaczki w klasie to samo "�7", decomp.. Chwalisz sie nie swoim kodem, brawo :)

Odnośnik do komentarza
Udostępnij na innych stronach

@Thardess bardziej się upokorzyć już chyba nie można. Dekompilator aż w oczy jebie.

Najlepsze jeszcze jest te twoje chwalenie się ilością linijek i klas, jakie to ma za znaczenie? Robiłem projekty 20,000 linijek+ i co z tego? Nie liczy się wielkość kodu, a jakość kodu i funkcjonalność.

 

A ten kod który podałeś nawet bez dekompilatora byłby c*****y, poza tym - to jest biedna komenda...

 

@AntyRayso

Podałem już chyba najlepsze rozwiązanie z tych wyżej wymienionych, jest krótkie, przejrzyste i wydajne. 

https://hastebin.com/ivakayipot.java

 

Jeżeli masz jeszcze jakieś pytania to wal śmiało, coś pomogę.

Moja oficjalna strona! :)

http://socketbyte.pl/ 

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający forum Pomoc w pluginie   0 użytkowników
    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...