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

[Plugin] ProtectionZone


Rekomendowane odpowiedzi

Opublikowano
ProtectionZone

1.7.2 - 1.9.2

Update v0.3

 

Posiadasz serwer PVP ?

Gracze oszukują uciekając podczas walki do bezpiecznej strefy ?

Teraz możesz temu zaradzić dzięki temu prostemu pluginowi !

 

OPIS DZIAŁANIA

 

Po ustawieniu regionów w konfiguracji, jeżeli obaj gracze znajdują się

po za zabezpieczonym regionem to gracz atakujący otrzymuje blokadę wejścia

na zabezpieczony teren na czas podany w konfiguracji.

 

Dodano możliwość ustawiania nieograniczonej ilości regionów !

 

Uwaga: Im wyższy mnożnik wektora w konfiguracji

tym z mocniejszą siłą region odepchnie gracza, zalecam

nie przekraczać domyślnej wartości.

 

Informacje

 

Wszystkie wersje pluginu począwszy od wersji 0.2

będą kompilowane wyłącznie w środowisku Java7

 

Znalazłeś bug ? Masz uwagi dotyczące kodu ? Napisz !

 

Changelog

 

 


1. Poprawiono kod według uwag Riveilli.

2. Dodano obsługę wielu regionów.

3. Dodano sprawdzenie czy świat i region podany w konfiguracji istnieją.

4. Dodano sprawdzenie poprawności plików konfiguracyjnych.

5. Dodano permissions do obejścia blokady.

6. Zmiana sposobu blokady, zamiast anulacji eventu gracz zostaje odepchnięty

7. Poprawiono błędy kompilacji


 

Permissions

 



protectionzone.bypass - Możesz wejść na region podczas trwania blokady


Download

 


 

Uwagi

 

Podczas pierwszego uruchomienia pluginu wyskoczy błąd i plugin zostanie zatrzymany.

Dzieje się tak ze względu, że domyślne regiony nie odpowiadają regionom na twoim serwerze.

Wyłącz serwer, skonfiguruj plugin oraz swoje wiadomości. 

Miłej gry! ;)

Pomogłem ? ;) Daj like !

Opublikowano

1) przechowujesz obiekty zamiast UUID w kolekcji

2) używasz outprinta zamiast bukkitowego consolesendera

3) zupełnie niepotrzebnie inicjalizujesz i przypisujesz wartości niektórym zmiennym

4) prawie wszystko znajduje się w głównej klasie (włącznie z trzema listenerami)

5) nie sprawdzasz czy plugin WorldGuard został wczytany, polegasz tylko na plugin.yml

6) jeżeli już publikujesz swoją pracę, to wypadałoby dodać obsługę wiadomości z poziomu configu

 

plugin do poprawy

Opublikowano

Dziękuję za komentarz, biorę się do poprawki

 

Changelog przeniesiony do pierwszego postu

Pomogłem ? ;) Daj like !

Opublikowano

Czekam na Download. Lecz brakuje mi tu możliwość dodania kilka regionów i permisji która będzie pozwalała wejść na region nawet podczas walki.

                                                                                        O

                                                                                       /V\

                                                                                       /''\

Opublikowano

@KrejZi1337

 

Dziękuje za komentarz, permisje dostaną dodane, a możliwość większej ilości regionów dodam w przyszłych aktualizacjach. 

Chcę zrobić najpierw to co mam porządnie ;) 

Pomogłem ? ;) Daj like !

Opublikowano

Okej a jak działa ta blokada ? Odpycha nas od regionu ? Czy może teleportuje poza region ? A może tworzy jakąś ścianę ? Byś mógł wyjaśnić ?

                                                                                        O

                                                                                       /V\

                                                                                       /''\

Opublikowano

@KrejZi1337

Odpycha jak przy fladze "entry: deny", w listenerze PlayerMoveEvent sprawdzam czy lokacja toLoc zawiera region podany w konfiguracji.

 

Przy okazji mam taki pomysł, zamiast zwykłego e.setCancelled(true);

 

- Gracz próbując wejść do zabezpieczonego regionu będzie tracić życie (2 serduszka)

- Chwilowe godMode żeby nie otrzymał obrażeń

- Vector, czyli odepchnięcie gracza na kilka kratek wstecz (już w myślach mam, że ktoś daje do configu FusRoDah :D)

- Po odepchnięciu zabranie godMode

 

@Offtop

 

Faktycznie się zasiedziałem ;)

Pomogłem ? ;) Daj like !

Opublikowano

