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

[DL] hugoBans - Plugin na banowanie permanentne, tymczasowe i odbanowywanie


Gość HugoZar

Rekomendowane odpowiedzi

Opublikowano

hugoBans


Plugin na banowanie permanentne, tymczasowe i odbanowywanie.


Autor: HugoZar


 


Komendy:


BanPERM - Ban permanentny (hugoBans.PERM)


BanTEMP - Ban tymczasowy (hugoBans.TEMP)


UnBan - Odbanowywanie (hugoBans.UnBan)


 


+


Plugin także posiada API.


Wystarczy wrzucić plugin do swojego projektu tak samo jak CraftBikkit'a i wszystkie opcje są pod "hugoBans.".


 


Download:



https://www.dropbox.com/s/4v40bcq8oec1jr2/hugoBans.jar

Skan:



https://www.virustotal.com/pl/url/36f6fa342aa930d3a059214636fe63a72d89a57bac7da1e5d3a5e6107d37b639/analysis/1404042213/

Do dodania:


+ MySQL


+ Banów po smierci


+ Kick


+ Mute


Opublikowano

Niezły plugin, testowałem i serdecznie polecam hugo robi zawsze kawał dobrej roboty ;)


To ja typ niepokorny ;x


 


Opublikowano

Połoncznie Bazy Mysql ?

MySQL dodam w kolejnej aktualizacji ;)

Opublikowano

Dobry plugin. Dodaj wiecej opcji takich jak kick, mute i z nudów moglbys dodac opcje bana po smierci na okreslony czas dla serwerow HC

Dobry pomysł z kick i mute - dodam  ;)

Opublikowano

Jak by ci sie chcialo to napisz plugin do tego ze np 1 komenda banujesz cala gildie na okreslony czas tak jak na MCHC albo SKKF. Mozesz tez wziac pierwszy lepszy Source pluginu na gildie i podpiac. Wtedy bys sie wyroznil na MPC bo raczej nikt na takie gildie by nie wpadl.

Opublikowano

Jak by ci sie chcialo to napisz plugin do tego ze np 1 komenda banujesz cala gildie na okreslony czas tak jak na MCHC albo SKKF. Mozesz tez wziac pierwszy lepszy Source pluginu na gildie i podpiac. Wtedy bys sie wyroznil na MPC bo raczej nikt na takie gildie by nie wpadl.

 

Boże ,czasem szkoda mi dzieci ._. 

 

@topic

Plugin nie zły,ale możesz już go pisać pod UUID (1.7.9+) : )

Bo jak ktoś zmieni nick to wejdzie bez problemu na serwer : )

 

Opublikowano

 

Boże ,czasem szkoda mi dzieci ._. 

 

@topic

Plugin nie zły,ale możesz już go pisać pod UUID (1.7.9+) : )

Bo jak ktoś zmieni nick to wejdzie bez problemu na serwer : )

 

 

Mi czasami tez szkoda ;(

Opublikowano

package pl.hugozvplayz.hugoban;

To ty jesteś hugozvplayz? ;-)

CPU: i5 6500 / RAM: 8GB / GPU: GTX 1070 / MOBO: MSI H110M / HDD: 1TB / SSD: Iridium PRO 

BLACKPRISON.HOSTMC.PL - najlepszy serwer prison w Polsce

Opublikowano

Klasy z dużej litery
Brak jakiejkolwiek obiektowości, bierzesz wszystko w real-time

Przydało by się kilka sposobów zapisu danych (mysql,sqlite,yaml,json)

public static String stringBuilder(String[] args, int liczOdArgumentu)
  {
    String msg = "";
    for (int i = liczOdArgumentu; i < args.length; ++i) {
      msg = msg + args[i];
      if (i <= args.length - 2) {
        msg = msg + " ";
      }
    }
    return msg;
  }

to samo co

 StringUtils.join(args, " ", 2, args.length-1)
.replace("&", "§")

a co jak mojang zmieni znaczek od kolorków? Od tego jest 

ChatColor.translate....Colors('&', String);

Przydało by się wsparcie uuid

Opublikowano

package pl.hugozvplayz.hugoban;

To ty jesteś hugozvplayz? ;-)

tak to on tylko nick zmienił -.-

Opublikowano

package pl.hugozvplayz.hugoban;

To ty jesteś hugozvplayz? ;-)

Tak, zmieniłem nick :P

 

Klasy z dużej litery

Brak jakiejkolwiek obiektowości, bierzesz wszystko w real-time

Przydało by się kilka sposobów zapisu danych (mysql,sqlite,yaml,json)

