Skip to content

Commit b3d102a

Browse files
authored
Fix the particle crash properly (#99)
Some time ago I reported a bug (#83) where there was a crash due to a HashMap not containing some data that was expected to be there. You fixed it partially, but then I got a similar error few more times, so here is a proper fix for that.
2 parents 08b9243 + 81d6e25 commit b3d102a

File tree

7 files changed

+63
-42
lines changed
  • 1.16.5/src/main/java/io/github/axolotlclient/modules/particles
  • 1.16_combat-6/src/main/java/io/github/axolotlclient/modules/particles
  • 1.19.2/src/main/java/io/github/axolotlclient/modules/particles
  • 1.19.3/src/main/java/io/github/axolotlclient/modules/particles
  • 1.19.4/src/main/java/io/github/axolotlclient/modules/particles
  • 1.20/src/main/java/io/github/axolotlclient/modules/particles
  • 1.8.9/src/main/java/io/github/axolotlclient/modules/particles

7 files changed

+63
-42
lines changed

1.16.5/src/main/java/io/github/axolotlclient/modules/particles/Particles.java

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -86,12 +86,15 @@ private void populateMap(HashMap<String, Option<?>> map, Option<?>... options) {
8686

8787
public void applyOptions(Particle particle) {
8888
if (enabled.get() && particleMap.containsKey(particle)) {
89-
HashMap<String, Option<?>> options = particleOptions.get(particleMap.get(particle));
90-
91-
if (((BooleanOption) options.get("customColor")).get()) {
92-
Color color = ((ColorOption) options.get("color")).get();
93-
particle.setColor(color.getRed() / 255F, color.getGreen() / 255F, color.getBlue() / 255F);
94-
((ParticleAccessor) particle).setColorAlpha(color.getAlpha() / 255F);
89+
ParticleType<?> type = particleMap.get(particle);
90+
if (particleOptions.containsKey(type)) {
91+
HashMap<String, Option<?>> options = particleOptions.get(type);
92+
93+
if (((BooleanOption) options.get("customColor")).get()) {
94+
Color color = ((ColorOption) options.get("color")).get();
95+
particle.setColor(color.getRed() / 255F, color.getGreen() / 255F, color.getBlue() / 255F);
96+
((ParticleAccessor) particle).setColorAlpha(color.getAlpha() / 255F);
97+
}
9598
}
9699
}
97100
}

1.16_combat-6/src/main/java/io/github/axolotlclient/modules/particles/Particles.java

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -86,12 +86,15 @@ private void populateMap(HashMap<String, Option<?>> map, Option<?>... options) {
8686

8787
public void applyOptions(Particle particle) {
8888
if (enabled.get() && particleMap.containsKey(particle)) {
89-
HashMap<String, Option<?>> options = particleOptions.get(particleMap.get(particle));
90-
91-
if (((BooleanOption) options.get("customColor")).get()) {
92-
Color color = ((ColorOption) options.get("color")).get();
93-
particle.setColor(color.getRed() / 255F, color.getGreen() / 255F, color.getBlue() / 255F);
94-
((ParticleAccessor) particle).setColorAlpha(color.getAlpha() / 255F);
89+
ParticleType<?> type = particleMap.get(particle);
90+
if (particleOptions.containsKey(type)) {
91+
HashMap<String, Option<?>> options = particleOptions.get(type);
92+
93+
if (((BooleanOption) options.get("customColor")).get()) {
94+
Color color = ((ColorOption) options.get("color")).get();
95+
particle.setColor(color.getRed() / 255F, color.getGreen() / 255F, color.getBlue() / 255F);
96+
((ParticleAccessor) particle).setColorAlpha(color.getAlpha() / 255F);
97+
}
9598
}
9699
}
97100
}

1.19.2/src/main/java/io/github/axolotlclient/modules/particles/Particles.java

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -86,12 +86,15 @@ private void populateMap(HashMap<String, Option<?>> map, Option<?>... options) {
8686

8787
public void applyOptions(Particle particle) {
8888
if (enabled.get() && particleMap.containsKey(particle)) {
89-
HashMap<String, Option<?>> options = particleOptions.get(particleMap.get(particle));
90-
91-
if (((BooleanOption) options.get("customColor")).get()) {
92-
Color color = ((ColorOption) options.get("color")).get();
93-
particle.setColor(color.getRed() / 255F, color.getGreen() / 255F, color.getBlue() / 255F);
94-
((ParticleAccessor) particle).setColorAlpha(color.getAlpha() / 255F);
89+
ParticleType<?> type = particleMap.get(particle);
90+
if (particleOptions.containsKey(type)) {
91+
HashMap<String, Option<?>> options = particleOptions.get(type);
92+
93+
if (((BooleanOption) options.get("customColor")).get()) {
94+
Color color = ((ColorOption) options.get("color")).get();
95+
particle.setColor(color.getRed() / 255F, color.getGreen() / 255F, color.getBlue() / 255F);
96+
((ParticleAccessor) particle).setColorAlpha(color.getAlpha() / 255F);
97+
}
9598
}
9699
}
97100
}

1.19.3/src/main/java/io/github/axolotlclient/modules/particles/Particles.java

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -86,12 +86,15 @@ private void populateMap(HashMap<String, Option<?>> map, Option<?>... options) {
8686

8787
public void applyOptions(Particle particle) {
8888
if (enabled.get() && particleMap.containsKey(particle)) {
89-
HashMap<String, Option<?>> options = particleOptions.get(particleMap.get(particle));
90-
91-
if (((BooleanOption) options.get("customColor")).get()) {
92-
Color color = ((ColorOption) options.get("color")).get();
93-
particle.setColor(color.getRed() / 255F, color.getGreen() / 255F, color.getBlue() / 255F);
94-
((ParticleAccessor) particle).setColorAlpha(color.getAlpha() / 255F);
89+
ParticleType<?> type = particleMap.get(particle);
90+
if (particleOptions.containsKey(type)) {
91+
HashMap<String, Option<?>> options = particleOptions.get(type);
92+
93+
if (((BooleanOption) options.get("customColor")).get()) {
94+
Color color = ((ColorOption) options.get("color")).get();
95+
particle.setColor(color.getRed() / 255F, color.getGreen() / 255F, color.getBlue() / 255F);
96+
((ParticleAccessor) particle).setColorAlpha(color.getAlpha() / 255F);
97+
}
9598
}
9699
}
97100
}

1.19.4/src/main/java/io/github/axolotlclient/modules/particles/Particles.java

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -86,12 +86,15 @@ private void populateMap(HashMap<String, Option<?>> map, Option<?>... options) {
8686

8787
public void applyOptions(Particle particle) {
8888
if (enabled.get() && particleMap.containsKey(particle)) {
89-
HashMap<String, Option<?>> options = particleOptions.get(particleMap.get(particle));
90-
91-
if (((BooleanOption) options.get("customColor")).get()) {
92-
Color color = ((ColorOption) options.get("color")).get();
93-
particle.setColor(color.getRed() / 255F, color.getGreen() / 255F, color.getBlue() / 255F);
94-
((ParticleAccessor) particle).setColorAlpha(color.getAlpha() / 255F);
89+
ParticleType<?> type = particleMap.get(particle);
90+
if (particleOptions.containsKey(type)) {
91+
HashMap<String, Option<?>> options = particleOptions.get(type);
92+
93+
if (((BooleanOption) options.get("customColor")).get()) {
94+
Color color = ((ColorOption) options.get("color")).get();
95+
particle.setColor(color.getRed() / 255F, color.getGreen() / 255F, color.getBlue() / 255F);
96+
((ParticleAccessor) particle).setColorAlpha(color.getAlpha() / 255F);
97+
}
9598
}
9699
}
97100
}

1.20/src/main/java/io/github/axolotlclient/modules/particles/Particles.java

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -86,12 +86,15 @@ private void populateMap(HashMap<String, Option<?>> map, Option<?>... options) {
8686

8787
public void applyOptions(Particle particle) {
8888
if (enabled.get() && particleMap.containsKey(particle)) {
89-
HashMap<String, Option<?>> options = particleOptions.get(particleMap.get(particle));
90-
91-
if (((BooleanOption) options.get("customColor")).get()) {
92-
Color color = ((ColorOption) options.get("color")).get();
93-
particle.setColor(color.getRed() / 255F, color.getGreen() / 255F, color.getBlue() / 255F);
94-
((ParticleAccessor) particle).setColorAlpha(color.getAlpha() / 255F);
89+
ParticleType<?> type = particleMap.get(particle);
90+
if (particleOptions.containsKey(type)) {
91+
HashMap<String, Option<?>> options = particleOptions.get(type);
92+
93+
if (((BooleanOption) options.get("customColor")).get()) {
94+
Color color = ((ColorOption) options.get("color")).get();
95+
particle.setColor(color.getRed() / 255F, color.getGreen() / 255F, color.getBlue() / 255F);
96+
((ParticleAccessor) particle).setColorAlpha(color.getAlpha() / 255F);
97+
}
9598
}
9699
}
97100
}

1.8.9/src/main/java/io/github/axolotlclient/modules/particles/Particles.java

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -84,12 +84,15 @@ private void populateMap(HashMap<String, Option<?>> map, Option<?>... options) {
8484

8585
public void applyOptions(Particle particle) {
8686
if (enabled.get() && particleMap.containsKey(particle)) {
87-
HashMap<String, Option<?>> options = particleOptions.get(particleMap.get(particle));
88-
89-
if (((BooleanOption) options.get("customColor")).get()) {
90-
Color color = ((ColorOption) options.get("color")).get();
91-
particle.setColor(color.getRed() / 255F, color.getGreen() / 255F, color.getBlue() / 255F);
92-
((ParticleAccessor) particle).setAlpha(color.getAlpha() / 255F);
87+
ParticleType type = particleMap.get(particle);
88+
if (particleOptions.containsKey(type)) {
89+
HashMap<String, Option<?>> options = particleOptions.get(type);
90+
91+
if (((BooleanOption) options.get("customColor")).get()) {
92+
Color color = ((ColorOption) options.get("color")).get();
93+
particle.setColor(color.getRed() / 255F, color.getGreen() / 255F, color.getBlue() / 255F);
94+
((ParticleAccessor) particle).setAlpha(color.getAlpha() / 255F);
95+
}
9396
}
9497
}
9598
}

0 commit comments

Comments
 (0)