Skip to content

Commit

Permalink
Field-Fix and Pitching
Browse files Browse the repository at this point in the history
Added:
- Pitching the car on ascent/descent through the config-value `cars.general.enablePitch` which is defaulted to true

Fixed:
- Fixed some field-stuff
  • Loading branch information
Jakllp committed Mar 7, 2022
1 parent 5da448b commit 9bc4049
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 9 deletions.
16 changes: 8 additions & 8 deletions src/main/java/com/useful/ucars/CartOrientationUtil.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import java.lang.reflect.Field;
import java.lang.reflect.Method;

import org.bukkit.Bukkit;
import org.bukkit.entity.Entity;
import org.bukkit.entity.Minecart;

Expand Down Expand Up @@ -39,15 +40,13 @@ public static void setPitch(Entity cart, float pitch){
Method getHandle = cmr.getMethod("getHandle");
Object nmsCart = getHandle.invoke(cmr.cast(cart));
Field p = null;
Class <?> ema;
Class <?> ema = Reflect.getNMSClass("world.entity.","Entity");

if(ucars.MCVersion.get(0) == 1) {
if(ucars.MCVersion.get(1) >= 18) {
ema = Reflect.getNMSClass("world.entity.","Entity");
p = ema.getField("aB");
p = ema.getDeclaredField("aB");
} else if(ucars.MCVersion.get(1) == 17) {
ema = Reflect.getNMSClass("world.entity.","Entity");
p = ema.getField("az");
p = ema.getDeclaredField("az");
} else {
ema = Reflect.getNMSClass("world.entity.vehicle.","EntityMinecartAbstract");
p = ema.getField("pitch");
Expand All @@ -72,16 +71,17 @@ public static void setYaw(Entity cart, float yaw){
try {
Class<?> cmr = cart.getClass();
Method getHandle = cmr.getMethod("getHandle");
Class<?> ema = Reflect.getNMSClass("world.entity.vehicle.","EntityMinecartAbstract");
Class<?> ema = Reflect.getNMSClass("world.entity.","Entity");
Object nmsCart = getHandle.invoke(cmr.cast(cart));
Field p = null;

if(ucars.MCVersion.get(0) == 1) {
if(ucars.MCVersion.get(1) >= 18) {
p = ema.getField("aA");
p = ema.getDeclaredField("aA");
} else if(ucars.MCVersion.get(1) == 17) {
p = ema.getField("ay");
p = ema.getDeclaredField("ay");
} else {
ema = Reflect.getNMSClass("world.entity.vehicle.","EntityMinecartAbstract");
p = ema.getField("yaw");
}
}
Expand Down
15 changes: 14 additions & 1 deletion src/main/java/com/useful/ucars/uCarsListener.java
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,7 @@ public class uCarsListener implements Listener {
private Boolean fuelEnabled = false;
private Boolean fuelUseItems = false;
private Boolean disableFallDamage = false;
private Boolean pitchEnabled = true;

private double defaultSpeed = 30;
private static double defaultHealth = 10;
Expand Down Expand Up @@ -1260,7 +1261,18 @@ public void run() {
car.setVelocity(calculateCarStats(car, player, travel,
multiplier));
}


//Pitch the car
if(travel.getY()!=0 && pitchEnabled) {
if(travel.getY()<0) {
CartOrientationUtil.setPitch(car, (float) (-35*travel.getY()));
} else {
CartOrientationUtil.setPitch(car, (float) (-20*travel.getY()));
}
} else {
CartOrientationUtil.setPitch(car, 0);
}

// Recalculate car health
if (recalculateHealth) {
updateCarHealthHandler(car, health);
Expand Down Expand Up @@ -2111,6 +2123,7 @@ public void init() {
fuelEnabled = ucars.config.getBoolean("general.cars.fuel.enable");
fuelUseItems = ucars.config.getBoolean("general.cars.fuel.items.enable");
disableFallDamage = ucars.config.getBoolean("general.cars.fallDamageDisabled");
pitchEnabled = ucars.config.getBoolean("general.cars.enablePitch");

if(roadBlocksEnabled){
List<String> ids = ucars.config
Expand Down
3 changes: 3 additions & 0 deletions src/main/java/com/useful/ucars/ucars.java
Original file line number Diff line number Diff line change
Expand Up @@ -369,6 +369,9 @@ public void onEnable() {
if (!config.contains("general.permissions.enable")) {
config.set("general.permissions.enable", true);
}
if (!config.contains("general.cars.enablePitch")) {
config.set("general.cars.enablePitch", true);
}
if (!config.contains("general.cars.defSpeed")) {
config.set("general.cars.defSpeed", (double) 30);
}
Expand Down

0 comments on commit 9bc4049

Please sign in to comment.