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

Rekomendowane odpowiedzi

Opublikowano

 

-->•••••••••••••••••••••••••••••••••••••••••••••••<--

» xSchowek - Plugin Minecraft «

-->•••••••••••••••••••••••••••••••••••••••••••••••••••<--

 

• Opis 

» Wiec tak plugin zawiera limit Koxow, Refili oraz Perel. Limity dostepne sa dla 3 rang gracza, vipa oraz svipa. Wszystko możecie przypisać do swoich rang np. Sponsor, Sponsor+.

Permisje limity oraz wiadomości itd. ustawiacie w Config.yml!

 

• Config.yml

 

gui-name: '&c&lSchowek'
gui-size: 54
e: true

limits:
  kox: 3
  refile: 24
  perly: 4
limits-vip:
  permission: limits.vip
  kox: 4
  refile: 30
  perly: 5  
limits-svip:
  permission: limits.svip
  kox: 6
  refile: 36
  perly: 6    

gui: 
  name: '&8%> &6{ITEM_NAME}'
  lore:
  - ''
  - ' &8%> &cW schowku: &6{IN_DEPOSIT}'
  - ' &8%> &cLimit: &6{LIMIT}'
  - ' &8%> &cLimit VIP: &6{LIMIT_VIP}'
  - ' &8%> &cLimit SVIP: &6{LIMIT_SVIP}'
  - ''
  - '&8%> &c&o&nKliknij PPM, aby wyplacic!'
  
messages:
  pay: '&8%> &cWyplaciles &6x{AMOUNT_ITEM} {ITEM_NAME} &cz Schowka'
  remove: '&8%> &cMiales zbyt duzo &6{ITEM_NAME} &8(&6x{AMOUNT_ITEM}&8) &cZostawiono tobie &6{LIMIT}. &cReszta zostala przeniesiona do &6&o&m/schowek!'
  no-has: '&8%> &cNie masz zadnych &6{ITEM_NAME} &cw schowku!'  
  
slots-in-gui:
  koxy: 11
  refile: 13
  perly: 15
  
more:
  no-permission: '&4Blad: &7Nie posiadasz permisji!'  
  no-base: '&4Blad: &7Nie ma takiego graczy w bazie danych!'
  reset-base: '&cPoprawnie zresetowales schowek gracza: &6{PLAYER}!'

mysql:
  hostname: 
  port: 
  base: 
  user: 
  password:   
  
inventory-slots-item:
  0: 
    id: 160
    data: 15
    name: '&8•'
  1: 
    id: 160
    data: 15
    name: '&8•'
  2: 
    id: 160
    data: 15
    name: '&8•'
  3: 
    id: 160
    data: 15
    name: '&8•'
  4: 
    id: 160
    data: 15
    name: '&8•'
  5: 
    id: 160
    data: 15
    name: '&8•'
  6: 
    id: 160
    data: 15
    name: '&8•'
  7: 
    id: 160
    data: 15
    name: '&8•'
  8: 
    id: 160
    data: 15
    name: '&8•'
  9: 
    id: 160
    data: 15
    name: '&8•'
  10: 
    id: 160
    data: 15
    name: '&8•'
  11: 
    id: 160
    data: 15
    name: '&8•'
  12: 
    id: 160
    data: 15
    name: '&8•'
  13: 
    id: 160
    data: 15
    name: '&8•'
  14: 
    id: 160
    data: 15
    name: '&8•'
  15: 
    id: 160
    data: 15
    name: '&8•'
  16: 
    id: 160
    data: 15
    name: '&8•'
  17: 
    id: 160
    data: 15
    name: '&8•'
  18: 
    id: 160
    data: 15
    name: '&8•'
  19: 
    id: 160
    data: 15
    name: '&8•'
  20: 
    id: 160
    data: 15
    name: '&8•'
  21: 
    id: 160
    data: 15
    name: '&8•'
  22: 
    id: 160
    data: 15
    name: '&8•'
  23: 
    id: 160
    data: 15
    name: '&8•'
  24: 
    id: 160
    data: 15
    name: '&8•'
  25: 
    id: 160
    data: 15
    name: '&8•'
  26: 
    id: 160
    data: 15
    name: '&8•'
  38: 
    id: 101
    data: 15
    name: '&8•'
  42: 
    id: 101
    data: 15
    name: '&8•'    
  
  

 

