From 8763c29532afee95bc5d644e5f74d6f3137dbcfa Mon Sep 17 00:00:00 2001 From: AWang05 <awang05@yeah.net> Date: Sun, 29 Sep 2024 15:47:15 +0800 Subject: [PATCH 1/8] =?UTF-8?q?=E5=9B=9E=E6=94=B6=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/awang05/ballGame/BallGame.java | 3 ++ .../ballGame/events/RecycleListener.java | 30 +++++++++++++++++++ 2 files changed, 33 insertions(+) create mode 100644 src/main/java/org/awang05/ballGame/events/RecycleListener.java diff --git a/src/main/java/org/awang05/ballGame/BallGame.java b/src/main/java/org/awang05/ballGame/BallGame.java index ac0f4f2..b0c5819 100644 --- a/src/main/java/org/awang05/ballGame/BallGame.java +++ b/src/main/java/org/awang05/ballGame/BallGame.java @@ -1,5 +1,6 @@ package org.awang05.ballGame; +import org.awang05.ballGame.events.*; import org.bukkit.plugin.java.JavaPlugin; public final class BallGame extends JavaPlugin { @@ -7,7 +8,9 @@ public final class BallGame extends JavaPlugin { @Override public void onEnable() { // Plugin startup logic + getServer().getPluginManager().registerEvents(new RecycleListener(),this); + getLogger().info("BallGame鍚姩"); } @Override diff --git a/src/main/java/org/awang05/ballGame/events/RecycleListener.java b/src/main/java/org/awang05/ballGame/events/RecycleListener.java new file mode 100644 index 0000000..29efe3b --- /dev/null +++ b/src/main/java/org/awang05/ballGame/events/RecycleListener.java @@ -0,0 +1,30 @@ +package org.awang05.ballGame.events; + +import org.bukkit.Material; +import org.bukkit.entity.Entity; +import org.bukkit.entity.EntityType; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.player.PlayerMoveEvent; +import org.bukkit.inventory.ItemStack; + +import java.util.List; + +public class RecycleListener implements Listener { + @EventHandler + public void onPlayerShift(PlayerMoveEvent event){ + Player player= event.getPlayer(); + if(player.isSneaking()&&player.getInventory().getItemInOffHand().getType()== Material.AIR){ + List<Entity> entityList=player.getNearbyEntities(1,1,1); + for(Entity e:entityList){ + if (e.getType()== EntityType.CHICKEN){ + ItemStack itemStack=new ItemStack(Material.EGG); + player.getInventory().setItemInOffHand(itemStack); + e.remove(); + return; + } + } + } + } +} -- GitLab From 10785414815d3a26b836ba48fb1ed3acc717f456 Mon Sep 17 00:00:00 2001 From: AWang05 <awang05@yeah.net> Date: Sun, 29 Sep 2024 17:16:34 +0800 Subject: [PATCH 2/8] =?UTF-8?q?=E6=8A=9B=E5=87=BA=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/awang05/ballGame/BallGame.java | 1 + .../ballGame/events/ThrowListener.java | 46 +++++++++++++++++++ .../{paper-plugin.yml => plugin.yml} | 0 3 files changed, 47 insertions(+) create mode 100644 src/main/java/org/awang05/ballGame/events/ThrowListener.java rename src/main/resources/{paper-plugin.yml => plugin.yml} (100%) diff --git a/src/main/java/org/awang05/ballGame/BallGame.java b/src/main/java/org/awang05/ballGame/BallGame.java index b0c5819..b35b772 100644 --- a/src/main/java/org/awang05/ballGame/BallGame.java +++ b/src/main/java/org/awang05/ballGame/BallGame.java @@ -9,6 +9,7 @@ public final class BallGame extends JavaPlugin { public void onEnable() { // Plugin startup logic getServer().getPluginManager().registerEvents(new RecycleListener(),this); + getServer().getPluginManager().registerEvents(new ThrowListener(),this); getLogger().info("BallGame鍚姩"); } diff --git a/src/main/java/org/awang05/ballGame/events/ThrowListener.java b/src/main/java/org/awang05/ballGame/events/ThrowListener.java new file mode 100644 index 0000000..7425f0d --- /dev/null +++ b/src/main/java/org/awang05/ballGame/events/ThrowListener.java @@ -0,0 +1,46 @@ +package org.awang05.ballGame.events; + +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.entity.Chicken; +import org.bukkit.entity.EntityType; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.player.PlayerInteractEvent; +import org.bukkit.inventory.ItemStack; +import org.bukkit.potion.PotionEffect; +import org.bukkit.potion.PotionEffectType; +import org.bukkit.util.Vector; + +public class ThrowListener implements Listener { + @EventHandler + public void onPlayerInteract(PlayerInteractEvent event){ + Player player= event.getPlayer(); + ItemStack itemStack=player.getInventory().getItemInOffHand(); + if(itemStack.getType()== Material.EGG&& !player.isSneaking()){ + event.setCancelled(true); + Location eyeLocation=player.getEyeLocation(); + Vector direction=eyeLocation.getDirection(); + double x=direction.getX(); + double z=direction.getZ(); + final double sqrt = Math.sqrt(x * x + z * z); + double dx=x/ sqrt; + double dz=z/ sqrt; + eyeLocation.add(dx,0,dz); + Chicken entity= (Chicken) player.getWorld().spawnEntity(eyeLocation, EntityType.CHICKEN); + entity.setVelocity(new Vector(0,0.8,0)); + entity.addPotionEffect(new PotionEffect(PotionEffectType.DAMAGE_RESISTANCE,1919810,4)); + entity.addPotionEffect(new PotionEffect(PotionEffectType.SLOW,1919810,114513)); + entity.addPotionEffect(new PotionEffect(PotionEffectType.JUMP,1919810,-114515)); + + int n=itemStack.getAmount(); + if(n>1) { + itemStack.setAmount(n - 1); + player.getInventory().setItemInOffHand(itemStack); + } + else + player.getInventory().setItemInOffHand(null); + } + } +} diff --git a/src/main/resources/paper-plugin.yml b/src/main/resources/plugin.yml similarity index 100% rename from src/main/resources/paper-plugin.yml rename to src/main/resources/plugin.yml -- GitLab From 3c844e46455b75f7c208bcd2b7f5f26f646fb2cb Mon Sep 17 00:00:00 2001 From: AWang05 <awang05@yeah.net> Date: Sun, 29 Sep 2024 20:16:26 +0800 Subject: [PATCH 3/8] =?UTF-8?q?=E6=89=93=E5=87=BB=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/awang05/ballGame/BallGame.java | 1 + .../awang05/ballGame/events/HitListener.java | 32 +++++++++++++++++++ .../ballGame/events/ThrowListener.java | 2 +- 3 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 src/main/java/org/awang05/ballGame/events/HitListener.java diff --git a/src/main/java/org/awang05/ballGame/BallGame.java b/src/main/java/org/awang05/ballGame/BallGame.java index b35b772..72a63cd 100644 --- a/src/main/java/org/awang05/ballGame/BallGame.java +++ b/src/main/java/org/awang05/ballGame/BallGame.java @@ -10,6 +10,7 @@ public final class BallGame extends JavaPlugin { // Plugin startup logic getServer().getPluginManager().registerEvents(new RecycleListener(),this); getServer().getPluginManager().registerEvents(new ThrowListener(),this); + getServer().getPluginManager().registerEvents(new HitListener(),this); getLogger().info("BallGame鍚姩"); } diff --git a/src/main/java/org/awang05/ballGame/events/HitListener.java b/src/main/java/org/awang05/ballGame/events/HitListener.java new file mode 100644 index 0000000..13fb199 --- /dev/null +++ b/src/main/java/org/awang05/ballGame/events/HitListener.java @@ -0,0 +1,32 @@ +package org.awang05.ballGame.events; + +import org.bukkit.Material; +import org.bukkit.entity.Chicken; +import org.bukkit.entity.Entity; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.entity.EntityDamageByEntityEvent; +import org.bukkit.event.player.PlayerInteractEvent; + +public class HitListener implements Listener { + private double speed=1.6; + //private final double min=0.4; + //private final double max=3.4; + + @EventHandler + public void OnHit(EntityDamageByEntityEvent event){ + Entity entity= event.getEntity(); + if(!(entity instanceof Chicken)) return; + if(!(event.getDamager() instanceof Player player)) return; + event.setCancelled(true); + entity.setVelocity(player.getEyeLocation().getDirection().multiply(speed)); //灏嗛浮鍚戦潰鍚戞柟鍚戞墦鍑� + } + + @EventHandler + public void OnRight(PlayerInteractEvent event){ + Player player= event.getPlayer(); + if(player.getInventory().getItemInMainHand().getType()!= Material.STICK) return; + speed=1.6; //鏆傚畾锛屼互鍚庢敼鎴愬姩鎬佺殑[min,max] + } +} diff --git a/src/main/java/org/awang05/ballGame/events/ThrowListener.java b/src/main/java/org/awang05/ballGame/events/ThrowListener.java index 7425f0d..b169d3d 100644 --- a/src/main/java/org/awang05/ballGame/events/ThrowListener.java +++ b/src/main/java/org/awang05/ballGame/events/ThrowListener.java @@ -29,7 +29,7 @@ public class ThrowListener implements Listener { double dz=z/ sqrt; eyeLocation.add(dx,0,dz); Chicken entity= (Chicken) player.getWorld().spawnEntity(eyeLocation, EntityType.CHICKEN); - entity.setVelocity(new Vector(0,0.8,0)); + entity.setVelocity(new Vector(0,0.7,0)); entity.addPotionEffect(new PotionEffect(PotionEffectType.DAMAGE_RESISTANCE,1919810,4)); entity.addPotionEffect(new PotionEffect(PotionEffectType.SLOW,1919810,114513)); entity.addPotionEffect(new PotionEffect(PotionEffectType.JUMP,1919810,-114515)); -- GitLab From 6f129c5092ad28e12d7eb4e7a2c3731d992feef8 Mon Sep 17 00:00:00 2001 From: AWang05 <awang05@yeah.net> Date: Mon, 30 Sep 2024 20:42:14 +0800 Subject: [PATCH 4/8] =?UTF-8?q?=E8=93=84=E5=8A=9B=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ballGame/controller/ChargeController.java | 68 +++++++++++++++++++ .../awang05/ballGame/events/HitListener.java | 20 ++++-- 2 files changed, 84 insertions(+), 4 deletions(-) create mode 100644 src/main/java/org/awang05/ballGame/controller/ChargeController.java diff --git a/src/main/java/org/awang05/ballGame/controller/ChargeController.java b/src/main/java/org/awang05/ballGame/controller/ChargeController.java new file mode 100644 index 0000000..046daae --- /dev/null +++ b/src/main/java/org/awang05/ballGame/controller/ChargeController.java @@ -0,0 +1,68 @@ +package org.awang05.ballGame.controller; + +import org.bukkit.entity.Player; +import org.bukkit.plugin.Plugin; +import org.bukkit.scheduler.BukkitRunnable; + +public class ChargeController { + private static final float min= 0.6F; + private static final float max= 3.6F; + private static final float dx=0.1F; + private float ad=-dx; + private float x=-1F; + + private final Player player; + private int time=-1; + public ChargeController(Player p,Plugin plugin){ + player=p; + new BukkitRunnable() { //adder + @Override + public void run() { + if(!player.isOnline()){ + this.cancel(); + return; + } + if(x<0) return; + x+=ad; + if(x<0){ + player.setExp(0); + x=-1; + } + else if(x>=1){ + x=1; + player.setExp(1); + } + else { + player.setExp(x); + } + } + }.runTaskTimer(plugin,0,2); + + new BukkitRunnable(){ //timer + @Override + public void run() { + if(time<=0) return; + --time; + if (time==0){ + ad=-dx; + } + } + }.runTaskTimer(plugin,0,2); + } + + public float getSpeed(){ + if(x<=0) return min; + return min+x*(max-min); + } + + public void press(){ + ad=dx; + time=2; + if(x<0) x=0; + } + + public void clear(){ + x=-1; + player.setExp(0); + } +} diff --git a/src/main/java/org/awang05/ballGame/events/HitListener.java b/src/main/java/org/awang05/ballGame/events/HitListener.java index 13fb199..ef74555 100644 --- a/src/main/java/org/awang05/ballGame/events/HitListener.java +++ b/src/main/java/org/awang05/ballGame/events/HitListener.java @@ -1,5 +1,7 @@ package org.awang05.ballGame.events; +import org.awang05.ballGame.BallGame; +import org.awang05.ballGame.controller.ChargeController; import org.bukkit.Material; import org.bukkit.entity.Chicken; import org.bukkit.entity.Entity; @@ -8,11 +10,18 @@ import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.entity.EntityDamageByEntityEvent; import org.bukkit.event.player.PlayerInteractEvent; +import org.bukkit.event.player.PlayerJoinEvent; + +import java.util.Dictionary; +import java.util.Hashtable; public class HitListener implements Listener { - private double speed=1.6; - //private final double min=0.4; - //private final double max=3.4; + private final Dictionary<Player, ChargeController> ConDic=new Hashtable<>(); + @EventHandler + public void OnJoin(PlayerJoinEvent event){ + Player player=event.getPlayer(); + ConDic.put(player,new ChargeController(player, BallGame.getProvidingPlugin(BallGame.class))); + } @EventHandler public void OnHit(EntityDamageByEntityEvent event){ @@ -20,13 +29,16 @@ public class HitListener implements Listener { if(!(entity instanceof Chicken)) return; if(!(event.getDamager() instanceof Player player)) return; event.setCancelled(true); + double speed=ConDic.get(player).getSpeed(); entity.setVelocity(player.getEyeLocation().getDirection().multiply(speed)); //灏嗛浮鍚戦潰鍚戞柟鍚戞墦鍑� + ConDic.get(player).clear(); } @EventHandler public void OnRight(PlayerInteractEvent event){ + if(!event.getAction().isRightClick())return; Player player= event.getPlayer(); if(player.getInventory().getItemInMainHand().getType()!= Material.STICK) return; - speed=1.6; //鏆傚畾锛屼互鍚庢敼鎴愬姩鎬佺殑[min,max] + ConDic.get(player).press(); } } -- GitLab From 1cb6e29c2c7d6145e8a4b4dd569368f683702d54 Mon Sep 17 00:00:00 2001 From: AWang05 <awang05@yeah.net> Date: Mon, 30 Sep 2024 21:53:36 +0800 Subject: [PATCH 5/8] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=93=84=E5=8A=9B?= =?UTF-8?q?=E5=90=8Epause?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ballGame/controller/ChargeController.java | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/awang05/ballGame/controller/ChargeController.java b/src/main/java/org/awang05/ballGame/controller/ChargeController.java index 046daae..916f3e6 100644 --- a/src/main/java/org/awang05/ballGame/controller/ChargeController.java +++ b/src/main/java/org/awang05/ballGame/controller/ChargeController.java @@ -8,11 +8,12 @@ public class ChargeController { private static final float min= 0.6F; private static final float max= 3.6F; private static final float dx=0.1F; + private static final int pause=10; private float ad=-dx; private float x=-1F; private final Player player; - private int time=-1; + private int time=-1,time1=-1; public ChargeController(Player p,Plugin plugin){ player=p; new BukkitRunnable() { //adder @@ -44,10 +45,22 @@ public class ChargeController { if(time<=0) return; --time; if (time==0){ - ad=-dx; + ad=0; + time1=pause; } } }.runTaskTimer(plugin,0,2); + new BukkitRunnable() { //pause timer + @Override + public void run() { + if(ad!=0) return; + if(time1>0){ + time1-=2; + return; + } + ad=-dx; + } + }.runTaskTimer(plugin,2,2); } public float getSpeed(){ -- GitLab From 9798d3fc3fc265aa2cf82c9c6773860240953ad5 Mon Sep 17 00:00:00 2001 From: AWang05 <awang05@yeah.net> Date: Thu, 3 Oct 2024 21:16:09 +0800 Subject: [PATCH 6/8] new project --- pom.xml | 4 ++-- .../controller/ChargeController.java | 2 +- .../{ballGame => nmoFootball}/events/HitListener.java | 8 ++++---- .../{ballGame => nmoFootball}/events/RecycleListener.java | 2 +- .../{ballGame => nmoFootball}/events/ThrowListener.java | 2 +- .../BallGame.java => nmoFootball/nmoFootball.java} | 8 ++++---- src/main/resources/plugin.yml | 4 ++-- 7 files changed, 15 insertions(+), 15 deletions(-) rename src/main/java/org/awang05/{ballGame => nmoFootball}/controller/ChargeController.java (97%) rename src/main/java/org/awang05/{ballGame => nmoFootball}/events/HitListener.java (85%) rename src/main/java/org/awang05/{ballGame => nmoFootball}/events/RecycleListener.java (96%) rename src/main/java/org/awang05/{ballGame => nmoFootball}/events/ThrowListener.java (97%) rename src/main/java/org/awang05/{ballGame/BallGame.java => nmoFootball/nmoFootball.java} (72%) diff --git a/pom.xml b/pom.xml index 48ca14e..a9e93fa 100644 --- a/pom.xml +++ b/pom.xml @@ -5,11 +5,11 @@ <modelVersion>4.0.0</modelVersion> <groupId>org.awang05</groupId> - <artifactId>ballgame</artifactId> + <artifactId>nmoFootball</artifactId> <version>1.0.0-SNAPSHOT</version> <packaging>jar</packaging> - <name>ballgame</name> + <name>nmoFootball</name> <properties> <java.version>17</java.version> diff --git a/src/main/java/org/awang05/ballGame/controller/ChargeController.java b/src/main/java/org/awang05/nmoFootball/controller/ChargeController.java similarity index 97% rename from src/main/java/org/awang05/ballGame/controller/ChargeController.java rename to src/main/java/org/awang05/nmoFootball/controller/ChargeController.java index 916f3e6..e8cab2b 100644 --- a/src/main/java/org/awang05/ballGame/controller/ChargeController.java +++ b/src/main/java/org/awang05/nmoFootball/controller/ChargeController.java @@ -1,4 +1,4 @@ -package org.awang05.ballGame.controller; +package org.awang05.nmoFootball.controller; import org.bukkit.entity.Player; import org.bukkit.plugin.Plugin; diff --git a/src/main/java/org/awang05/ballGame/events/HitListener.java b/src/main/java/org/awang05/nmoFootball/events/HitListener.java similarity index 85% rename from src/main/java/org/awang05/ballGame/events/HitListener.java rename to src/main/java/org/awang05/nmoFootball/events/HitListener.java index ef74555..1a2680e 100644 --- a/src/main/java/org/awang05/ballGame/events/HitListener.java +++ b/src/main/java/org/awang05/nmoFootball/events/HitListener.java @@ -1,7 +1,7 @@ -package org.awang05.ballGame.events; +package org.awang05.nmoFootball.events; -import org.awang05.ballGame.BallGame; -import org.awang05.ballGame.controller.ChargeController; +import org.awang05.nmoFootball.nmoFootball; +import org.awang05.nmoFootball.controller.ChargeController; import org.bukkit.Material; import org.bukkit.entity.Chicken; import org.bukkit.entity.Entity; @@ -20,7 +20,7 @@ public class HitListener implements Listener { @EventHandler public void OnJoin(PlayerJoinEvent event){ Player player=event.getPlayer(); - ConDic.put(player,new ChargeController(player, BallGame.getProvidingPlugin(BallGame.class))); + ConDic.put(player,new ChargeController(player, nmoFootball.getProvidingPlugin(nmoFootball.class))); } @EventHandler diff --git a/src/main/java/org/awang05/ballGame/events/RecycleListener.java b/src/main/java/org/awang05/nmoFootball/events/RecycleListener.java similarity index 96% rename from src/main/java/org/awang05/ballGame/events/RecycleListener.java rename to src/main/java/org/awang05/nmoFootball/events/RecycleListener.java index 29efe3b..780f3b2 100644 --- a/src/main/java/org/awang05/ballGame/events/RecycleListener.java +++ b/src/main/java/org/awang05/nmoFootball/events/RecycleListener.java @@ -1,4 +1,4 @@ -package org.awang05.ballGame.events; +package org.awang05.nmoFootball.events; import org.bukkit.Material; import org.bukkit.entity.Entity; diff --git a/src/main/java/org/awang05/ballGame/events/ThrowListener.java b/src/main/java/org/awang05/nmoFootball/events/ThrowListener.java similarity index 97% rename from src/main/java/org/awang05/ballGame/events/ThrowListener.java rename to src/main/java/org/awang05/nmoFootball/events/ThrowListener.java index b169d3d..d035ac3 100644 --- a/src/main/java/org/awang05/ballGame/events/ThrowListener.java +++ b/src/main/java/org/awang05/nmoFootball/events/ThrowListener.java @@ -1,4 +1,4 @@ -package org.awang05.ballGame.events; +package org.awang05.nmoFootball.events; import org.bukkit.Location; import org.bukkit.Material; diff --git a/src/main/java/org/awang05/ballGame/BallGame.java b/src/main/java/org/awang05/nmoFootball/nmoFootball.java similarity index 72% rename from src/main/java/org/awang05/ballGame/BallGame.java rename to src/main/java/org/awang05/nmoFootball/nmoFootball.java index 72a63cd..f84824d 100644 --- a/src/main/java/org/awang05/ballGame/BallGame.java +++ b/src/main/java/org/awang05/nmoFootball/nmoFootball.java @@ -1,9 +1,9 @@ -package org.awang05.ballGame; +package org.awang05.nmoFootball; -import org.awang05.ballGame.events.*; +import org.awang05.nmoFootball.events.*; import org.bukkit.plugin.java.JavaPlugin; -public final class BallGame extends JavaPlugin { +public final class nmoFootball extends JavaPlugin { @Override public void onEnable() { @@ -12,7 +12,7 @@ public final class BallGame extends JavaPlugin { getServer().getPluginManager().registerEvents(new ThrowListener(),this); getServer().getPluginManager().registerEvents(new HitListener(),this); - getLogger().info("BallGame鍚姩"); + getLogger().info("nmoFootball鍚姩"); } @Override diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index ca6632b..8c420be 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -1,4 +1,4 @@ -name: BallGame +name: nmoFootball version: '1.0.0-SNAPSHOT' -main: org.awang05.ballGame.BallGame +main: org.awang05.nmoFootball.nmoFootball api-version: '1.20' -- GitLab From 4d6ec1880a659bc867708a6468b448973744e5e1 Mon Sep 17 00:00:00 2001 From: AWang05 <awang05@yeah.net> Date: Thu, 3 Oct 2024 21:31:16 +0800 Subject: [PATCH 7/8] =?UTF-8?q?=E8=B0=83=E6=95=B4=E6=89=93=E5=87=BB?= =?UTF-8?q?=E6=96=B9=E5=90=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/org/awang05/nmoFootball/events/HitListener.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/awang05/nmoFootball/events/HitListener.java b/src/main/java/org/awang05/nmoFootball/events/HitListener.java index 1a2680e..b6f255f 100644 --- a/src/main/java/org/awang05/nmoFootball/events/HitListener.java +++ b/src/main/java/org/awang05/nmoFootball/events/HitListener.java @@ -30,7 +30,9 @@ public class HitListener implements Listener { if(!(event.getDamager() instanceof Player player)) return; event.setCancelled(true); double speed=ConDic.get(player).getSpeed(); - entity.setVelocity(player.getEyeLocation().getDirection().multiply(speed)); //灏嗛浮鍚戦潰鍚戞柟鍚戞墦鍑� + double x=player.getEyeLocation().getDirection().getX(); + double z=player.getEyeLocation().getDirection().getZ(); + entity.setVelocity(player.getEyeLocation().getDirection().setY(0.1).multiply(speed/Math.sqrt(x*x+z*z))); //灏嗛浮鍚戦潰鍚戞柟鍚戞墦鍑� ConDic.get(player).clear(); } -- GitLab From 30f69d65141a4d57982e3c56900c815a93f801f4 Mon Sep 17 00:00:00 2001 From: AWang05 <awang05@yeah.net> Date: Thu, 3 Oct 2024 21:35:44 +0800 Subject: [PATCH 8/8] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/ChargeController.java | 22 +++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/awang05/nmoFootball/controller/ChargeController.java b/src/main/java/org/awang05/nmoFootball/controller/ChargeController.java index e8cab2b..87c109e 100644 --- a/src/main/java/org/awang05/nmoFootball/controller/ChargeController.java +++ b/src/main/java/org/awang05/nmoFootball/controller/ChargeController.java @@ -5,10 +5,24 @@ import org.bukkit.plugin.Plugin; import org.bukkit.scheduler.BukkitRunnable; public class ChargeController { - private static final float min= 0.6F; - private static final float max= 3.6F; - private static final float dx=0.1F; - private static final int pause=10; + private static float min= 0.6F; + private static float max= 3.6F; + private static float dx=0.1F; + private static int pause=10; + + public static void setMin(float min){ + ChargeController.min=min; + } + public static void setMax(float max){ + ChargeController.max=max; + } + public static void setDx(float dx){ + ChargeController.dx=dx; + } + public static void setPause(int pause){ + ChargeController.pause=pause; + } + private float ad=-dx; private float x=-1F; -- GitLab