From ab46ba5023f77aaf2cd867742fe1f8fd8ed9d97e Mon Sep 17 00:00:00 2001
From: Thoronium <107363768+NotThorny@users.noreply.github.com>
Date: Fri, 21 Jun 2024 00:45:14 -0600
Subject: [PATCH] Update 4.7 characters Add position option
---
pom.xml | 2 +-
.../AttackModifier/AddAttack.java | 16 ++++++
.../commands/AttackModifierCommand.java | 52 +++++++++++++++----
.../AttackModifier/utils/Config.java | 14 +++++
4 files changed, 74 insertions(+), 10 deletions(-)
diff --git a/pom.xml b/pom.xml
index 528400b..150b466 100644
--- a/pom.xml
+++ b/pom.xml
@@ -28,7 +28,7 @@
xyz.grasscutters
grasscutter
- 1.7.0
+ 1.7.4
\ No newline at end of file
diff --git a/src/main/java/thorny/grasscutters/AttackModifier/AddAttack.java b/src/main/java/thorny/grasscutters/AttackModifier/AddAttack.java
index 337bde6..e895f3f 100644
--- a/src/main/java/thorny/grasscutters/AttackModifier/AddAttack.java
+++ b/src/main/java/thorny/grasscutters/AttackModifier/AddAttack.java
@@ -22,6 +22,15 @@ public class AddAttack {
static ArrayList blacklistUIDs = AttackModifier.getInstance().config.getBlacklist();
static List activeGadgets = new ArrayList<>(); // Current gadgets
static List removeGadgets = new ArrayList<>(); // To be removed gadgets
+ public static int x = 0;
+ public static int y = 0;
+ public static int z = 0;
+
+ public static void setXYZ(int x, int y, int z) {
+ AddAttack.x = x;
+ AddAttack.y = y;
+ AddAttack.z = z;
+ }
public static void addAttack(GameSession session, int skillId, int uid) {
@@ -88,6 +97,13 @@ public static void addAttack(GameSession session, int skillId, int uid) {
target.addZ((float) (r * Math.cos(Math.PI / 180 * angle)));
}
+ // Optional xyz args
+ if (x != 0 || y != 0 || z != 0) {
+ target.addX(x);
+ target.addY(y);
+ target.addZ(z);
+ }
+
// Only spawn on match
if (addedAttack != 0) {
EntityGadget att = new EntityGadget(scene, addedAttack, target, rot);
diff --git a/src/main/java/thorny/grasscutters/AttackModifier/commands/AttackModifierCommand.java b/src/main/java/thorny/grasscutters/AttackModifier/commands/AttackModifierCommand.java
index ca3f176..42aa432 100644
--- a/src/main/java/thorny/grasscutters/AttackModifier/commands/AttackModifierCommand.java
+++ b/src/main/java/thorny/grasscutters/AttackModifier/commands/AttackModifierCommand.java
@@ -37,8 +37,12 @@ public void execute(Player sender, Player targetPlayer, List args) {
int thing = 0;
int newGadget = -1;
String state;
- String avatarName = targetPlayer.getTeamManager().getCurrentAvatarEntity().getAvatar().getAvatarData().getName().toLowerCase() + "Ids";
- int uid = targetPlayer.getUid();
+ String avatarName = targetPlayer.getTeamManager().getCurrentAvatarEntity().getAvatar().getAvatarData().getName()
+ .toLowerCase() + "Ids";
+ int uid = targetPlayer.getUid();
+ int x = 0;
+ int y = 0;
+ int z = 0;
state = args.get(0);
try {
@@ -48,19 +52,23 @@ public void execute(Player sender, Player targetPlayer, List args) {
// Change whether added attacks should be on or not
if (state.equals("off")) {
- if(blacklistUIDs.contains(uid)){
+ if (blacklistUIDs.contains(uid)) {
CommandHandler.sendMessage(targetPlayer, "Added attacks already disabled!");
- }else{blacklistUIDs.add(uid);
+ } else {
+ blacklistUIDs.add(uid);
AttackModifier.getInstance().saveBlacklist(blacklistUIDs);
- CommandHandler.sendMessage(targetPlayer, "Disabled added attacks!");}
+ CommandHandler.sendMessage(targetPlayer, "Disabled added attacks!");
+ }
}
if (state.equals("on")) {
- if(blacklistUIDs.contains(uid)){
+ if (blacklistUIDs.contains(uid)) {
blacklistUIDs.remove(Integer.valueOf(uid));
AttackModifier.getInstance().saveBlacklist(blacklistUIDs);
CommandHandler.sendMessage(targetPlayer, "Enabled added attacks!");
- }else{CommandHandler.sendMessage(targetPlayer, "Added attacks already enabled!!");}
+ } else {
+ CommandHandler.sendMessage(targetPlayer, "Added attacks already enabled!!");
+ }
}
if (state.equals("remove")) {
@@ -73,9 +81,35 @@ public void execute(Player sender, Player targetPlayer, List args) {
AttackModifier.getInstance().reloadConfig();
CommandHandler.sendMessage(targetPlayer, "Reloaded config!");
}
- if (state.equals("set")){
+ if (state.equals("set")) {
var attackType = args.get(1).toLowerCase();
- try{newGadget = Integer.parseInt(args.get(2));}catch(Exception e){sendUsageMessage(targetPlayer); return;}
+ try {
+ newGadget = Integer.parseInt(args.get(2));
+ } catch (Exception e) {
+ sendUsageMessage(targetPlayer);
+ return;
+ }
+ try {
+ if (args.size() > 3) {
+ for (var a : args) {
+ if (a.startsWith("x")) {
+ x = Integer.parseInt(a.substring(1));
+ }
+ if (a.startsWith("y")) {
+ y = Integer.parseInt(a.substring(1));
+ }
+ if (a.startsWith("z")) {
+ z = Integer.parseInt(a.substring(1));
+ }
+ };
+ AddAttack.setXYZ(x, y, z);
+ CommandHandler.sendMessage(targetPlayer, "Set spawn coordinates of: x" + x + ", y" + y + ", z" + z);
+ }
+ } catch (Exception e) {
+ CommandHandler.sendMessage(targetPlayer,
+ "Coordinates may be invalid. Ensure they match the format of x123 y123 z123. Only the desired x, y, or z is required.\n If you only want to change y, include just y123.");
+ }
+
AddAttack.setGadget(targetPlayer, avatarName, uid, attackType, newGadget);
CommandHandler.sendMessage(targetPlayer, "Set new gadget!");
}
diff --git a/src/main/java/thorny/grasscutters/AttackModifier/utils/Config.java b/src/main/java/thorny/grasscutters/AttackModifier/utils/Config.java
index f26d5f4..21abb5c 100644
--- a/src/main/java/thorny/grasscutters/AttackModifier/utils/Config.java
+++ b/src/main/java/thorny/grasscutters/AttackModifier/utils/Config.java
@@ -73,6 +73,20 @@ public final class Config {
public characters linetteIds = new characters();
public characters lineyIds = new characters();
public characters freminetIds = new characters();
+ public characters wriothesleyIds = new characters();
+ public characters neuvilletteIds = new characters();
+ public characters charlotteIds = new characters();
+ public characters furinaIds = new characters();
+ public characters chevreuseIds = new characters();
+ public characters naviaIds = new characters();
+ public characters gamingIds = new characters();
+ public characters xianyunIds = new characters();
+ public characters chioriIds = new characters();
+ public characters sigewinneIds = new characters();
+ public characters arlecchinoIds = new characters();
+ public characters sethosIds = new characters();
+ public characters clorindeIds = new characters();
+
public static class characters {