• Screenshoty 

 

» Screen I: http://ifotos.pl/z/qheexsn

» Screen II: http://ifotos.pl/z/qheenxh

» Screen III: http://ifotos.pl/z/qheenxe

 

• Informacje 

 

» Download v2.0-FINAL: http://hostuje.net/file.php?id=fe3e4ffe8466dd0a1bbf14989c80b1c2

» Download v1.0-SNAPSHOT: http://hostuje.net/file.php?id=3dfc2f3cdea8d6a8b74c4a306e828520

» SRC: Tylko dla osób z mózgiem pisać w wiadomości prywatnej!

» Jeżeli możesz daj subika, Tam będą nowe pluginy: https://www.youtube.com/channel/UCuC_pVefCJosX1OvOWh474Q

• Koniec 

Opublikowano
43 minuty temu, ScoreBoard napisał:

Plugin nie najgorszy. Skoro udostępniasz dla forum a jesteś autorem powinieneś to zmienić:


sender.sendMessage("�8� �cPlugin for: �6BEST-Craft.pl or YTpvp.pl");

I nie rozumiem jeden rzeczy, sprawdzasz booleana odpowiadającego za nic w configu, jeśli go nie ma to wyłączasz plugin. Do czego jest to potrzebne? Jeśli chodzi o sprawdzanie istnienia pliku są inne sposoby.


    if (!getConfig().getBoolean("e"))
    {
      Bukkit.getServer().getPluginManager().disablePlugin(this);
      return;
    }


e: true

Ahm. Tak to zrobiłeś:


    Bukkit.getServer().getPluginManager().registerEvents(new EntityDamageListener(), this);
    Bukkit.getServer().getPluginManager().registerEvents(new InventoryClickListener(), this);
    Bukkit.getServer().getPluginManager().registerEvents(new RenameItemInAnvilListener(), this);

Nie łatwiej?


PluginManager pm = Bukkit.getServer().getPluginManager();
pm.registerEvents(this, new Klasa());

 

o moj boze, jak mozna sie przyczepic do takiego czegos:

Cytat

Ahm. Tak to zrobiłeś:


    Bukkit.getServer().getPluginManager().registerEvents(new EntityDamageListener(), this);
    Bukkit.getServer().getPluginManager().registerEvents(new InventoryClickListener(), this);
    Bukkit.getServer().getPluginManager().registerEvents(new RenameItemInAnvilListener(), this);

Nie łatwiej?


PluginManager pm = Bukkit.getServer().getPluginManager();
pm.registerEvents(this, new Klasa());

jak juz masz kogos pouczac z rejestrowaniem listenerów, to prosze rób tak:

    private void registerListeners(Listener... listeners)
    {
        final PluginManager pm = Bukkit.getPluginManager();

        for(Listener l : listeners)
        {
            pm.registerEvents(l, this);
        }
    }
Cytat

Plugin nie najgorszy. Skoro udostępniasz dla forum a jesteś autorem powinieneś to zmienić:

nienajgorszy*

 

i sie zakładam ,że nie zrobiłbyś nawet takiego pluginu, wiec nie komentuj jak sam nic nie umiesz..

 

Cytat

I nie rozumiem jeden rzeczy, sprawdzasz booleana odpowiadającego za nic w configu, jeśli go nie ma to wyłączasz plugin. Do czego jest to potrzebne? Jeśli chodzi o sprawdzanie istnienia pliku są inne sposoby.


    if (!getConfig().getBoolean("e"))
    {
      Bukkit.getServer().getPluginManager().disablePlugin(this);
      return;
    }