Z tymi serduszkami to moim zdaniem zły pomysł dajmy na to 2 typa się biją i jeden ma 1.5 serca i ten drugi go walnął a tamten wpadł na teren w którym nie może być i zabrało mu 2 serca i zginął nie przez innego gracza tylko przez blokadę (Mam nadzieje że rozumiesz :) ).

 

Ten GodMode to nie jest zły pomysł lecz możesz dodać w configu możliwość jego wyłączenia.

                                                                                        O

                                                                                       /V\

                                                                                       /''\

Opublikowano

@KrejZi1337

 

Odbieranie graczowi życia nie zostało wprowadzone, godMode jest zbędny, gdyż przy wartościach wektora rzędu 0.004 (odpycha na 3-4 kratki) graczowi nie jest odbierane życie, wartość tą będzie można zmienić w konfiguracji. Dodatkowo dodano obsługę praktycznie nieskończonej ilości regionów oraz walidację czy świat/region podany w konfiguracji istnieje.

 

Dzisiaj posprawdzam jeszcze cały kod i wypuszczę na razie pre-release na 1.9 / 1.8 , aby można było sprawdzić dekompilatorem i wytknąć jeszcze kilka błędów ;) 

Pomogłem ? ;) Daj like !

Opublikowano

Czekam na download ! :) gratulacje mam nadzieje ze będziesz rozwijać plugin

Służę pomocą również innym użytkownikom :) jak potrzeba pomocy zapraszam na pw na pewno pomogę

Opublikowano

Kurdę miałem nadzieje że plugin będzie na 1.7.10 ;/

#EDIT

Proponuje dodać jakiś dźwięk przy próbuje wejścia na dany region podczas walki.

                                                                                        O

                                                                                       /V\

                                                                                       /''\

Opublikowano

KrejZi1337

Postaram się to dodać w przyszłych aktualizacjach jak i niedługo wydać plugin na wersję 1.7.10 . Mam nadzieję że korzystasz z nowej Javy ;) może spróbujesz odpalić wersję na 1.8 ?

 

@Edit 

 

A jaki dźwięk byś polecał podczas odpychania ? ;) Może dźwięk tłoka ewentualnie nie wiem, szlamu? .. lub po prostu możliwość konfiguracji tego w configu 

Pomogłem ? ;) Daj like !

Opublikowano

Podobają mi się te 2: mob.enderdragon.wings i mob.bat.takeoff. Ale proponuje dodać w configu możliwość zmiany na dowolny dźwięk.

                                                                                        O

                                                                                       /V\

                                                                                       /''\

Opublikowano

Plugin został zaktualizowany do wersji 0.2 oraz wydany dla Minecraft 1.9.2 / 1.9 / 1.8 oraz 1.7.2

Pomogłem ? ;) Daj like !

Opublikowano

Plugin został zaktualizowany do wersji 0.3 , poprawiono błędu w kompilacji pluginu.

 

Download jest już dostępny.

Pomogłem ? ;) Daj like !

Opublikowano

Plugin śmiga :) Lecz dodałbym możliwość włączenia/wyłączenia danej wiadomości w configu. Tak jak Ci wyżej napisałem możliwość dodawania dźwięków które będziemy słyszeć przy próbie wejścia na region.

                                                                                        O

                                                                                       /V\

                                                                                       /''\

Opublikowano

Chwilo pracuję nad innym zleceniem, ale jak będę miał czas obiecuję dodać wyłączanie wiadomości. 

config będzie wyglądać w ten sposób:

 

protection-start:
    message: 'Otrzymales blokade'
    active: true

 

@Refresh

Pomogłem ? ;) Daj like !

Opublikowano

Proponuje jeszcze dodać komende: /pz reload żeby łatwiej się konfigurowało wszystko.

                                                                                        O

                                                                                       /V\

                                                                                       /''\

Opublikowano

Ok, /pz reload zostanie dodane. Jeżeli nie będzie jakiś poważniejszych bugów czy błędów aktualizacja powinna być wkrótce, tak jak mówiłem jestem akurat w trakcje innego większego projektu a nie chcę zajmować się dwoma rzeczami na raz.

Pomogłem ? ;) Daj like !

  • 5 tygodni później...
