SteamWar/FightSystem
Archiviert
13
1

Add Bow Damge and Fire #261

Manuell gemergt
Lixfel hat 14 Commits von record_extension nach master 2021-04-23 19:52:27 +02:00 zusammengeführt
Nur Änderungen aus Commit 4cc03892c9 werden angezeigt - Alle Commits anzeigen

Datei anzeigen

@ -55,6 +55,33 @@ public class Recording implements Listener {
private static final int AIR = 0;
private static final Random random = new Random();
private static final PacketAdapter BOW_PACKET_PROCESSOR = new PacketAdapter(FightSystem.getPlugin(), PacketType.Play.Client.BLOCK_PLACE) {
@Override
public void onPacketReceiving(PacketEvent event) {
PacketContainer packet = event.getPacket();
EnumWrappers.Hand hand = packet.getHands().read(0);
Player p = event.getPlayer();
if(!((hand == EnumWrappers.Hand.MAIN_HAND && p.getInventory().getItemInMainHand().getType() == Material.BOW) ||
(hand == EnumWrappers.Hand.OFF_HAND && p.getInventory().getItemInOffHand().getType() == Material.BOW)))
return;
RecordSystem.bowSpan(p, true, hand != EnumWrappers.Hand.MAIN_HAND);
ProtocolLibrary.getProtocolManager().addPacketListener(new PacketAdapter(FightSystem.getPlugin(), PacketType.Play.Client.BLOCK_DIG) {
Chaoscaot markierte diese Unterhaltung als gelöst Veraltet
Veraltet
Review

ARRRGG! Nicht für jedes Paket einen PacketListener registrieren! Bitte nicht! (Musst halt ein Set einbauen, wer gerade den Bogen gezogen hat, aber das bitte nicht!

ARRRGG! Nicht für jedes Paket einen PacketListener registrieren! Bitte nicht! (Musst halt ein Set einbauen, wer gerade den Bogen gezogen hat, aber das bitte nicht!
@Override
public void onPacketReceiving(PacketEvent e) {
if(e.getPlayer() != event.getPlayer())
return;
PacketContainer packetDig = e.getPacket();
if(packetDig.getPlayerDigTypes().read(0) == EnumWrappers.PlayerDigType.RELEASE_USE_ITEM) {
RecordSystem.bowSpan(e.getPlayer(), false, hand != EnumWrappers.Hand.MAIN_HAND);
ProtocolLibrary.getProtocolManager().removePacketListener(this);
Chaoscaot markierte diese Unterhaltung als gelöst Veraltet
Veraltet
Review

Unsauber, das hier zu Registrieren. Ggf. wäre es sinnvoll, einen PacketAdapterStateDependent neu einzuführen, ansonsten das bitte hier als StateDependent registrieren (und wieder entregistrieren).

Dann läuft das nicht mit, wenn es nicht benötigt wird.
Falls du eine Idee brauchst, wie das geht, schau mal im TechHider nach.

Unsauber, das hier zu Registrieren. Ggf. wäre es sinnvoll, einen PacketAdapterStateDependent neu einzuführen, ansonsten das bitte hier als StateDependent registrieren (und wieder entregistrieren). Dann läuft das nicht mit, wenn es nicht benötigt wird. Falls du eine Idee brauchst, wie das geht, schau mal im TechHider nach.
}
}
});
}
};
public Recording() {
new StateDependentListener(Config.recording(), FightState.All, this);
Chaoscaot markierte diese Unterhaltung als gelöst Veraltet
Veraltet
Review

Bogen kann nur gespannt werden, wenn der Bogen in der Haupthand ist. Armbrüste könnten ggf. noch problematisch sein, genauso weiß ich nicht, ob das Material genau so seit der 1.8 hieß.

Bogen kann nur gespannt werden, wenn der Bogen in der Haupthand ist. Armbrüste könnten ggf. noch problematisch sein, genauso weiß ich nicht, ob das Material genau so seit der 1.8 hieß.
@ -74,35 +101,17 @@ public class Recording implements Listener {
despawnTNT();
}
}.register();
//Bow Listener
ProtocolLibrary.getProtocolManager().addPacketListener(new PacketAdapter(FightSystem.getPlugin(), PacketType.Play.Client.BLOCK_PLACE) {
new StateDependent(Config.recording(), FightState.All) {
Chaoscaot markierte diese Unterhaltung als gelöst Veraltet
Veraltet
Review

Warum willst du den Bogen Listener immer haben? Ist das nicht etwas unnütz, weil wann genau im Fight hat man einen Bogen? Ich glaube nur im prepare und im Fight selber. Also kann man das hier doch nocht optimieren?

Warum willst du den Bogen Listener immer haben? Ist das nicht etwas unnütz, weil wann genau im Fight hat man einen Bogen? Ich glaube nur im prepare und im Fight selber. Also kann man das hier doch nocht optimieren?
@Override
public void onPacketReceiving(PacketEvent event) {
PacketContainer packet = event.getPacket();
EnumWrappers.Hand hand = packet.getHands().read(0);
Player p = event.getPlayer();
if(!((hand == EnumWrappers.Hand.MAIN_HAND && p.getInventory().getItemInMainHand().getType() == Material.BOW) ||
(hand == EnumWrappers.Hand.OFF_HAND && p.getInventory().getItemInOffHand().getType() == Material.BOW)))
return;
RecordSystem.bowSpan(p, true, hand != EnumWrappers.Hand.MAIN_HAND);
ProtocolLibrary.getProtocolManager().addPacketListener(new PacketAdapter(FightSystem.getPlugin(), PacketType.Play.Client.BLOCK_DIG) {
@Override
public void onPacketReceiving(PacketEvent e) {
if(e.getPlayer() != event.getPlayer())
return;
PacketContainer packetDig = e.getPacket();
if(packetDig.getPlayerDigTypes().read(0) == EnumWrappers.PlayerDigType.RELEASE_USE_ITEM) {
RecordSystem.bowSpan(e.getPlayer(), false, hand != EnumWrappers.Hand.MAIN_HAND);
ProtocolLibrary.getProtocolManager().removePacketListener(this);
}
}
});
public void enable() {
ProtocolLibrary.getProtocolManager().addPacketListener(BOW_PACKET_PROCESSOR);
}
});
@Override
public void disable() {
ProtocolLibrary.getProtocolManager().removePacketListener(BOW_PACKET_PROCESSOR);
}
};
}
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)