e: true

e == enable idioto

Cytat

I nie rozumiem jeden rzeczy, sprawdzasz booleana odpowiadającego za nic w configu, jeśli go nie ma to wyłączasz plugin. Do czego jest to potrzebne? Jeśli chodzi o sprawdzanie istnienia pliku są inne sposoby.

wtf?

on sprawdza czy zmienna (boolean) e jest false, jesli tak to wylacza plugin.

Cytat

Do czego jest to potrzebne? Jeśli chodzi o sprawdzanie istnienia pliku są inne sposoby.

??????????

Cytat

Ahm. Tak to zrobiłeś:


    Bukkit.getServer().getPluginManager().registerEvents(new EntityDamageListener(), this);
    Bukkit.getServer().getPluginManager().registerEvents(new InventoryClickListener(), this);
    Bukkit.getServer().getPluginManager().registerEvents(new RenameItemInAnvilListener(), this);

Nie łatwiej?


PluginManager pm = Bukkit.getServer().getPluginManager();
pm.registerEvents(this, new Klasa());

każdy robi inaczej, może mu tak jest wygodniej?

 

w skrócie:

nie komentuj nikomu jak robi pluginy, bo kazdy pisze o miliard razy lepiej od ciebie, ty juz pokazales co umiesz haha

 

 

--

co do tematu:

no tak troche przesadziles:

    if (!p.getName().contains("xSCHOWEK")) {
      Bukkit.getServer().getPluginManager().disablePlugin(this);
    }
    if (!p.getAuthors().contains("Xireu")) {
      Bukkit.getServer().getPluginManager().disablePlugin(this);
    }

jest troche niepotrzebnego kodu i ta klasa user troche przesadzona.

Klasa StringUtil niepotrzebna.

 

a to po co?

public class RenameItemInAnvilListener
  implements Listener
{
  @EventHandler
  public void onRename(InventoryClickEvent e)
  {
    if (e.getInventory().getType().equals(InventoryType.ANVIL))
    {
      if ((e.getCurrentItem().getType().equals(Material.GOLDEN_APPLE)) && (e.getCurrentItem().getItemMeta().hasDisplayName())) {
        e.setCancelled(true);
      }
      if ((e.getCurrentItem().getType().equals(Material.ENDER_PEARL)) && (e.getCurrentItem().getItemMeta().hasDisplayName())) {
        e.setCancelled(true);
      }
    }
  }
}

i ta klasa InventoryClickListener..

przeciez mozesz raz sprawdzasz czy itemmeta jest nullem, jak tak to return, i kod jest juz czystszy i ladniejszy.

i w sumie to niepotrzebnie sprawdzasz limit dopiero przy entitydamagebyentityevent, bo juz przed mozna zjesc koxa no i + 1 przewagi.

 

i jeszcze tylko to niepotrzebne:

      if (args[0].equals("AutoR"))
      {
        sender.sendMessage("�8�=-_'-=_=-_=_-=_- ? -_=-_=_-=_=-'_-=�8�");
        sender.sendMessage("�8� �cPlugin: �6xDEPOZYT or xSCHOWEK");
        sender.sendMessage("�8� �cAutorem pluginu jest �6Xireu");
        sender.sendMessage("�8� �cWersja pluginu: �61.0-SNAP");
        sender.sendMessage("�8� �cPlugin for: �6BEST-Craft.pl or YTpvp.pl");
        sender.sendMessage("�8�=-_'-=_=-_=_-=_- ? -_=-_=_-=_=-'_-=�8�");
      }

 

+ czemu caly czas zwracasz false w komendach, zamiast true?
+ w oncommand sprawdz czy sender to konsola, jesli tak to return.

 

moje porady:

- popraw kod

- dodaj zapis do .yml (no i oczywiscie opcja ustawienia zapisywania danych: yml/mysql)