public static String stringBuilder(String[] args, int liczOdArgumentu)
  {
    String msg = "";
    for (int i = liczOdArgumentu; i < args.length; ++i) {
      msg = msg + args[i];
      if (i <= args.length - 2) {
        msg = msg + " ";
      }
    }
    return msg;
  }

to samo co

 StringUtils.join(args, " ", 2, args.length-1)
.replace("&", "§")

a co jak mojang zmieni znaczek od kolorków? Od tego jest 

ChatColor.translate....Colors('&', String);

Przydało by się wsparcie uuid

Nie znałem innego sposobu na zrobienie msg z kilku stringów.

Opublikowano

jeeej, czas na mnie

 

1. Główna klasa jest z małej ltery - źle

2.

  public CmdBanPerm(hugoBans hugoBans)
  {
    hugoBans.getCommand("banperm").setExecutor(this);
  }

Nie rejestrujemy w konstruktorze... 

3. Nie prościej używac \n w configu jako znacznika nowej linii? duzo osób używa tego bo to "naturalny" znacznik jakie używa się wszędzie, wystraczy dodać msg.replace("\\n", "\n"); kiedy wiadomość jest pobierana z np configu.

 

4. jeśli sam pokazujesz użycie komendy to daj na końcu return true a nie false, bo wtedy wyświetli się też użycie komendy okreslone w plugin.yml (domyślnie wyświetli tylko nazwę komendy i tyle)

 

5. w PlayerLoginEvent warto sprawdzić czy przypadkiem logowanie nie jest już anulowane z innego powodu, np whitelisty i wtedy nic nie sprawdzac bo tylko muli :P

 

6. 

         msg = msg.replace("@powod", hugoBans.getBan(p.getName()).split(";")[1]);
          msg = msg.replace("@admin", hugoBans.getBan(p.getName()).split(";")[2]);

zamiast wysyłać jakieś dziwne Stringi z separatorami,... wygodniej sobie zrobić obiekt do przechowywania takich danych.

 

7.

 public static File fileconfig = new File("plugins/hugoBans/config.yml");

Bukkit ma metody to pobierania folderu twojego pluginu, i nalezy unikać jak ognia używania "/"

lepiej użyć wbudowanej w klasie File statycznej zmiennej, lub w przypadku posiadania już folderu pluginu chcąc stworzyć File z configiem:

File cfgFile = new File(pluginFile, "config.yml");

 

 

8.

  public static String url = "jdbc:mysql://" + FilesManager.ymlconfig.getString("MySQL.Host") + ":" + FilesManager.ymlconfig.getInt("MySQL.Port") + "/";
  public static String database = FilesManager.ymlconfig.getString("MySQL.Database");
  public static String user = FilesManager.ymlconfig.getString("MySQL.User");
  public static String password = FilesManager.ymlconfig.getString("MySQL.Password");

Jak klasa od MySQL zostanie "dotknięta" przed stowrzeniem instancji configu... to wywali error i tyle, to powinno być pobierane w jakiejś metodzie/konstruktorze

 

9. W przypadku bukkita raczej nie ma to znaczenia, ale zamiast "System.out.print" używaj "System.out.println" te drugie wysyła tekst jako linijkę, to pierwsze powinno dodac do już istniejącej -> ale w bukkice to nie działa bo sobie pozmieniali :P

 

10. Wszytkie klasy w których są tylko statyczne metody i pola szczególnie typu "Utils" powinny zawierać prywatny, pusty konstruktor.

 

11. 

Integer.valueOf(czas.split(";")[0]).intValue()

Tutaj lepiej użyć

Integer.parseInt(czas.split(";")[0])

Zwraca od razu int zamiast Integer, a obiekt nie jest potrzebny w takim miejscu. (prymitywy są szybsze)

 

12. 

  public void onEnable()
  {
    new Utils();
    new FilesManager(this);
    new CmdBanPerm(this);
    new CmdBanTemp(this);
    new CmdUnBan(this);
    new PlayerLogin(this);
  }

Takie coś beznadziejnie wyglada, dlatego własnie rejestruje się normalnie, a nie w konstruktorze (no dobra, tak naprawdę dlatego że nie powinno sie używać "this" w konstruktorze, ale to taki drugi wizualny powód)

Do tego ni uja, nie potrzebujesz "new Utils()" właśnie dlatego daje sie w takich klasach prywatne,puste konstruktory - by nikt przypadkiem nie próbował go stworzyć.

 

 

No i to co pisał @_const

To już jest koniec smerfa:


http://www.mpcforum.pl/topic/1323530-info-znikam/


GG: 48522543


PS: Na innych forach i stronach znajdziesz mnie pod nickiem: 


BukkitSmerf

  • 4 tygodnie później...
  • 2 tygodnie później...

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...