Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Pomoc w pluginie


us3rn0tf0und

Rekomendowane odpowiedzi

Opublikowano

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...

Opublikowano

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...

Opublikowano

 

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/ 

Opublikowano

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


 

Opublikowano

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

Opublikowano

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ę ?

Opublikowano

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/ 

Opublikowano

@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! ✮


 

Opublikowano

 

@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]);
Opublikowano
    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...

Opublikowano

 

@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 :)

Opublikowano

@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/ 

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...