1.0.0-SNAPSHOT-U47

This commit is contained in:
AMinecraftDev 2018-11-13 23:28:56 +08:00
parent 165d991496
commit ac079013d0
25 changed files with 242 additions and 59 deletions

View File

@ -8,7 +8,7 @@
"mainStats": {
"position": 1,
"entityType": "SKELETON",
"health": 500,
"health": 5,
"displayName": "&6&lSkeleton King Boss"
},
"equipment": {
@ -46,7 +46,7 @@
"drops": {
"naturalDrops": false,
"dropExp": false,
"dropTable": "SKTable"
"dropTable": "SkeletonTableSpray"
},
"messages": {
"onSpawn": {

View File

@ -27,11 +27,14 @@ import org.bukkit.plugin.java.JavaPlugin;
*/
public class CustomBosses extends JavaPlugin implements IReloadable {
private static CustomBosses instance;
@Getter private MessagesFileManager bossMessagesFileManager;
@Getter private CommandsFileManager bossCommandFileManager;
@Getter private DropTableFileManager dropTableFileManager;
@Getter private MinionsFileManager minionsFileManager;
@Getter private BossesFileManager bossesFileManager;
@Getter private SkillsFileManager skillsFileManager;
@Getter private ItemsFileManager itemStackManager;
@Getter private BossDropTableManager bossDropTableManager;
@ -61,6 +64,8 @@ public class CustomBosses extends JavaPlugin implements IReloadable {
@Override
public void onEnable() {
instance = this;
long beginMs = System.currentTimeMillis();
Debug.setPlugin(this);
@ -79,11 +84,11 @@ public class CustomBosses extends JavaPlugin implements IReloadable {
this.bossMechanicManager = new BossMechanicManager(this);
this.minionMechanicManager = new MinionMechanicManager(this);
this.bossLocationManager = new BossLocationManager(this);
this.bossDropTableManager = new BossDropTableManager(this);
loadFileManagersAndHandlers();
//Managers that rely on Files
this.bossDropTableManager = new BossDropTableManager(this);
this.bossPanelManager = new BossPanelManager(this);
this.bossEntityManager = new BossEntityManager(this);
@ -93,6 +98,7 @@ public class CustomBosses extends JavaPlugin implements IReloadable {
this.itemStackManager.reload();
this.bossesFileManager.reload();
this.minionsFileManager.reload();
this.skillsFileManager.reload();
this.bossCommandFileManager.reload();
this.bossMessagesFileManager.reload();
this.dropTableFileManager.reload();
@ -122,6 +128,7 @@ public class CustomBosses extends JavaPlugin implements IReloadable {
this.bossCommandFileManager.reload();
this.minionsFileManager.reload();
this.bossesFileManager.reload();
this.skillsFileManager.reload();
this.itemStackManager.reload();
this.dropTableFileManager.reload();
@ -144,6 +151,7 @@ public class CustomBosses extends JavaPlugin implements IReloadable {
this.bossCommandFileManager = new CommandsFileManager(this);
this.bossMessagesFileManager = new MessagesFileManager(this);
this.dropTableFileManager = new DropTableFileManager(this);
this.skillsFileManager = new SkillsFileManager(this);
this.langFileHandler = new LangFileHandler(this);
this.editorFileHandler = new EditorFileHandler(this);
@ -174,4 +182,8 @@ public class CustomBosses extends JavaPlugin implements IReloadable {
this.langFileHandler.saveFile(lang);
Message.setFile(lang);
}
public static CustomBosses get() {
return instance;
}
}

View File

@ -1,9 +1,9 @@
package com.songoda.epicbosses.droptable;
import com.google.gson.JsonObject;
import com.google.gson.annotations.Expose;
import lombok.Getter;
import lombok.Setter;
import com.songoda.epicbosses.droptable.elements.RewardsTableElement;
/**
* @author Charles Cullen
@ -13,6 +13,6 @@ import com.songoda.epicbosses.droptable.elements.RewardsTableElement;
public class DropTable {
@Expose @Getter @Setter private String dropType;
@Expose @Getter @Setter private RewardsTableElement rewards;
@Expose @Getter @Setter private JsonObject rewards;
}

View File

@ -13,18 +13,20 @@ import java.util.List;
* @version 1.0.0
* @since 14-May-18
*/
public class BossEntity extends MinionEntity {
public class BossEntity {
@Expose @Getter private final List<EntityStatsElement> entityStats;
@Expose @Getter private final MessagesElement messages;
@Expose @Getter private final CommandsElement commands;
@Expose @Getter private final SkillsElement skills;
@Expose @Getter private final DropsElement drops;
@Expose @Getter @Setter private String spawnItem, targeting;
@Expose @Getter @Setter private boolean editing;
public BossEntity(boolean editing, String spawnItem, List<EntityStatsElement> entityStats, SkillsElement skills, DropsElement drops, MessagesElement messages, CommandsElement commands) {
super(editing, entityStats);
this.editing = editing;
this.entityStats = entityStats;
this.spawnItem = spawnItem;
this.skills = skills;
this.drops = drops;

View File

@ -0,0 +1,75 @@
package com.songoda.epicbosses.file;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonObject;
import com.google.gson.reflect.TypeToken;
import com.songoda.epicbosses.skills.Skill;
import com.songoda.epicbosses.utils.file.FileHandler;
import org.bukkit.plugin.java.JavaPlugin;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.lang.reflect.Type;
import java.util.HashMap;
import java.util.Map;
/**
* @author Charles Cullen
* @version 1.0.0
* @since 13-Nov-18
*/
public class SkillsFileHandler extends FileHandler<Map<String, Skill>> {
private static final Gson GSON = new GsonBuilder()
.setPrettyPrinting()
.excludeFieldsWithoutExposeAnnotation()
.create();
public SkillsFileHandler(JavaPlugin javaPlugin, boolean saveResource, File file) {
super(javaPlugin, saveResource, file);
}
@Override
public Map<String, Skill> loadFile() {
Map<String, Skill> skillMap = new HashMap<>();
createFile();
try {
FileReader fileReader = new FileReader(getFile());
JsonObject jsonObject = GSON.fromJson(fileReader, JsonObject.class);
fileReader.close();
if(jsonObject != null) {
jsonObject.entrySet().forEach(entry -> {
String id = entry.getKey();
Skill bossEntity = GSON.fromJson(entry.getValue(), Skill.class);
skillMap.put(id, bossEntity);
});
}
} catch (IOException ex) {
ex.printStackTrace();
}
return skillMap;
}
@Override
public void saveFile(Map<String, Skill> skillMap) {
try {
FileWriter fileWriter = new FileWriter(getFile());
Type type = new TypeToken<Map<String, Skill>>(){}.getType();
fileWriter.write(GSON.toJson(new HashMap<>(skillMap), type));
fileWriter.flush();
fileWriter.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}
}

View File

@ -46,6 +46,14 @@ public class BossDeathListener implements Listener {
if(activeBossHolder == null) return;
EntityDamageEvent.DamageCause damageCause = entityDamageEvent.getCause();
Boolean naturalDrops = activeBossHolder.getBossEntity().getDrops().getNaturalDrops();
Boolean dropExp = activeBossHolder.getBossEntity().getDrops().getDropExp();
if(naturalDrops == null) naturalDrops = false;
if(dropExp == null) dropExp = true;
if(!naturalDrops) event.getDrops().clear();
if(!dropExp) event.setDroppedExp(0);
if(damageCause == EntityDamageEvent.DamageCause.VOID || damageCause == EntityDamageEvent.DamageCause.LAVA
|| activeBossHolder.getMapOfDamagingUsers().isEmpty()) {
@ -53,6 +61,7 @@ public class BossDeathListener implements Listener {
return;
}
if(this.bossEntityManager.isAllEntitiesDead(activeBossHolder)) {
PreBossDeathEvent preBossDeathEvent = new PreBossDeathEvent(activeBossHolder, location);

View File

@ -1,5 +1,6 @@
package com.songoda.epicbosses.managers;
import com.google.gson.Gson;
import com.songoda.epicbosses.CustomBosses;
import com.songoda.epicbosses.api.BossAPI;
import com.songoda.epicbosses.droptable.DropTable;
@ -15,6 +16,7 @@ import com.songoda.epicbosses.managers.files.DropTableFileManager;
import com.songoda.epicbosses.managers.files.ItemsFileManager;
import com.songoda.epicbosses.managers.files.MinionsFileManager;
import com.songoda.epicbosses.skills.custom.Minions;
import com.songoda.epicbosses.utils.BossesGson;
import com.songoda.epicbosses.utils.Debug;
import com.songoda.epicbosses.utils.RandomUtils;
import com.songoda.epicbosses.utils.itemstack.holder.ItemStackHolder;
@ -282,17 +284,19 @@ public class BossEntityManager {
return;
}
Gson gson = BossesGson.get();
if(dropType.equalsIgnoreCase("SPRAY")) {
SprayTableElement sprayTableElement = (SprayTableElement) dropTable.getRewards();
SprayTableElement sprayTableElement = gson.fromJson(dropTable.getRewards(), SprayTableElement.class);
List<ItemStack> itemStacks = this.bossDropTableManager.getSprayItems(sprayTableElement);
sprayDrops(sprayTableElement, itemStacks, deadBossHolder);
} else if(dropType.equalsIgnoreCase("GIVE")) {
GiveTableElement giveTableElement = (GiveTableElement) dropTable.getRewards();
GiveTableElement giveTableElement = gson.fromJson(dropTable.getRewards(), GiveTableElement.class);
this.bossDropTableManager.handleGiveTable(giveTableElement, deadBossHolder);
} else if(dropType.equalsIgnoreCase("DROP")) {
DropTableElement dropTableElement = (DropTableElement) dropTable.getRewards();
DropTableElement dropTableElement = gson.fromJson(dropTable.getRewards(), DropTableElement.class);
List<ItemStack> itemStacks = this.bossDropTableManager.getDropItems(dropTableElement);
itemStacks.forEach(itemStack -> deadBossHolder.getLocation().getWorld().dropItemNaturally(deadBossHolder.getLocation(), itemStack));

View File

@ -0,0 +1,52 @@
package com.songoda.epicbosses.managers.files;
import com.songoda.epicbosses.CustomBosses;
import com.songoda.epicbosses.file.SkillsFileHandler;
import com.songoda.epicbosses.skills.Skill;
import com.songoda.epicbosses.utils.ILoadable;
import com.songoda.epicbosses.utils.IReloadable;
import com.songoda.epicbosses.utils.ISavable;
import java.io.File;
import java.util.HashMap;
import java.util.Map;
/**
* @author Charles Cullen
* @version 1.0.0
* @since 13-Nov-18
*/
public class SkillsFileManager implements ILoadable, IReloadable, ISavable {
private Map<String, Skill> skillMap = new HashMap<>();
private SkillsFileHandler skillsFileHandler;
public SkillsFileManager(CustomBosses plugin) {
File file = new File(plugin.getDataFolder(), "skills.json");
this.skillsFileHandler = new SkillsFileHandler(plugin, true, file);
}
@Override
public void load() {
this.skillMap = this.skillsFileHandler.loadFile();
}
@Override
public void reload() {
load();
}
@Override
public void save() {
this.skillsFileHandler.saveFile(this.skillMap);
}
public Skill getSkill(String name) {
return this.skillMap.getOrDefault(name, null);
}
public Map<String, Skill> getSkillMap() {
return new HashMap<>(this.skillMap);
}
}

View File

@ -9,9 +9,17 @@ import lombok.Setter;
* @version 1.0.0
* @since 05-Nov-18
*/
public abstract class Skill implements ISkillHandler {
public class Skill {
@Expose @Getter @Setter private String mode, type, displayName, customMessage;
@Expose @Getter @Setter private Double radius;
public Skill(String mode, String type, Double radius, String displayName, String customMessage) {
this.mode = mode;
this.type = type;
this.radius = radius;
this.displayName = displayName;
this.customMessage = customMessage;
}
}

View File

@ -3,6 +3,7 @@ package com.songoda.epicbosses.skills.custom;
import com.google.gson.annotations.Expose;
import com.songoda.epicbosses.CustomBosses;
import com.songoda.epicbosses.holder.ActiveBossHolder;
import com.songoda.epicbosses.skills.ISkillHandler;
import com.songoda.epicbosses.skills.custom.cage.CageLocationData;
import com.songoda.epicbosses.skills.custom.cage.CagePlayerData;
import com.songoda.epicbosses.skills.elements.CustomCageSkillElement;
@ -24,7 +25,7 @@ import java.util.*;
* @version 1.0.0
* @since 06-Nov-18
*/
public class Cage extends CustomSkill {
public class Cage extends CustomSkill implements ISkillHandler {
private static final MaterialConverter MATERIAL_CONVERTER = new MaterialConverter();
@ -33,8 +34,8 @@ public class Cage extends CustomSkill {
@Expose @Getter @Setter private CustomCageSkillElement cage;
public Cage(CustomBosses plugin) {
super(plugin);
public Cage(String mode, String type, Double radius, String displayName, String customMessage) {
super(mode, type, radius, displayName, customMessage);
}
@Override

View File

@ -1,7 +1,7 @@
package com.songoda.epicbosses.skills.custom;
import com.songoda.epicbosses.CustomBosses;
import com.songoda.epicbosses.holder.ActiveBossHolder;
import com.songoda.epicbosses.skills.ISkillHandler;
import com.songoda.epicbosses.skills.types.CustomSkill;
import com.songoda.epicbosses.utils.Message;
import com.songoda.epicbosses.utils.RandomUtils;
@ -18,10 +18,10 @@ import java.util.List;
* @version 1.0.0
* @since 11-Nov-18
*/
public class Disarm extends CustomSkill {
public class Disarm extends CustomSkill implements ISkillHandler {
public Disarm(CustomBosses plugin) {
super(plugin);
public Disarm(String mode, String type, Double radius, String displayName, String customMessage) {
super(mode, type, radius, displayName, customMessage);
}
@Override
@ -37,8 +37,8 @@ public class Disarm extends CustomSkill {
if(livingEntity instanceof HumanEntity) {
HumanEntity humanEntity = (HumanEntity) livingEntity;
itemStack = getPlugin().getVersionHandler().getItemInHand(humanEntity);
getPlugin().getVersionHandler().setItemInHand(humanEntity, replacementItemStack);
itemStack = PLUGIN.getVersionHandler().getItemInHand(humanEntity);
PLUGIN.getVersionHandler().setItemInHand(humanEntity, replacementItemStack);
break;
}
case 1:

View File

@ -1,7 +1,7 @@
package com.songoda.epicbosses.skills.custom;
import com.songoda.epicbosses.CustomBosses;
import com.songoda.epicbosses.holder.ActiveBossHolder;
import com.songoda.epicbosses.skills.ISkillHandler;
import com.songoda.epicbosses.skills.types.CustomSkill;
import org.bukkit.entity.LivingEntity;
import org.bukkit.util.Vector;
@ -13,10 +13,10 @@ import java.util.List;
* @version 1.0.0
* @since 11-Nov-18
*/
public class Fireball extends CustomSkill {
public class Fireball extends CustomSkill implements ISkillHandler {
public Fireball(CustomBosses plugin) {
super(plugin);
public Fireball(String mode, String type, Double radius, String displayName, String customMessage) {
super(mode, type, radius, displayName, customMessage);
}
@Override

View File

@ -2,6 +2,7 @@ package com.songoda.epicbosses.skills.custom;
import com.songoda.epicbosses.CustomBosses;
import com.songoda.epicbosses.holder.ActiveBossHolder;
import com.songoda.epicbosses.skills.ISkillHandler;
import com.songoda.epicbosses.skills.types.CustomSkill;
import org.bukkit.Location;
import org.bukkit.entity.LivingEntity;
@ -14,10 +15,10 @@ import java.util.List;
* @version 1.0.0
* @since 11-Nov-18
*/
public class Grapple extends CustomSkill {
public class Grapple extends CustomSkill implements ISkillHandler {
public Grapple(CustomBosses plugin) {
super(plugin);
public Grapple(String mode, String type, Double radius, String displayName, String customMessage) {
super(mode, type, radius, displayName, customMessage);
}
@Override

View File

@ -2,6 +2,7 @@ package com.songoda.epicbosses.skills.custom;
import com.songoda.epicbosses.CustomBosses;
import com.songoda.epicbosses.holder.ActiveBossHolder;
import com.songoda.epicbosses.skills.ISkillHandler;
import com.songoda.epicbosses.skills.types.CustomSkill;
import org.bukkit.entity.LivingEntity;
@ -12,10 +13,10 @@ import java.util.List;
* @version 1.0.0
* @since 11-Nov-18
*/
public class Insidious extends CustomSkill {
public class Insidious extends CustomSkill implements ISkillHandler {
public Insidious(CustomBosses plugin) {
super(plugin);
public Insidious(String mode, String type, Double radius, String displayName, String customMessage) {
super(mode, type, radius, displayName, customMessage);
}
@Override

View File

@ -2,6 +2,7 @@ package com.songoda.epicbosses.skills.custom;
import com.songoda.epicbosses.CustomBosses;
import com.songoda.epicbosses.holder.ActiveBossHolder;
import com.songoda.epicbosses.skills.ISkillHandler;
import com.songoda.epicbosses.skills.types.CustomSkill;
import org.bukkit.Location;
import org.bukkit.entity.LivingEntity;
@ -14,10 +15,10 @@ import java.util.List;
* @version 1.0.0
* @since 11-Nov-18
*/
public class Knockback extends CustomSkill {
public class Knockback extends CustomSkill implements ISkillHandler {
public Knockback(CustomBosses plugin) {
super(plugin);
public Knockback(String mode, String type, Double radius, String displayName, String customMessage) {
super(mode, type, radius, displayName, customMessage);
}
@Override

View File

@ -2,6 +2,7 @@ package com.songoda.epicbosses.skills.custom;
import com.songoda.epicbosses.CustomBosses;
import com.songoda.epicbosses.holder.ActiveBossHolder;
import com.songoda.epicbosses.skills.ISkillHandler;
import com.songoda.epicbosses.skills.types.CustomSkill;
import org.bukkit.Location;
import org.bukkit.entity.LivingEntity;
@ -13,10 +14,10 @@ import java.util.List;
* @version 1.0.0
* @since 11-Nov-18
*/
public class Launch extends CustomSkill {
public class Launch extends CustomSkill implements ISkillHandler {
public Launch(CustomBosses plugin) {
super(plugin);
public Launch(String mode, String type, Double radius, String displayName, String customMessage) {
super(mode, type, radius, displayName, customMessage);
}
@Override

View File

@ -2,6 +2,7 @@ package com.songoda.epicbosses.skills.custom;
import com.songoda.epicbosses.CustomBosses;
import com.songoda.epicbosses.holder.ActiveBossHolder;
import com.songoda.epicbosses.skills.ISkillHandler;
import com.songoda.epicbosses.skills.types.CustomSkill;
import org.bukkit.entity.LivingEntity;
@ -12,10 +13,10 @@ import java.util.List;
* @version 1.0.0
* @since 11-Nov-18
*/
public class Lightning extends CustomSkill {
public class Lightning extends CustomSkill implements ISkillHandler {
public Lightning(CustomBosses plugin) {
super(plugin);
public Lightning(String mode, String type, Double radius, String displayName, String customMessage) {
super(mode, type, radius, displayName, customMessage);
}
@Override

View File

@ -4,6 +4,7 @@ import com.google.gson.annotations.Expose;
import com.songoda.epicbosses.CustomBosses;
import com.songoda.epicbosses.api.BossAPI;
import com.songoda.epicbosses.holder.ActiveBossHolder;
import com.songoda.epicbosses.skills.ISkillHandler;
import com.songoda.epicbosses.skills.elements.CustomMinionSkillElement;
import com.songoda.epicbosses.skills.types.CustomSkill;
import lombok.Getter;
@ -17,12 +18,12 @@ import java.util.List;
* @version 1.0.0
* @since 11-Nov-18
*/
public class Minions extends CustomSkill {
public class Minions extends CustomSkill implements ISkillHandler {
@Expose @Getter @Setter private CustomMinionSkillElement minions;
public Minions(CustomBosses plugin) {
super(plugin);
public Minions(String mode, String type, Double radius, String displayName, String customMessage) {
super(mode, type, radius, displayName, customMessage);
}
@Override

View File

@ -2,6 +2,7 @@ package com.songoda.epicbosses.skills.custom;
import com.songoda.epicbosses.CustomBosses;
import com.songoda.epicbosses.holder.ActiveBossHolder;
import com.songoda.epicbosses.skills.ISkillHandler;
import com.songoda.epicbosses.skills.types.CustomSkill;
import org.bukkit.entity.LivingEntity;
@ -12,10 +13,10 @@ import java.util.List;
* @version 1.0.0
* @since 11-Nov-18
*/
public class Warp extends CustomSkill {
public class Warp extends CustomSkill implements ISkillHandler {
public Warp(CustomBosses plugin) {
super(plugin);
public Warp(String mode, String type, Double radius, String displayName, String customMessage) {
super(mode, type, radius, displayName, customMessage);
}
@Override

View File

@ -2,6 +2,7 @@ package com.songoda.epicbosses.skills.types;
import com.google.gson.annotations.Expose;
import com.songoda.epicbosses.holder.ActiveBossHolder;
import com.songoda.epicbosses.skills.ISkillHandler;
import com.songoda.epicbosses.skills.Skill;
import com.songoda.epicbosses.skills.elements.CommandSkillElement;
import com.songoda.epicbosses.utils.Debug;
@ -18,10 +19,14 @@ import java.util.List;
* @version 1.0.0
* @since 05-Nov-18
*/
public class CommandSkill extends Skill {
public class CommandSkill extends Skill implements ISkillHandler {
@Expose @Getter @Setter private List<CommandSkillElement> commands;
public CommandSkill(String mode, String type, Double radius, String displayName, String customMessage) {
super(mode, type, radius, displayName, customMessage);
}
@Override
public void castSkill(ActiveBossHolder activeBossHolder, List<LivingEntity> nearbyEntities) {
List<CommandSkillElement> commandSkillElements = getCommands();

View File

@ -2,6 +2,7 @@ package com.songoda.epicbosses.skills.types;
import com.google.gson.annotations.Expose;
import com.songoda.epicbosses.CustomBosses;
import com.songoda.epicbosses.skills.ISkillHandler;
import com.songoda.epicbosses.skills.Skill;
import com.songoda.epicbosses.skills.elements.CustomSkillElement;
import lombok.Getter;
@ -12,14 +13,13 @@ import lombok.Setter;
* @version 1.0.0
* @since 05-Nov-18
*/
public abstract class CustomSkill extends Skill {
public class CustomSkill extends Skill {
@Getter private final CustomBosses plugin;
public CustomSkill(CustomBosses plugin) {
this.plugin = plugin;
}
protected static final CustomBosses PLUGIN = CustomBosses.get();
@Expose @Getter @Setter private CustomSkillElement custom;
public CustomSkill(String mode, String type, Double radius, String displayName, String customMessage) {
super(mode, type, radius, displayName, customMessage);
}
}

View File

@ -2,6 +2,7 @@ package com.songoda.epicbosses.skills.types;
import com.google.gson.annotations.Expose;
import com.songoda.epicbosses.holder.ActiveBossHolder;
import com.songoda.epicbosses.skills.ISkillHandler;
import com.songoda.epicbosses.skills.Skill;
import lombok.Getter;
import lombok.Setter;
@ -14,10 +15,14 @@ import java.util.List;
* @version 1.0.0
* @since 05-Nov-18
*/
public class GroupSkill extends Skill {
public class GroupSkill extends Skill implements ISkillHandler {
@Expose @Getter @Setter private List<String> groupedSkills;
public GroupSkill(String mode, String type, Double radius, String displayName, String customMessage) {
super(mode, type, radius, displayName, customMessage);
}
@Override
public void castSkill(ActiveBossHolder activeBossHolder, List<LivingEntity> nearbyEntities) {
//TODO

View File

@ -2,6 +2,7 @@ package com.songoda.epicbosses.skills.types;
import com.google.gson.annotations.Expose;
import com.songoda.epicbosses.holder.ActiveBossHolder;
import com.songoda.epicbosses.skills.ISkillHandler;
import com.songoda.epicbosses.skills.Skill;
import com.songoda.epicbosses.utils.Debug;
import com.songoda.epicbosses.utils.potion.PotionEffectConverter;
@ -17,13 +18,15 @@ import java.util.List;
* @version 1.0.0
* @since 05-Nov-18
*/
public class PotionSkill extends Skill {
public class PotionSkill extends Skill implements ISkillHandler {
@Expose @Getter @Setter private List<PotionEffectHolder> potions;
private final PotionEffectConverter potionEffectConverter;
public PotionSkill() {
public PotionSkill(String mode, String type, Double radius, String displayName, String customMessage) {
super(mode, type, radius, displayName, customMessage);
this.potionEffectConverter = new PotionEffectConverter();
}

View File

@ -34,11 +34,11 @@ public class MessageUtils {
messages.replaceAll(s -> s.replace('&', '§'));
if(radius == -1) {
Bukkit.getOnlinePlayers().forEach(player -> messages.forEach(player::sendMessage));
Bukkit.getOnlinePlayers().forEach(player -> messages.forEach(string -> player.sendMessage(string)));
} else {
Bukkit.getOnlinePlayers().forEach(player -> {
if((player.getWorld().equals(center.getWorld())) && (player.getLocation().distanceSquared(center) <= radius)) {
messages.forEach(player::sendMessage);
messages.forEach(string -> player.sendMessage(string));
}
});
}

View File

@ -19,7 +19,7 @@
</modules>
<properties>
<plugin.version>1.0.0-SNAPSHOT-U46</plugin.version>
<plugin.version>1.0.0-SNAPSHOT-U47</plugin.version>
<plugin.name>EpicBosses</plugin.name>
<plugin.main>com.songoda.epicbosses.CustomBosses</plugin.main>
<plugin.author>AMinecraftDev</plugin.author>