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

Problem klasa antylogout


EnglishPhilips

Rekomendowane odpowiedzi

Opublikowano

Witam,

mam takie pytanie czy ma ktoś może dobrą klasę EntityDamageByEntityListener z tych corów co latają po internecie? Ja mam coś takiego ale problem z tym jest taki, że nie do końca chce działać tak jak powinno i jeżeli się kogoś uderzy to antylogout przypisuje się na tą "bitą" osobę a nie na 2 jednocześnie:

package net.ernioo.core.listeners.bukkit.entity;

import org.bukkit.command.CommandSender;
import org.bukkit.enchantments.Enchantment;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.bukkit.event.entity.EntityShootBowEvent;
import org.bukkit.inventory.ItemStack;

import net.ernioo.core.configuration.Settings;
import net.ernioo.core.managers.AntiLogoutManager;
import net.ernioo.core.managers.GuildManager;
import net.ernioo.core.objects.AntiLogout;
import net.ernioo.core.objects.guild.Guild;
import net.ernioo.core.utils.ChatUtil;
import net.ernioo.core.utils.TimeUtil;

public class EntityDamageByEntityListener implements Listener
{
    public static Integer counter;
    
    @EventHandler(priority = EventPriority.HIGHEST)
    public void EntityDamageByEntity(final EntityDamageByEntityEvent e) {
        if (e.isCancelled()) {
            return;
        }
        if (!(e.getEntity() instanceof Player)) {
            return;
        }
        final Player d = ChatUtil.getDamager(e);
        if (d == null) {
            return;
        }
        final Player p = (Player)e.getEntity();
        if (p.equals(d)) {
            return;
        }
        final AntiLogout u = AntiLogoutManager.getCombat(p);
        if (u == null) {
            return;
        }
        if (this.is(p, d, e)) {
            return;
        }
        if (!u.hasFight()) {
            String msg = ChatUtil.fixColor(Settings.ANTILOGOUT_MESSAGE_START);
            msg = msg.replace("{TIME}", Integer.toString(Settings.ANTILOGOUT_TIME));
            String msg2 = ChatUtil.fixColor(Settings.ANTILOGOUT_ACTIONBAR_START);
            msg2 = msg2.replace("{TIME}", Integer.toString(Settings.ANTILOGOUT_TIME));
            ChatUtil.sendMessage((CommandSender)p, msg);
            ChatUtil.sendMessage((CommandSender)d, msg);
            ChatUtil.sendActionBar(p, msg2, 20*30);
            ChatUtil.sendActionBar(d, msg2, 20);
        }
        u.setLastAttactTime(System.currentTimeMillis() + TimeUtil.SECOND.getTime(Settings.ANTILOGOUT_TIME));
        if (u.getLastAttactkPlayer() != d) {
            u.setLastAsystPlayer(u.getLastAttactkPlayer());
            u.setLastAsystTime(System.currentTimeMillis() + TimeUtil.SECOND.getTime(Settings.ANTILOGOUT_TIME));
        }
        u.setLastAttactkPlayer(d);
    }
    
    @EventHandler
    public void EntityShootBow(final EntityShootBowEvent e) {
        final ItemStack bow = e.getBow();
        if (bow.containsEnchantment(Enchantment.ARROW_KNOCKBACK)) {
            if (bow.containsEnchantment(Enchantment.DURABILITY)) {
                bow.removeEnchantment(Enchantment.DURABILITY);
            }
            if (bow.getDurability() < 339) {
                bow.setDurability((short)338);
            }
        }
    }
    
    
    private boolean is(final Player p, final Player d, final EntityDamageByEntityEvent e) {
        final Guild g = GuildManager.getGuild(p);
        final Guild o = GuildManager.getGuild(d);
        if (g == null || o == null) {
            return false;
        }
        if (g.equals(o)) {
            if (g.isPvp()) {
            }
            else {
                e.setCancelled(true);
            }
            return true;
        }
        if (g.getAlly().contains(o.getTag())) {
            if (!g.isPvpAlly() || !o.isPvpAlly()) {
                e.setCancelled(true);
            }
            else {
            }
            return true;
        }
        return false;
    }
}

Pozdrawiam i dziękuję za pomoc

Opublikowano

Tak jak pisałem to już wcześniej.

MPCForum nie służy do pomagania edycji czyjejś pracy bez jego zgody.

Naucz się podstaw javy, a potem szukaj pomocy.

 

CWeKkdQ.png

Opublikowano
1 godzinę temu, ScoreBoard napisał:

Twój pomysł jest idiotyczny, ponad to mpcforum nie służy aby pomagać osobom, które nie szanują praw autorskich autorów.