Opublikowano
[14:55:53] [Server thread/ERROR]: Could not pass event EntityDamageByEntityEvent to ProtectionZone vPreAlpha 0.3
org.bukkit.event.EventException
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:302) ~[spigot-1.7.10-R0.1.jar:git-Spigot-1646]
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[spigot-1.7.10-R0.1.jar:git-Spigot-1646]
at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:514) [spigot-1.7.10-R0.1.jar:git-Spigot-1646]
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:499) [spigot-1.7.10-R0.1.jar:git-Spigot-1646]
at org.bukkit.craftbukkit.v1_7_R4.event.CraftEventFactory.callEvent(CraftEventFactory.java:108) [spigot-1.7.10-R0.1.jar:git-Spigot-1646]
at org.bukkit.craftbukkit.v1_7_R4.event.CraftEventFactory.callEntityDamageEvent(CraftEventFactory.java:554) [spigot-1.7.10-R0.1.jar:git-Spigot-1646]
at org.bukkit.craftbukkit.v1_7_R4.event.CraftEventFactory.handleEntityDamageEvent(CraftEventFactory.java:467) [spigot-1.7.10-R0.1.jar:git-Spigot-1646]
at org.bukkit.craftbukkit.v1_7_R4.event.CraftEventFactory.handleLivingEntityDamageEvent(CraftEventFactory.java:586) [spigot-1.7.10-R0.1.jar:git-Spigot-1646]
at net.minecraft.server.v1_7_R4.EntityLiving.d(EntityLiving.java:1040) [spigot-1.7.10-R0.1.jar:git-Spigot-1646]
at net.minecraft.server.v1_7_R4.EntityHuman.d(EntityHuman.java:824) [spigot-1.7.10-R0.1.jar:git-Spigot-1646]
at net.minecraft.server.v1_7_R4.EntityLiving.damageEntity(EntityLiving.java:684) [spigot-1.7.10-R0.1.jar:git-Spigot-1646]
at net.minecraft.server.v1_7_R4.EntityHuman.damageEntity(EntityHuman.java:765) [spigot-1.7.10-R0.1.jar:git-Spigot-1646]
at net.minecraft.server.v1_7_R4.EntityPlayer.damageEntity(EntityPlayer.java:465) [spigot-1.7.10-R0.1.jar:git-Spigot-1646]
at net.minecraft.server.v1_7_R4.EntityHuman.attack(EntityHuman.java:950) [spigot-1.7.10-R0.1.jar:git-Spigot-1646]
at net.minecraft.server.v1_7_R4.PlayerConnection.a(PlayerConnection.java:1204) [spigot-1.7.10-R0.1.jar:git-Spigot-1646]
at net.minecraft.server.v1_7_R4.PacketPlayInUseEntity.a(PacketPlayInUseEntity.java:37) [spigot-1.7.10-R0.1.jar:git-Spigot-1646]
at net.minecraft.server.v1_7_R4.PacketPlayInUseEntity.handle(PacketPlayInUseEntity.java:49) [spigot-1.7.10-R0.1.jar:git-Spigot-1646]
at net.minecraft.server.v1_7_R4.NetworkManager.a(NetworkManager.java:186) [spigot-1.7.10-R0.1.jar:git-Spigot-1646]
at net.minecraft.server.v1_7_R4.ServerConnection.c(ServerConnection.java:81) [spigot-1.7.10-R0.1.jar:git-Spigot-1646]
at net.minecraft.server.v1_7_R4.MinecraftServer.v(MinecraftServer.java:734) [spigot-1.7.10-R0.1.jar:git-Spigot-1646]
at net.minecraft.server.v1_7_R4.DedicatedServer.v(DedicatedServer.java:289) [spigot-1.7.10-R0.1.jar:git-Spigot-1646]
at net.minecraft.server.v1_7_R4.MinecraftServer.u(MinecraftServer.java:584) [spigot-1.7.10-R0.1.jar:git-Spigot-1646]
at net.minecraft.server.v1_7_R4.MinecraftServer.run(MinecraftServer.java:490) [spigot-1.7.10-R0.1.jar:git-Spigot-1646]
at net.minecraft.server.v1_7_R4.ThreadServerApplication.run(SourceFile:628) [spigot-1.7.10-R0.1.jar:git-Spigot-1646]
Caused by: java.lang.IncompatibleClassChangeError: Found interface com.sk89q.worldguard.protection.ApplicableRegionSet, but class was expected
at protection.MPCforum.interfaces.Utilities.protectedRegion(Utilities.java:23) ~[?:?]
at protection.MPCforum.Listeners.onDamage(Listeners.java:30) ~[?:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0_80]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[?:1.7.0_80]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.7.0_80]
at java.lang.reflect.Method.invoke(Method.java:606) ~[?:1.7.0_80]
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:298) ~[spigot-1.7.10-R0.1.jar:git-Spigot-1646]
... 23 more
[14:55:58] [Server thread/ERROR]: Could not pass event EntityDamageByEntityEvent to ProtectionZone vPreAlpha 0.3
org.bukkit.event.EventException
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:302) ~[spigot-1.7.10-R0.1.jar:git-Spigot-1646]
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[spigot-1.7.10-R0.1.jar:git-Spigot-1646]
at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:514) [spigot-1.7.10-R0.1.jar:git-Spigot-1646]
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:499) [spigot-1.7.10-R0.1.jar:git-Spigot-1646]
at org.bukkit.craftbukkit.v1_7_R4.event.CraftEventFactory.callEvent(CraftEventFactory.java:108) [spigot-1.7.10-R0.1.jar:git-Spigot-1646]
at org.bukkit.craftbukkit.v1_7_R4.event.CraftEventFactory.callEntityDamageEvent(CraftEventFactory.java:554) [spigot-1.7.10-R0.1.jar:git-Spigot-1646]
at org.bukkit.craftbukkit.v1_7_R4.event.CraftEventFactory.handleEntityDamageEvent(CraftEventFactory.java:467) [spigot-1.7.10-R0.1.jar:git-Spigot-1646]
at org.bukkit.craftbukkit.v1_7_R4.event.CraftEventFactory.handleLivingEntityDamageEvent(CraftEventFactory.java:586) [spigot-1.7.10-R0.1.jar:git-Spigot-1646]
at net.minecraft.server.v1_7_R4.EntityLiving.d(EntityLiving.java:1040) [spigot-1.7.10-R0.1.jar:git-Spigot-1646]
at net.minecraft.server.v1_7_R4.EntityHuman.d(EntityHuman.java:824) [spigot-1.7.10-R0.1.jar:git-Spigot-1646]
at net.minecraft.server.v1_7_R4.EntityLiving.damageEntity(EntityLiving.java:684) [spigot-1.7.10-R0.1.jar:git-Spigot-1646]
at net.minecraft.server.v1_7_R4.EntityHuman.damageEntity(EntityHuman.java:765) [spigot-1.7.10-R0.1.jar:git-Spigot-1646]
at net.minecraft.server.v1_7_R4.EntityPlayer.damageEntity(EntityPlayer.java:465) [spigot-1.7.10-R0.1.jar:git-Spigot-1646]
at net.minecraft.server.v1_7_R4.EntityHuman.attack(EntityHuman.java:950) [spigot-1.7.10-R0.1.jar:git-Spigot-1646]
at net.minecraft.server.v1_7_R4.PlayerConnection.a(PlayerConnection.java:1204) [spigot-1.7.10-R0.1.jar:git-Spigot-1646]
at net.minecraft.server.v1_7_R4.PacketPlayInUseEntity.a(PacketPlayInUseEntity.java:37) [spigot-1.7.10-R0.1.jar:git-Spigot-1646]
at net.minecraft.server.v1_7_R4.PacketPlayInUseEntity.handle(PacketPlayInUseEntity.java:49) [spigot-1.7.10-R0.1.jar:git-Spigot-1646]
at net.minecraft.server.v1_7_R4.NetworkManager.a(NetworkManager.java:186) [spigot-1.7.10-R0.1.jar:git-Spigot-1646]
at net.minecraft.server.v1_7_R4.ServerConnection.c(ServerConnection.java:81) [spigot-1.7.10-R0.1.jar:git-Spigot-1646]
at net.minecraft.server.v1_7_R4.MinecraftServer.v(MinecraftServer.java:734) [spigot-1.7.10-R0.1.jar:git-Spigot-1646]
at net.minecraft.server.v1_7_R4.DedicatedServer.v(DedicatedServer.java:289) [spigot-1.7.10-R0.1.jar:git-Spigot-1646]
at net.minecraft.server.v1_7_R4.MinecraftServer.u(MinecraftServer.java:584) [spigot-1.7.10-R0.1.jar:git-Spigot-1646]
at net.minecraft.server.v1_7_R4.MinecraftServer.run(MinecraftServer.java:490) [spigot-1.7.10-R0.1.jar:git-Spigot-1646]
at net.minecraft.server.v1_7_R4.ThreadServerApplication.run(SourceFile:628) [spigot-1.7.10-R0.1.jar:git-Spigot-1646]
Caused by: java.lang.IncompatibleClassChangeError: Found interface com.sk89q.worldguard.protection.ApplicableRegionSet, but class was expected
at protection.MPCforum.interfaces.Utilities.protectedRegion(Utilities.java:23) ~[?:?]
at protection.MPCforum.Listeners.onDamage(Listeners.java:30) ~[?:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0_80]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[?:1.7.0_80]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.7.0_80]
at java.lang.reflect.Method.invoke(Method.java:606) ~[?:1.7.0_80]
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:298) ~[spigot-1.7.10-R0.1.jar:git-Spigot-1646]
... 23 more

Coś nie działa :(

  • 1 miesiąc temu...

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...