init
This commit is contained in:
@@ -0,0 +1,67 @@
|
||||
package org.twipnetwork.rocketJumping;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.configuration.file.FileConfiguration;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.entity.Projectile;
|
||||
import org.bukkit.entity.Firework;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.entity.ProjectileHitEvent;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
import org.bukkit.util.Vector;
|
||||
|
||||
public final class RocketJumping extends JavaPlugin implements Listener {
|
||||
|
||||
private double boostPower;
|
||||
private boolean damageShooter;
|
||||
private boolean damageOthers;
|
||||
|
||||
@Override
|
||||
public void onEnable() {
|
||||
saveDefaultConfig();
|
||||
FileConfiguration config = getConfig();
|
||||
boostPower = config.getDouble("boostPower", 4.0);
|
||||
damageShooter = config.getBoolean("damageShooter", false);
|
||||
damageOthers = config.getBoolean("damageOthers", true);
|
||||
Bukkit.getPluginManager().registerEvents(this, this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDisable() {
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onProjectileHit(ProjectileHitEvent event) {
|
||||
Projectile projectile = event.getEntity();
|
||||
|
||||
if (projectile instanceof Firework) {
|
||||
Firework firework = (Firework) projectile;
|
||||
Entity shooter = (Entity) firework.getShooter();
|
||||
|
||||
for (Entity entity : firework.getNearbyEntities(5, 5, 5)) {
|
||||
if (entity instanceof Player) {
|
||||
Player player = (Player) entity;
|
||||
Vector boostDirection = player.getLocation().toVector().subtract(firework.getLocation().toVector()).normalize();
|
||||
player.setVelocity(player.getVelocity().add(boostDirection.multiply(boostPower)));
|
||||
|
||||
if (!damageShooter && player.equals(shooter)) {
|
||||
player.setNoDamageTicks(1);
|
||||
}
|
||||
} else {
|
||||
Vector boostDirection = entity.getLocation().toVector().subtract(firework.getLocation().toVector()).normalize();
|
||||
entity.setVelocity(entity.getVelocity().add(boostDirection.multiply(boostPower)));
|
||||
}
|
||||
}
|
||||
|
||||
if (!damageOthers) {
|
||||
for (Entity entity : firework.getNearbyEntities(5, 5, 5)) {
|
||||
if (!(entity instanceof Player && entity.equals(shooter))) {
|
||||
((Player) entity).setNoDamageTicks(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
9
src/main/resources/config.yml
Normal file
9
src/main/resources/config.yml
Normal file
@@ -0,0 +1,9 @@
|
||||
# config.yml
|
||||
# boostPower sets how powerful the rocket boost is (default: 4.0)
|
||||
boostPower: 4.0
|
||||
|
||||
# damageShooter defines whether the shooter gets damages by their own fireworks (default: false)
|
||||
damageShooter: false
|
||||
|
||||
# damageOthers defines whether other people (excluding the shooter) get damaged (default: true)
|
||||
damageOthers: true
|
4
src/main/resources/paper-plugin.yml
Normal file
4
src/main/resources/paper-plugin.yml
Normal file
@@ -0,0 +1,4 @@
|
||||
name: RocketJumping
|
||||
version: '1.0-SNAPSHOT'
|
||||
main: org.twipnetwork.rocketJumping.RocketJumping
|
||||
api-version: '1.21'
|
Reference in New Issue
Block a user