Pierwszy raz sie z Toba zgodzę.

 

Nie ma to jak podpierdzielić kod i jeszcze nie pousuwać finalnych zmiennych, tam gdzie nie są potrzebne.

ChatUtil.getDamager(e)  haha, jak by nie było można pobrać tego z samego event'u

Jakiś kolejny noname nam sie rodzi.  "ernioo" ile tam "pseudusiów" było powpisywanych... Żałosne.

@ernioo Na mpc forum znaleziony winny..

 

Opublikowano
9 godzin temu, TheMajster napisał:

Pierwszy raz sie z Toba zgodzę.

 

Nie ma to jak podpierdzielić kod i jeszcze nie pousuwać finalnych zmiennych, tam gdzie nie są potrzebne.

ChatUtil.getDamager(e)  haha, jak by nie było można pobrać tego z samego event'u

Jakiś kolejny noname nam sie rodzi.  "ernioo" ile tam "pseudusiów" było powpisywanych... Żałosne.

@ernioo Na mpc forum znaleziony winny..

 

Ernioo nie jest programistą, ani za niego się nie uważa. Chciał na coś zarobić. Edytował kguildy pod dzieci i sprzedał. To nie jego wina że np: Matiqu zaczoł to udostępniać na skype. 

 

CWeKkdQ.png

Opublikowano
Dnia 15.01.2018 o 23:31, PalaTime napisał:

Ernioo nie jest programistą, ani za niego się nie uważa. Chciał na coś zarobić. Edytował kguildy pod dzieci i sprzedał. To nie jego wina że np: Matiqu zaczoł to udostępniać na skype. 

Teraz broniąc typa, bardziej go ośmieszasz. Jak nie ma $ to niech idzie sobie dorobić w pracy normalnej a nie kradnie cudzą prace zmienia tylko wiadomosci itd i sprzedaje. Dobrze że udostepnil bo ten ernio "dzieciak" sprzedaje nie swoją prace. Takich to powinni już dawno wykastrować..

Piszesz że pod dzieci, czyli pod ciebie też. naucz sie pisać, dopiero potem pisz. "zaczoł -> zaczął"

 

Opublikowano
3 godziny temu, TheMajster napisał:

Teraz broniąc typa, bardziej go ośmieszasz. Jak nie ma $ to niech idzie sobie dorobić w pracy normalnej a nie kradnie cudzą prace zmienia tylko wiadomosci itd i sprzedaje. Dobrze że udostepnil bo ten ernio "dzieciak" sprzedaje nie swoją prace. Takich to powinni już dawno wykastrować..

Piszesz że pod dzieci, czyli pod ciebie też. naucz sie pisać, dopiero potem pisz. "zaczoł -> zaczął"

 

Jesteś tak przyjebany że to jest śmieszne.

Wyzywasz go od dzieci, a potem mówisz aby poszedł do pracy... Ty myślisz chociaż co piszesz? 

Sam sprzedawałeś ludziom wyjęty kod z myhard'ów więc najpierw spójrz na siebie.

Sam nie potrafisz używać przecinków i znalazłeś aż jedną literówkę to NAPRAWDĘ poważny błąd...

 

CWeKkdQ.png

Opublikowano
6 godzin temu, PalaTime napisał:

Jesteś tak przyjebany że to jest śmieszne.

Wyzywasz go od dzieci, a potem mówisz aby poszedł do pracy... Ty myślisz chociaż co piszesz? 

Sam sprzedawałeś ludziom wyjęty kod z myhard'ów więc najpierw spójrz na siebie.

Sam nie potrafisz używać przecinków i znalazłeś aż jedną literówkę to NAPRAWDĘ poważny błąd...

Widać twój iloraz inteligencji.. A co, że niby jak jest młody to nie może pracować? Może sobie dorobić..

2 lata temu Drop sprzedawałem przerobiony, gdzie tam nawet jedna klasa nie przypominała tej z myhardów...

używam przecinków tam gdzie uważam to za słuszne, a nie popełniam błedy w pisowni,...

Opublikowano
11 godzin temu, PalaTime napisał:

Jesteś tak przyjebany że to jest śmieszne.

Wyzywasz go od dzieci, a potem mówisz aby poszedł do pracy... Ty myślisz chociaż co piszesz? 

Sam sprzedawałeś ludziom wyjęty kod z myhard'ów więc najpierw spójrz na siebie.

Sam nie potrafisz używać przecinków i znalazłeś aż jedną literówkę to NAPRAWDĘ poważny błąd...

Nie literowka tylko blad ortograficzny... Jest roznica pomiedzy zaczol a zacazl

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...