Skip to content

Commit dd792a4

Browse files
committed
More mobchip changes; enable Vex pet
1 parent 8d587ce commit dd792a4

16 files changed

Lines changed: 94 additions & 87 deletions

File tree

core/MobChip-Bukkit-b7b29fd.jar

1000 KB
Binary file not shown.

core/MobChip-Bukkit-bb412f9.jar

-1000 KB
Binary file not shown.

core/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ dependencies {
2929
implementation 'com.zaxxer:HikariCP:4.0.3'
3030
implementation 'net.wesjd:anvilgui:1.5.3-SNAPSHOT'
3131
//implementation 'com.github.GamerCoder215.MobChip:mobchip-bukkit:1.5.0'
32-
implementation(files('MobChip-Bukkit-bb412f9.jar'))
32+
implementation(fileTree(dir: '.', include: ['MobChip-Bukkit-*.jar']))
3333
}
3434
shadowJar {
3535
// removes unused classes in 'implementation' path dependencies

core/src/main/java/be/isach/ultracosmetics/CosmeticManager.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import be.isach.ultracosmetics.cosmetics.type.PetType;
1515
import be.isach.ultracosmetics.cosmetics.type.SuitCategory;
1616
import be.isach.ultracosmetics.cosmetics.type.SuitType;
17+
import be.isach.ultracosmetics.util.ServerVersion;
1718

1819
import org.bukkit.entity.LivingEntity;
1920

@@ -53,10 +54,11 @@ public void setupCosmeticsConfigs() {
5354
config.addDefault("Ammo-System-For-Gadgets.Show-Ammo-In-Menu-As-Item-Amount", true, "Do you want that in the gadgets menu", "each gadget item has an amount", "corresponding to your ammo.");
5455

5556
// CALL STATIC BLOCK.
56-
GadgetType.register();
57-
MountType.register();
58-
ParticleEffectType.register();
59-
PetType.register();
57+
ServerVersion version = UltraCosmeticsData.get().getServerVersion();
58+
GadgetType.register(version);
59+
MountType.register(version);
60+
ParticleEffectType.register(version);
61+
PetType.register(version);
6062
HatType.register();
6163
// SuitType uses a static block
6264
if (Category.MORPHS.isEnabled()) {

core/src/main/java/be/isach/ultracosmetics/cosmetics/mounts/MountDragon.java

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
import org.bukkit.event.EventHandler;
1313
import org.bukkit.event.entity.EntityDamageByEntityEvent;
1414
import org.bukkit.event.entity.EntityExplodeEvent;
15-
import org.bukkit.util.Vector;
1615

1716
/**
1817
* Represents an instance of a enderdragon mount.
@@ -29,19 +28,8 @@ public MountDragon(UltraPlayer owner, MountType type, UltraCosmetics ultraCosmet
2928
@Override
3029
public void onUpdate() {
3130
if (SettingsManager.getConfig().getBoolean("Mounts." + getType().getConfigName() + ".Stationary")) return;
32-
Vector vector = getPlayer().getLocation().toVector();
3331

34-
double rotX = getPlayer().getLocation().getYaw();
35-
double rotY = getPlayer().getLocation().getPitch();
36-
37-
vector.setY(-Math.sin(Math.toRadians(rotY)));
38-
39-
double h = Math.cos(Math.toRadians(rotY));
40-
41-
vector.setX(-h * Math.sin(Math.toRadians(rotX)));
42-
vector.setZ(h * Math.cos(Math.toRadians(rotX)));
43-
44-
UltraCosmeticsData.get().getVersionManager().getEntityUtil().moveDragon(getPlayer(), vector, entity);
32+
UltraCosmeticsData.get().getVersionManager().getEntityUtil().moveDragon(getPlayer(), entity);
4533
}
4634

4735
@SuppressWarnings("deprecation")

core/src/main/java/be/isach/ultracosmetics/cosmetics/mounts/MountNyanSheep.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package be.isach.ultracosmetics.cosmetics.mounts;
22

33
import be.isach.ultracosmetics.UltraCosmetics;
4-
import be.isach.ultracosmetics.UltraCosmeticsData;
54
import be.isach.ultracosmetics.cosmetics.type.MountType;
65
import be.isach.ultracosmetics.player.UltraPlayer;
76
import be.isach.ultracosmetics.util.Particles;
@@ -26,6 +25,7 @@
2625
*/
2726
public class MountNyanSheep extends Mount {
2827
private static final List<Color> COLORS = new ArrayList<>();
28+
private EntityBrain brain;
2929

3030
static {
3131
COLORS.add(new Color(255, 0, 0));
@@ -44,7 +44,7 @@ public MountNyanSheep(UltraPlayer owner, MountType type, UltraCosmetics ultraCos
4444
public void setupEntity() {
4545
Sheep sheep = (Sheep) entity;
4646
sheep.setNoDamageTicks(Integer.MAX_VALUE);
47-
EntityBrain brain = BukkitBrain.getBrain(sheep);
47+
brain = BukkitBrain.getBrain(sheep);
4848
brain.getGoalAI().clear();
4949
brain.getTargetAI().clear();
5050
}
@@ -69,6 +69,6 @@ private void move() {
6969
Vector vel = playerLoc.getDirection().setY(0).normalize().multiply(4);
7070
playerLoc.add(vel);
7171

72-
UltraCosmeticsData.get().getVersionManager().getEntityUtil().move(((Sheep) entity), playerLoc);
72+
brain.getController().moveTo(playerLoc, 2);
7373
}
7474
}

core/src/main/java/be/isach/ultracosmetics/cosmetics/pets/Pet.java

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import org.bukkit.Bukkit;
1515
import org.bukkit.ChatColor;
1616
import org.bukkit.Difficulty;
17+
import org.bukkit.Location;
1718
import org.bukkit.Material;
1819
import org.bukkit.entity.Ageable;
1920
import org.bukkit.entity.ArmorStand;
@@ -22,7 +23,6 @@
2223
import org.bukkit.entity.Item;
2324
import org.bukkit.entity.LivingEntity;
2425
import org.bukkit.entity.Mob;
25-
import org.bukkit.entity.Slime;
2626
import org.bukkit.entity.Tameable;
2727
import org.bukkit.event.EventHandler;
2828
import org.bukkit.event.entity.EntityDamageEvent;
@@ -38,7 +38,6 @@
3838
import java.util.List;
3939

4040
import me.gamercoder215.mobchip.EntityBrain;
41-
import me.gamercoder215.mobchip.ai.controller.EntityController;
4241
import me.gamercoder215.mobchip.bukkit.BukkitBrain;
4342

4443
/**
@@ -89,9 +88,9 @@ protected void onEquip() {
8988
brain.getTargetAI().clear();
9089
brain.getScheduleManager().clear();
9190

92-
brain.getGoalAI().put(new PetPathfinder(entity, getPlayer()), 0);
93-
getPlayer().sendMessage(ChatColor.RED + "Pathfinders:");
94-
BukkitBrain.getBrain(entity).getGoalAI().stream().forEach(w -> getPlayer().sendMessage(w.getPathfinder().getName() + ":" + w.getPriority()));
91+
// brain.getGoalAI().put(new PetPathfinder(entity, getPlayer()), 0);
92+
// getPlayer().sendMessage(ChatColor.RED + "Pathfinders:");
93+
// BukkitBrain.getBrain(entity).getGoalAI().stream().forEach(w -> getPlayer().sendMessage(w.getPathfinder().getName() + ":" + w.getPriority()));
9594

9695
if (entity instanceof Ageable) {
9796
Ageable ageable = (Ageable) entity;
@@ -167,7 +166,7 @@ public void run() {
167166
}
168167

169168
double distanceSquared = getPlayer().getLocation().distanceSquared(entity.getLocation());
170-
if (distanceSquared < 1.3 * 1.3) return;
169+
if (distanceSquared < 2 * 2) return;
171170

172171
EntityBrain brain = BukkitBrain.getBrain(entity);
173172

@@ -176,12 +175,12 @@ public void run() {
176175
speed *= 1.3;
177176
}
178177

179-
EntityController controller = brain.getController();
180-
if (entity instanceof Slime) {
181-
controller.lookAt(getPlayer());
182-
return;
183-
}
184-
controller.moveTo(getPlayer(), speed);
178+
move(brain, getPlayer().getEyeLocation(), speed);
179+
180+
}
181+
182+
protected void move(EntityBrain brain, Location loc, double speed) {
183+
brain.getController().moveTo(loc, speed);
185184
}
186185

187186
@Override

core/src/main/java/be/isach/ultracosmetics/cosmetics/pets/PetSlime.java

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,12 @@
44
import be.isach.ultracosmetics.cosmetics.type.PetType;
55
import be.isach.ultracosmetics.player.UltraPlayer;
66

7+
import org.bukkit.Bukkit;
8+
import org.bukkit.Location;
79
import org.bukkit.entity.Slime;
810

11+
import me.gamercoder215.mobchip.EntityBrain;
12+
913
/**
1014
* Represents an instance of a slime pet summoned by a player.
1115
*
@@ -14,6 +18,8 @@
1418
*/
1519

1620
public class PetSlime extends Pet {
21+
private int updateCounter = 0;
22+
1723
public PetSlime(UltraPlayer owner, PetType type, UltraCosmetics ultraCosmetics) {
1824
super(owner, type, ultraCosmetics);
1925
}
@@ -34,4 +40,19 @@ public boolean customize(String customization) {
3440
((Slime) entity).setSize(size);
3541
return true;
3642
}
43+
44+
@Override
45+
protected void move(EntityBrain brain, Location loc, double speed) {
46+
Location diff = loc.subtract(entity.getLocation());
47+
float yaw = (float) Math.toDegrees(Math.atan2(diff.getZ(), diff.getX())) - 90;
48+
brain.getBody().setYaw(yaw);
49+
brain.getBody().setHeadRotation(yaw);
50+
brain.getBody().setBodyRotation(yaw);
51+
if (++updateCounter > 39) {
52+
brain.getController().jump();
53+
brain.getController().moveTo(loc);
54+
updateCounter = 0;
55+
Bukkit.getLogger().info("Causing jump");
56+
}
57+
}
3758
}

core/src/main/java/be/isach/ultracosmetics/cosmetics/type/GadgetType.java

Lines changed: 12 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -2,35 +2,8 @@
22

33
import be.isach.ultracosmetics.config.SettingsManager;
44
import be.isach.ultracosmetics.cosmetics.Category;
5-
import be.isach.ultracosmetics.cosmetics.gadgets.Gadget;
6-
import be.isach.ultracosmetics.cosmetics.gadgets.GadgetAntiGravity;
7-
import be.isach.ultracosmetics.cosmetics.gadgets.GadgetBatBlaster;
8-
import be.isach.ultracosmetics.cosmetics.gadgets.GadgetBlackHole;
9-
import be.isach.ultracosmetics.cosmetics.gadgets.GadgetBlizzardBlaster;
10-
import be.isach.ultracosmetics.cosmetics.gadgets.GadgetChickenator;
11-
import be.isach.ultracosmetics.cosmetics.gadgets.GadgetChristmasTree;
12-
import be.isach.ultracosmetics.cosmetics.gadgets.GadgetColorBomb;
13-
import be.isach.ultracosmetics.cosmetics.gadgets.GadgetDiscoBall;
14-
import be.isach.ultracosmetics.cosmetics.gadgets.GadgetEtherealPearl;
15-
import be.isach.ultracosmetics.cosmetics.gadgets.GadgetExplosiveSheep;
16-
import be.isach.ultracosmetics.cosmetics.gadgets.GadgetFirework;
17-
import be.isach.ultracosmetics.cosmetics.gadgets.GadgetFleshHook;
18-
import be.isach.ultracosmetics.cosmetics.gadgets.GadgetFreezeCannon;
19-
import be.isach.ultracosmetics.cosmetics.gadgets.GadgetFunGun;
20-
import be.isach.ultracosmetics.cosmetics.gadgets.GadgetGhostParty;
21-
import be.isach.ultracosmetics.cosmetics.gadgets.GadgetMelonThrower;
22-
import be.isach.ultracosmetics.cosmetics.gadgets.GadgetPaintballGun;
23-
import be.isach.ultracosmetics.cosmetics.gadgets.GadgetParachute;
24-
import be.isach.ultracosmetics.cosmetics.gadgets.GadgetPartyPopper;
25-
import be.isach.ultracosmetics.cosmetics.gadgets.GadgetPortalGun;
26-
import be.isach.ultracosmetics.cosmetics.gadgets.GadgetQuakeGun;
27-
import be.isach.ultracosmetics.cosmetics.gadgets.GadgetRocket;
28-
import be.isach.ultracosmetics.cosmetics.gadgets.GadgetSmashDown;
29-
import be.isach.ultracosmetics.cosmetics.gadgets.GadgetSnowball;
30-
import be.isach.ultracosmetics.cosmetics.gadgets.GadgetTNT;
31-
import be.isach.ultracosmetics.cosmetics.gadgets.GadgetThorHammer;
32-
import be.isach.ultracosmetics.cosmetics.gadgets.GadgetTrampoline;
33-
import be.isach.ultracosmetics.cosmetics.gadgets.GadgetTsunami;
5+
import be.isach.ultracosmetics.cosmetics.gadgets.*;
6+
import be.isach.ultracosmetics.util.ServerVersion;
347

358
import com.cryptomorin.xseries.XMaterial;
369

@@ -136,16 +109,14 @@ public int getRunTime() {
136109
return runTime;
137110
}
138111

139-
public static void register() {
112+
public static void register(ServerVersion version) {
140113
new GadgetType(XMaterial.IRON_HORSE_ARMOR, 8, 3, "BatBlaster", GadgetBatBlaster.class);
141114
new GadgetType(XMaterial.COOKED_CHICKEN, 6, 3, "Chickenator", GadgetChickenator.class);
142115
new GadgetType(XMaterial.BEACON, 45, 20, "DiscoBall", GadgetDiscoBall.class);
143116
new GadgetType(XMaterial.ENDER_PEARL, 2, 0, "EtherealPearl", GadgetEtherealPearl.class);
144117
new GadgetType(XMaterial.TRIPWIRE_HOOK, 5, 0, "FleshHook", GadgetFleshHook.class);
145118
new GadgetType(XMaterial.MELON, 2, 0, "MelonThrower", GadgetMelonThrower.class);
146-
new GadgetType(XMaterial.PACKED_ICE, 12, 2, "BlizzardBlaster", GadgetBlizzardBlaster.class);
147119
new GadgetType(XMaterial.COMPARATOR, 2, 0, "PortalGun", GadgetPortalGun.class);
148-
new GadgetType(XMaterial.SHEARS, 25, 11, "ExplosiveSheep", GadgetExplosiveSheep.class);
149120
new GadgetType(XMaterial.DIAMOND_HORSE_ARMOR, 0.5, 0, "PaintballGun", GadgetPaintballGun.class);
150121
new GadgetType(XMaterial.IRON_AXE, 8, 0, "ThorHammer", GadgetThorHammer.class);
151122
new GadgetType(XMaterial.ENDER_EYE, 30, 12, "AntiGravity", GadgetAntiGravity.class);
@@ -155,7 +126,6 @@ public static void register() {
155126
new GadgetType(XMaterial.TNT, 10, 0, "TNT", GadgetTNT.class);
156127
new GadgetType(XMaterial.BLAZE_ROD, 4, 0, "FunGun", GadgetFunGun.class);
157128
new GadgetType(XMaterial.LEAD, 60, 7, "Parachute", GadgetParachute.class);
158-
new GadgetType(XMaterial.DIAMOND_HOE, 3, 0, "QuakeGun", GadgetQuakeGun.class);
159129
new GadgetType(XMaterial.SKELETON_SKULL, 45, 8, "GhostParty", GadgetGhostParty.class);
160130
new GadgetType(XMaterial.FIREWORK_ROCKET, 0.2, 0, "Firework", GadgetFirework.class);
161131
new GadgetType(XMaterial.FERN, 20, 10, "ChristmasTree", GadgetChristmasTree.class);
@@ -165,5 +135,14 @@ public static void register() {
165135
new GadgetType(XMaterial.LIGHT_BLUE_WOOL, 25, 7, "ColorBomb", GadgetColorBomb.class);
166136
new GadgetType(XMaterial.BLUE_WOOL, 75, 12, "Trampoline", GadgetTrampoline.class);
167137
new GadgetType(XMaterial.BLACK_TERRACOTTA, 35, 8, "BlackHole", GadgetBlackHole.class);
138+
139+
if (version.isMobChipAvailable()) {
140+
new GadgetType(XMaterial.SHEARS, 25, 11, "ExplosiveSheep", GadgetExplosiveSheep.class);
141+
}
142+
143+
if (version.isNmsSupported()) {
144+
new GadgetType(XMaterial.PACKED_ICE, 12, 2, "BlizzardBlaster", GadgetBlizzardBlaster.class);
145+
new GadgetType(XMaterial.DIAMOND_HOE, 3, 0, "QuakeGun", GadgetQuakeGun.class);
146+
}
168147
}
169148
}

core/src/main/java/be/isach/ultracosmetics/cosmetics/type/MountType.java

Lines changed: 26 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,25 @@
44
import be.isach.ultracosmetics.config.MessageManager;
55
import be.isach.ultracosmetics.config.SettingsManager;
66
import be.isach.ultracosmetics.cosmetics.Category;
7-
import be.isach.ultracosmetics.cosmetics.mounts.*;
7+
import be.isach.ultracosmetics.cosmetics.mounts.Mount;
8+
import be.isach.ultracosmetics.cosmetics.mounts.MountDragon;
9+
import be.isach.ultracosmetics.cosmetics.mounts.MountDruggedHorse;
10+
import be.isach.ultracosmetics.cosmetics.mounts.MountEcologistHorse;
11+
import be.isach.ultracosmetics.cosmetics.mounts.MountGlacialSteed;
12+
import be.isach.ultracosmetics.cosmetics.mounts.MountHypeCart;
13+
import be.isach.ultracosmetics.cosmetics.mounts.MountMoltenSnake;
14+
import be.isach.ultracosmetics.cosmetics.mounts.MountNyanSheep;
15+
import be.isach.ultracosmetics.cosmetics.mounts.MountOfFire;
16+
import be.isach.ultracosmetics.cosmetics.mounts.MountOfWater;
17+
import be.isach.ultracosmetics.cosmetics.mounts.MountSnake;
18+
import be.isach.ultracosmetics.util.ServerVersion;
19+
import be.isach.ultracosmetics.version.VersionManager;
820

9-
import com.cryptomorin.xseries.XMaterial;
1021
import org.bukkit.entity.EntityType;
1122
import org.bukkit.entity.Player;
1223

24+
import com.cryptomorin.xseries.XMaterial;
25+
1326
import java.util.ArrayList;
1427
import java.util.Arrays;
1528
import java.util.List;
@@ -92,23 +105,25 @@ public boolean doesPlaceBlocks() {
92105
return defaultBlocks != null;
93106
}
94107

95-
public static void register() {
108+
public static void register(ServerVersion version) {
109+
VersionManager vm = UltraCosmeticsData.get().getVersionManager();
96110
new MountType("DruggedHorse", XMaterial.SUGAR, EntityType.HORSE, 2, null, 1.1, MountDruggedHorse.class);
97111
new MountType("GlacialSteed", XMaterial.PACKED_ICE, EntityType.HORSE, 2, Arrays.asList(XMaterial.SNOW_BLOCK), 0.4, MountGlacialSteed.class);
98112
new MountType("MountOfFire", XMaterial.BLAZE_POWDER, EntityType.HORSE, 2, Arrays.asList(XMaterial.ORANGE_TERRACOTTA, XMaterial.YELLOW_TERRACOTTA, XMaterial.RED_TERRACOTTA), 0.4, MountOfFire.class);
99113
new MountType("Snake", XMaterial.WHEAT_SEEDS, EntityType.SHEEP, 2, null, 0.3, MountSnake.class);
100-
new MountType("Dragon", XMaterial.DRAGON_EGG, EntityType.ENDER_DRAGON, 1, null, 0.7, MountDragon.class);
101-
new MountType("Slime", XMaterial.SLIME_BALL, EntityType.SLIME, 2, null, 0.8, UltraCosmeticsData.get().getVersionManager().getModule().getSlimeClass());
102114
new MountType("HypeCart", XMaterial.MINECART, EntityType.MINECART, 1, null, 0, MountHypeCart.class);
103-
new MountType("Spider", XMaterial.COBWEB, EntityType.SPIDER, 2, null, 0.4, UltraCosmeticsData.get().getVersionManager().getModule().getSpiderClass());
104115
new MountType("MoltenSnake", XMaterial.MAGMA_CREAM, EntityType.MAGMA_CUBE, 1, null, 0.4, MountMoltenSnake.class);
105-
106116
new MountType("MountOfWater", XMaterial.LIGHT_BLUE_DYE, EntityType.HORSE, 2, Arrays.asList(XMaterial.LIGHT_BLUE_TERRACOTTA, XMaterial.CYAN_TERRACOTTA, XMaterial.BLUE_TERRACOTTA), 0.4, MountOfWater.class);
107117
new MountType("NyanSheep", XMaterial.CYAN_DYE, EntityType.SHEEP, 1, null, 0.4, MountNyanSheep.class);
108118
new MountType("EcologistHorse", XMaterial.GREEN_DYE, EntityType.HORSE, 2, Arrays.asList(XMaterial.LIME_TERRACOTTA, XMaterial.GREEN_TERRACOTTA), 0.4, MountEcologistHorse.class);
109-
110-
new MountType("Rudolph", XMaterial.DEAD_BUSH, UltraCosmeticsData.get().getVersionManager().getMounts().getRudolphType(), 2, null, 0.4, UltraCosmeticsData.get().getVersionManager().getMounts().getRudolphClass());
111-
new MountType("WalkingDead", XMaterial.ROTTEN_FLESH, UltraCosmeticsData.get().getVersionManager().getMounts().getWalkingDeadType(), 2, null, 0.4, UltraCosmeticsData.get().getVersionManager().getMounts().getWalkingDeadClass());
112-
new MountType("InfernalHorror", XMaterial.BONE, UltraCosmeticsData.get().getVersionManager().getMounts().getHorrorType(), 2, null, 0.4, UltraCosmeticsData.get().getVersionManager().getMounts().getHorrorClass());
119+
new MountType("Rudolph", XMaterial.DEAD_BUSH, vm.getMounts().getRudolphType(), 2, null, 0.4, vm.getMounts().getRudolphClass());
120+
new MountType("WalkingDead", XMaterial.ROTTEN_FLESH, vm.getMounts().getWalkingDeadType(), 2, null, 0.4, vm.getMounts().getWalkingDeadClass());
121+
new MountType("InfernalHorror", XMaterial.BONE, vm.getMounts().getHorrorType(), 2, null, 0.4, vm.getMounts().getHorrorClass());
122+
123+
if (version.isNmsSupported()) {
124+
new MountType("Slime", XMaterial.SLIME_BALL, EntityType.SLIME, 2, null, 0.8, vm.getModule().getSlimeClass());
125+
new MountType("Spider", XMaterial.COBWEB, EntityType.SPIDER, 2, null, 0.4, vm.getModule().getSpiderClass());
126+
new MountType("Dragon", XMaterial.DRAGON_EGG, EntityType.ENDER_DRAGON, 1, null, 0.7, MountDragon.class);
127+
}
113128
}
114129
}

0 commit comments

Comments
 (0)