mirror of
https://github.com/kaboomserver/weapons.git
synced 2024-05-13 16:31:19 +00:00
Compare commits
4 commits
a753380695
...
b665cbd192
Author | SHA1 | Date | |
---|---|---|---|
b665cbd192 | |||
2abd5d972e | |||
42df4d8795 | |||
7177cd1767 |
8
.github/workflows/main.yml
vendored
8
.github/workflows/main.yml
vendored
|
@ -11,14 +11,14 @@ jobs:
|
|||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/setup-java@v2
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/setup-java@v3
|
||||
with:
|
||||
distribution: 'temurin'
|
||||
java-version: 17
|
||||
|
||||
- name: Cache maven packages to speed up build
|
||||
uses: actions/cache@v1
|
||||
uses: actions/cache@v3
|
||||
with:
|
||||
path: ~/.m2
|
||||
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
|
||||
|
@ -27,7 +27,7 @@ jobs:
|
|||
- name: Build with Maven
|
||||
run: mvn -B package --file pom.xml
|
||||
|
||||
- uses: actions/upload-artifact@v1
|
||||
- uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: Weapons
|
||||
path: target/Weapons.jar
|
||||
|
|
|
@ -11,11 +11,10 @@ import org.bukkit.entity.Projectile;
|
|||
import org.bukkit.entity.SpectralArrow;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.entity.ProjectileHitEvent;
|
||||
import org.bukkit.event.player.PlayerInteractEvent;
|
||||
import org.bukkit.util.Vector;
|
||||
|
||||
import com.destroystokyo.paper.event.entity.ProjectileCollideEvent;
|
||||
|
||||
import net.kyori.adventure.text.Component;
|
||||
import net.kyori.adventure.text.format.TextDecoration;
|
||||
|
||||
|
@ -64,20 +63,25 @@ public final class WeaponArcher implements Listener {
|
|||
|
||||
/* Make shooter invulnerable to weapon projectiles */
|
||||
@EventHandler
|
||||
private void onProjectileCollide(final ProjectileCollideEvent event) {
|
||||
if (event.getEntityType() == EntityType.SPECTRAL_ARROW) {
|
||||
final Projectile projectile = event.getEntity();
|
||||
private void onProjectileHit(final ProjectileHitEvent event) {
|
||||
if (event.getEntityType() != EntityType.SPECTRAL_ARROW) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (Component.text("WeaponArcherArrow").equals(projectile.customName())) {
|
||||
final Entity collidedWith = event.getCollidedWith();
|
||||
final Projectile projectile = event.getEntity();
|
||||
|
||||
if (collidedWith.getType() == EntityType.PLAYER
|
||||
&& projectile.getShooter() instanceof Player
|
||||
&& ((Player) projectile.getShooter()).getUniqueId().equals(
|
||||
collidedWith.getUniqueId())) {
|
||||
event.setCancelled(true);
|
||||
}
|
||||
}
|
||||
if (!Component.text("WeaponArcherArrow").equals(projectile.customName())) {
|
||||
return;
|
||||
}
|
||||
|
||||
final Entity collidedWith = event.getHitEntity();
|
||||
|
||||
if (collidedWith != null
|
||||
&& collidedWith.getType() == EntityType.PLAYER
|
||||
&& projectile.getShooter() instanceof Player
|
||||
&& ((Player) projectile.getShooter()).getUniqueId().equals(
|
||||
collidedWith.getUniqueId())) {
|
||||
event.setCancelled(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -11,11 +11,10 @@ import org.bukkit.entity.Player;
|
|||
import org.bukkit.entity.Projectile;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.entity.ProjectileHitEvent;
|
||||
import org.bukkit.event.player.PlayerInteractEvent;
|
||||
import org.bukkit.util.Vector;
|
||||
|
||||
import com.destroystokyo.paper.event.entity.ProjectileCollideEvent;
|
||||
|
||||
import net.kyori.adventure.text.Component;
|
||||
import net.kyori.adventure.text.format.TextDecoration;
|
||||
|
||||
|
@ -45,7 +44,6 @@ public final class WeaponArmageddon implements Listener {
|
|||
EntityType.FIREBALL
|
||||
);
|
||||
|
||||
fireball.setBounce(false);
|
||||
fireball.customName(Component.text("WeaponArmegaddonCharge"));
|
||||
fireball.setDirection(velocity);
|
||||
fireball.setShooter(player);
|
||||
|
@ -69,21 +67,29 @@ public final class WeaponArmageddon implements Listener {
|
|||
/* Make shooter invulnerable to weapon projectiles, and prevent charges from
|
||||
colliding with each other */
|
||||
@EventHandler
|
||||
private void onProjectileCollide(final ProjectileCollideEvent event) {
|
||||
if (event.getEntityType() == EntityType.FIREBALL) {
|
||||
final Projectile projectile = event.getEntity();
|
||||
private void onProjectileHit(final ProjectileHitEvent event) {
|
||||
if (event.getEntityType() != EntityType.FIREBALL) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (Component.text("WeaponArmegaddonCharge").equals(projectile.customName())) {
|
||||
final Entity collidedWith = event.getCollidedWith();
|
||||
final Projectile projectile = event.getEntity();
|
||||
|
||||
if ((collidedWith.getType() == EntityType.PLAYER
|
||||
&& projectile.getShooter() instanceof Player
|
||||
&& ((Player) projectile.getShooter()).getUniqueId().equals(
|
||||
collidedWith.getUniqueId()))
|
||||
|| collidedWith.getType() == EntityType.FIREBALL) {
|
||||
event.setCancelled(true);
|
||||
}
|
||||
}
|
||||
if (!Component.text("WeaponArmegaddonCharge").equals(projectile.customName())) {
|
||||
return;
|
||||
}
|
||||
|
||||
final Entity collidedWith = event.getHitEntity();
|
||||
|
||||
if (collidedWith == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
if ((collidedWith.getType() == EntityType.PLAYER
|
||||
&& projectile.getShooter() instanceof Player
|
||||
&& ((Player) projectile.getShooter()).getUniqueId().equals(
|
||||
collidedWith.getUniqueId()))
|
||||
|| collidedWith.getType() == EntityType.FIREBALL) {
|
||||
event.setCancelled(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -25,7 +25,6 @@ import org.bukkit.potion.PotionEffect;
|
|||
import org.bukkit.potion.PotionEffectType;
|
||||
import org.bukkit.util.Vector;
|
||||
|
||||
import com.destroystokyo.paper.event.entity.ProjectileCollideEvent;
|
||||
import com.destroystokyo.paper.event.server.ServerTickStartEvent;
|
||||
|
||||
import net.kyori.adventure.text.Component;
|
||||
|
@ -51,47 +50,46 @@ public final class WeaponMachineGun implements Listener {
|
|||
}
|
||||
|
||||
/* Make shooter invulnerable to weapon projectiles */
|
||||
@EventHandler
|
||||
private void onProjectileCollide(final ProjectileCollideEvent event) {
|
||||
if (event.getEntityType() == EntityType.ARROW) {
|
||||
final Projectile projectile = event.getEntity();
|
||||
|
||||
if (Component.text("WeaponMachineGunBullet").equals(projectile.customName())) {
|
||||
final Entity collidedWith = event.getCollidedWith();
|
||||
|
||||
if (collidedWith.getType() == EntityType.PLAYER
|
||||
&& projectile.getShooter() instanceof Player
|
||||
&& ((Player) projectile.getShooter()).getUniqueId().equals(
|
||||
collidedWith.getUniqueId())) {
|
||||
event.setCancelled(true);
|
||||
} else if (collidedWith instanceof LivingEntity) {
|
||||
final int duration = 90000;
|
||||
final int amplifier = 3;
|
||||
final boolean ambient = true;
|
||||
final boolean particles = false;
|
||||
|
||||
final PotionEffect harm = new PotionEffect(
|
||||
PotionEffectType.HARM,
|
||||
duration,
|
||||
amplifier,
|
||||
ambient,
|
||||
particles
|
||||
);
|
||||
|
||||
((LivingEntity) collidedWith).addPotionEffect(harm, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
private void onProjectileHit(final ProjectileHitEvent event) {
|
||||
if (event.getEntityType() == EntityType.ARROW) {
|
||||
final Projectile projectile = event.getEntity();
|
||||
if (event.getEntityType() != EntityType.ARROW) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (Component.text("WeaponMachineGunBullet").equals(projectile.customName())) {
|
||||
projectile.remove();
|
||||
}
|
||||
final Projectile projectile = event.getEntity();
|
||||
|
||||
if (!Component.text("WeaponMachineGunBullet").equals(projectile.customName())) {
|
||||
return;
|
||||
}
|
||||
|
||||
final Entity collidedWith = event.getHitEntity();
|
||||
projectile.remove();
|
||||
|
||||
if (collidedWith == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (collidedWith.getType() == EntityType.PLAYER
|
||||
&& projectile.getShooter() instanceof Player
|
||||
&& ((Player) projectile.getShooter()).getUniqueId().equals(
|
||||
collidedWith.getUniqueId())) {
|
||||
event.setCancelled(true);
|
||||
|
||||
} else if (collidedWith instanceof LivingEntity) {
|
||||
final int duration = 90000;
|
||||
final int amplifier = 3;
|
||||
final boolean ambient = true;
|
||||
final boolean particles = false;
|
||||
|
||||
final PotionEffect harm = new PotionEffect(
|
||||
PotionEffectType.HARM,
|
||||
duration,
|
||||
amplifier,
|
||||
ambient,
|
||||
particles
|
||||
);
|
||||
|
||||
((LivingEntity) collidedWith).addPotionEffect(harm);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -111,27 +109,29 @@ public final class WeaponMachineGun implements Listener {
|
|||
|
||||
if (player == null) {
|
||||
iterator.remove();
|
||||
continue;
|
||||
}
|
||||
|
||||
final Location eyeLocation = player.getEyeLocation();
|
||||
final World world = player.getWorld();
|
||||
final Vector velocity = eyeLocation.getDirection().multiply(12);
|
||||
|
||||
final Arrow arrow = player.launchProjectile(Arrow.class);
|
||||
world.getChunkAtAsync(eyeLocation).thenAccept(chunk -> {
|
||||
final Arrow arrow = player.launchProjectile(Arrow.class);
|
||||
final float volume = 1.0F;
|
||||
final float pitch = 63.0F;
|
||||
|
||||
arrow.customName(Component.text("WeaponMachineGunBullet"));
|
||||
arrow.setShooter(player);
|
||||
arrow.setVelocity(velocity);
|
||||
arrow.customName(Component.text("WeaponMachineGunBullet"));
|
||||
arrow.setShooter(player);
|
||||
arrow.setVelocity(velocity);
|
||||
|
||||
final float volume = 1.0F;
|
||||
final float pitch = 63.0F;
|
||||
|
||||
world.playSound(
|
||||
eyeLocation,
|
||||
Sound.ENTITY_GENERIC_EXPLODE,
|
||||
volume,
|
||||
pitch
|
||||
);
|
||||
world.playSound(
|
||||
eyeLocation,
|
||||
Sound.ENTITY_GENERIC_EXPLODE,
|
||||
volume,
|
||||
pitch
|
||||
);
|
||||
});
|
||||
|
||||
numFiredBullets++;
|
||||
machineGunActive.put(playerUUID, numFiredBullets);
|
||||
|
|
Loading…
Reference in a new issue