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][Autorski]McTroll


Rekomendowane odpowiedzi

Opublikowano

Witam.

Jest to mój drugi autorski plugin.

Jestem "laikiem" jeśli chodzi o javę i dopiero się uczę.

Plugin służy do trollowania graczy, posiada on w dniu dzisiejszym tylko dwie komendy.

Komendy:

/creeper <nick> - Po wpisaniu komendy w miejscu w którym stoi gracz <nick> spawnią się creepery (10).

/wybuch <nick> - Po wpisaniu komendy miejsce w którym stoi gracz <nick> wybucha.

Permissions:

Będzie na wieczór.

Download:

 

 

http://www.mediafire.com/download/4kar2k3r5ydx9dd/McTroll.jar
 

Skan:

 

 

https://www.virustotal.com/pl/url/1ba17c191b3b5014733c5e00612e9469793104bfe7792a298cb501777492249f/analysis/1373357477/
 

Jest on stworzony pod wersję bukkita 1.6.1 Development Build Version (Build number #2807) :

 

http://dl.bukkit.org/downloads/craftbukkit/list/dev/
 

Proszę o lajki i wyrozumiałość ponieważ dopiero się uczę ; )

Changelog:

Version 1.0

- 9.07.2013 (11:00) - Opublikowanie pluginu.

- 9.07.2013 (12:30) - Dodano komendę /wybuch !

Opublikowano

Jak na pierwszy plugin nie jest źle. ;-)
Każdy od czegoś zaczynał, łap lajka na zachętę.

_______________________________________________________________________

a6Shvr9.png

_______________________________________________________________________

 

Pozdrawiam, Magda!

 

 

Znawca
Opublikowano

Jak na pierwszy plugin nie jest źle. ;-)

Każdy od czegoś zaczynał, łap lajka na zachętę.

 

To jest jego drugi plugin, czytaj temat. :)

 

@topic:

 

Bardzo ładnie ci idzie ale zanim upublicznisz jakiś plugin to staraj się go przetestować. ;)

Validating > Member > ProUser > Postmaker


-----------------------



Opublikowano

Ech... nie rozumiem was wszystkich, po co wrzucicie każdy swój plugin na forum... szczególnie jak są takie lipne...

Uczycie się? to się uczcie droga wolna, ale po co zaśmiecać forum waszymi nie udanymi eksperymentami?

Tez wrzucę mój 1 plugin wysyłający wybrana wiadomosc do kazdego kto ma permissions (czyli prosty broadcast) i bd czekać aż bd mnie całować w pupe za ten epicki plugin.

 

Uczcie się, pokazujcie kody źródłowe a nie pluginy i czekajcie wtedy na opinie, czy kod jest dobrze napisany, czy może ma jakieś błędy (złe nazywanie zmiennych, metod, klas, paczek, bezsensowe kawałki kodu itd). Albo czytajcie sami o pisaniu w javie i sami poprawiajcie kod.

Wrzucanie kazdego lipnego pluginu ktory nie robi nic ciekawego nie ma sensu...

 

Takie moja skromne zdanie...

 

EDIT: Spis błędów w tym pluginie, popraw je :)

 

Zacznijmy od nazewnictwa paczek i klas :)

powiedzmy ze paczki ujdą, ale nazwanie klas: Class1, Class2, Class3 ? WTF

 

Ok jedziemy dalej. Kolejność błędów nie ma znaczenia w ich ważności, lecę linijka po linijce.

 

log.info("[McTroll] Plugin zostal wlaczony !"); - nie potrzebne. (mało ważne)

 

To teraz pierwsza komenda:

public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args)
  {
    Player player = (Player)sender;
    Player targetPlayer = player.getServer().getPlayer(args[0]);
    if (cmd.getName().equalsIgnoreCase("Strzel"))
    {
      if ((sender instanceof Player))
      {
        if (args.length == 0)
        {
          player.sendMessage("Zostales strzelony przez gracza :" + sender.getName());
        }
        if (args.length == 1)
        {
          targetPlayer.sendMessage("Zostales strzelony przez gracza :" + player.getName());
        }
      }
    }
    return false;
  }
Tworzysz nowego gracza z sendera
Player player = (Player)sender;

a potem sprawdzasz czy sender może być graczem...

if ((sender instanceof Player))

Czyli plugin się wysypie po wysłaniu komendy z konsoli.

 

bierzesz gracza z pierwszego argumentu komendy.

Player targetPlayer = player.getServer().getPlayer(args[0]);

a potem sprawdzasz czy komenda nie ma żadnych argumentów.

f (args.length == 0)
        {
          player.sendMessage("Zostales strzelony przez gracza :" + sender.getName());
        }

Plugin się wysypie jeśli ktoś nie wpisze nicku.

 

No i nie sprawdzasz czy gracz jest na serwerze: if (player != null)

 

Na końcu masz return false; to oznacza ze gracz dostanie wiadomosc z poprawnym użyciem komendy bo użył jej źle...

 

 

Ok idziemy do 2 komendy!

Te same błędy co poprzednio....