- wrzuc kod na githuba

- zmien "e" na "enable" bo taki idiota jak scoreboard znow sie przyczepi ze to jest niepotrzebne, lub ze to jest do "sprawdzania istnienia" jakis plikow xD

Cytat

I nie rozumiem jeden rzeczy, sprawdzasz booleana odpowiadającego za nic w configu, jeśli go nie ma to wyłączasz plugin. Do czego jest to potrzebne? Jeśli chodzi o sprawdzanie istnienia pliku są inne sposoby.


    if (!getConfig().getBoolean("e"))
    {
      Bukkit.getServer().getPluginManager().disablePlugin(this);
      return;
    }


e: true

@ScoreBoard

Cytat

Nie łatwiej?


PluginManager pm = Bukkit.getServer().getPluginManager();
pm.registerEvents(this, new Klasa());

this to event a new Klasa() to main? xD

zadanie dla ciebie: zrob lepszy :)

 

aa i jeszcze jedno co do pluginu, nie rozumiem tego:

  public static void giveOrDrop(Player p, ItemStack is, Location loc)
  {
    if (is != null)
    {
      for (final ItemStack i : p.getInventory().addItem(new ItemStack[] { is }).values()) {
        Bukkit.getScheduler().runTaskLater(Depozyt.getinst(), new Runnable()
        {
          public void run()
          {
            Utils.this.getWorld().dropItem(Utils.this, i);
          }
        }, 15L);
      }
      p.updateInventory();
    }
  }
}

z tego kodu to nawet nie wiem czy to jakos sprawdza czy inventory gracza jest pelne, jesli tak to wyrzuca na ziemie, i po co tu task?

 

Aktualnie interesuję się javą, powoli ogarniam java swing i awt, czasem bawię się HTML.

Opublikowano

przeciez mozesz raz sprawdzasz czy itemmeta jest nullem, jak tak to return, i kod jest juz czystszy i ladniejszy.

metoda getitemmeta z klasy itemstack zawsze zwraca obiekt ! kazdy przedmiot posiada itemMeta , (a jak nie ma to zwraca nowy obiekt z itemFactory)

Opublikowano
33 minuty temu, damianq20 napisał:

przeciez mozesz raz sprawdzasz czy itemmeta jest nullem, jak tak to return, i kod jest juz czystszy i ladniejszy.

metoda getitemmeta z klasy itemstack zawsze zwraca obiekt ! kazdy przedmiot posiada itemMeta , (a jak nie ma to zwraca nowy obiekt z itemFactory)

nie kazdy przedmiot, hasItemMeta - np. zwykly diax nie ma 

 

Aktualnie interesuję się javą, powoli ogarniam java swing i awt, czasem bawię się HTML.

Opublikowano

co do e: chodziło mi o enable a argumentu AutoR zapomniałem usunąć, poprawie kod jutro teraz zajmuję się czymś innym

 

 

"Cytat"

aa i jeszcze jedno co do pluginu, nie rozumiem tego:

  public static void giveOrDrop(Player p, ItemStack is, Location loc)
  {
    if (is != null)
    {
      for (final ItemStack i : p.getInventory().addItem(new ItemStack[] { is }).values()) {
        Bukkit.getScheduler().runTaskLater(Depozyt.getinst(), new Runnable()
        {
          public void run()
          {
            Utils.this.getWorld().dropItem(Utils.this, i);
          }
        }, 15L);
      }
      p.updateInventory();
    }
  }
}

z tego kodu to nawet nie wiem czy to jakos sprawdza czy inventory gracza jest pelne, jesli tak to wyrzuca na ziemie, i po co tu task?

"Cytat"

więc tak task jest po to aby itemki nie znikały

  • 3 lata później...
  • AlexsanderARG zmienił(a) tytuł na [Plugin] xSchowek - Depozyt Koxow, Refili oraz Perel dla gracza, vipa i svipa

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...