Player player = (Player)sender;
    Player targetPlayer = player.getServer().getPlayer(args[0]);
    if (cmd.getName().equalsIgnoreCase("creeper"))
    {
      if ((sender instanceof Player))
      {
        World world = targetPlayer.getWorld();
        Location loc = targetPlayer.getLocation();
        world.spawnEntity(loc, EntityType.CREEPER);
        world.spawnEntity(loc, EntityType.CREEPER);
        world.spawnEntity(loc, EntityType.CREEPER);
        world.spawnEntity(loc, EntityType.CREEPER);
        world.spawnEntity(loc, EntityType.CREEPER);
        world.spawnEntity(loc, EntityType.CREEPER);
        world.spawnEntity(loc, EntityType.CREEPER);
        world.spawnEntity(loc, EntityType.CREEPER);
        world.spawnEntity(loc, EntityType.CREEPER);
        world.spawnEntity(loc, EntityType.CREEPER);
      }
    }
    return false;

z tym ze nie wiem po co robisz to tak lipnie...

Mój pomysł:

@Override
	public boolean onCommand(CommandSender sender, Command cmd, String label,
			String[] args) {
		if (args.length > 0) {
			Player targetPlayer = Bukkit.getPlayer(args[0]);
			if (targetPlayer != null) {
				World world = targetPlayer.getWorld();
				Location loc = targetPlayer.getLocation();
				int i = 10;
				if (args.length > 1) {
					i = Integer.parseInt(args[1]);
				}
				for (int x = 0; x < i; x++) {
					world.spawnEntity(loc, EntityType.CREEPER);
				}
				return true;
			} else {
				sender.sendMessage("Nie ma takiego gracza");
				return true;
			}
		} else {
			sender.sendMessage("Musisz podac nick gracza");
			return true;
		}
	}

Ten kod nie powinien się wysypać :) a do tego jeśli się chce można podać ile creeperow ma się zespawnic.

Rada: jak używasz osobnej klasy dla komendy, nie musisz sprawdzać nazwy komendy, tylko ta jedna może się tam "dostać" (chyba ze użyjesz 1 klasy na 2/3 komend itd)

 

Ok i ostatnia klasa (Class3) to tez te same błędy jak w poprzednich.

Ale tu wyjątkowo pojawił się retrun true; pewnie z neta? :D

Player player = (Player)sender;
    Player targetPlayer = player.getServer().getPlayer(args[0]);
    if (cmd.getName().equalsIgnoreCase("wybuch"))
    {
      if ((sender instanceof Player))
      {
        Location loc = targetPlayer.getLocation();
        World w = loc.getWorld();
        w.createExplosion(loc, 0.0F);
      }
      return true;
    }

    return false;
  }
EDIT2: Zapomniałam dodać ze pierwsza komenda "Strzel" nie będzie działać, bo nie dodałeś jej do plugin.yml

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

Opublikowano

Komendy /strzel nie dodałem celowo ; )

Jeśli masz zamiar szpanować twoimi "super umjętnościami" to weź lepiej wyjdź.

Jak ci się nie podoba to nie komentuj.

Śmiało zrób plugin który wyświetla tekst napewno dam like.

Opublikowano

jest to troszkę słabe i nie przydatne ponieważ te 2 komendy są odrazu w essentialu co sądze że kazdy serwer pewnie go ma..
/creper

a w essentialu

/spawnmob creeper nick ilosc

/wybuch
/light [tu moge sie mylić]

 

więc spolszczenie 2 komend nie potrzebnie żeby zająć nie potrzebne ram na serwerze chyba nie jest przydatne..

Opublikowano

Bo narazie są tylko 2 komendy.Planowałem dodać jakieś lepsze rzeczy np. :

- Efekty mikstur (Nausea - Że ci się tak kręci :D)

- Podpalanie terenu wokół gracza.

Opublikowano

@up i znowu to tez jest w essentials xD
ta pierwsza komenda /effect nick [dany effekt kazdy moze byc tylko po angielsku np: speed] czastrwaniamikstury siłamikstury np:


/effect ShymeQ Speed 10 10

co mi da efekt szybkiego chodzenia na 10 sekund na 10 szybkosci

Opublikowano

Komendy /strzel nie dodałem celowo ; )

Jeśli masz zamiar szpanować twoimi "super umjętnościami" to weź lepiej wyjdź.

Jak ci się nie podoba to nie komentuj.

Śmiało zrób plugin który wyświetla tekst napewno dam like.

Czemu mam nie komentować? od tego są komentarze...

 

Ja ci daje tylko rady... bo masz błędy w kodzie

 

Pytanko : Pobierał ktoś i testował plugin ? Ponieważ pisałem go na netbooku i tu się nie da odpalić mc ;c

Prosiłeś nawet o testy... to je dostałeś a teraz nagle ci się nie podoba.

Wiec zamiast marudzić to je napraw...

@up i znowu to tez jest w essentials xD

ta pierwsza komenda /effect nick [dany effekt kazdy moze byc tylko po angielsku np: speed] czastrwaniamikstury siłamikstury np:

 

/effect ShymeQ Speed 10 10

co mi da efekt szybkiego chodzenia na 10 sekund na 10 szybkosci

A to nie jest tez przypadkiem w mc samo w sobie? :P

EDIT: tak dla własnej pewności sprawdziłam, i to ma tez zwykły mc :D wiec nawet nie trzeba essentails czy bukkita.

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

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...