Use org.reflections to get all subclass of MineClassImpl in order to avoid the declaration inside the MineClassFactory
This commit is contained in:
@@ -5,13 +5,12 @@ import net.babamod.mineclass.commands.CommandClass;
|
||||
import net.babamod.mineclass.listeners.MineClassListeners;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.command.PluginCommand;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public final class Mineclass extends JavaPlugin implements Listener {
|
||||
public final class Mineclass extends JavaPlugin {
|
||||
|
||||
@Override
|
||||
public void onEnable() {
|
||||
|
||||
@@ -11,6 +11,7 @@ import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
public class BeastMasterClass extends MineClassImpl {
|
||||
|
||||
private static final Set<Material> forbiddenItems =
|
||||
|
||||
@@ -10,6 +10,7 @@ import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
public class DwarfClass extends MineClassImpl {
|
||||
|
||||
private final Set<Material> forbiddenItems =
|
||||
|
||||
@@ -10,6 +10,7 @@ import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
public class ElfClass extends MineClassImpl {
|
||||
|
||||
private static final Set<Material> forbiddenItems =
|
||||
|
||||
@@ -13,6 +13,7 @@ import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
public class EnderElfClass extends MineClassImpl {
|
||||
|
||||
private static final Set<Material> forbiddenItems =
|
||||
|
||||
@@ -10,6 +10,7 @@ import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
public class FireDwarfClass extends MineClassImpl {
|
||||
|
||||
private static final Set<Material> forbiddenItems =
|
||||
|
||||
@@ -1,11 +1,14 @@
|
||||
package net.babamod.mineclass.classes;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.meta.ItemMeta;
|
||||
import org.bukkit.potion.PotionEffect;
|
||||
import org.reflections.Reflections;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.logging.Level;
|
||||
|
||||
public class MineClassFactory {
|
||||
/** Instance unique pré-initialisée */
|
||||
@@ -16,11 +19,15 @@ public class MineClassFactory {
|
||||
/** Constructeur privé */
|
||||
private MineClassFactory() {
|
||||
availableClasses = new HashMap<>();
|
||||
availableClasses.put("dwarf", new DwarfClass());
|
||||
availableClasses.put("elf", new ElfClass());
|
||||
availableClasses.put("fire_dwarf", new FireDwarfClass());
|
||||
availableClasses.put("ender_elf", new EnderElfClass());
|
||||
availableClasses.put("beast_master", new BeastMasterClass());
|
||||
// Reflecting all MineClass classes and instantiates them with there codes
|
||||
for (Class<? extends MineClassImpl> aClass : new Reflections().getSubTypesOf(MineClassImpl.class)) {
|
||||
try {
|
||||
MineClass mineClass = aClass.newInstance();
|
||||
availableClasses.put(mineClass.getCode(), mineClass);
|
||||
} catch (InstantiationException | IllegalAccessException e) {
|
||||
Bukkit.getLogger().log(Level.WARNING, e.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/** Point d'accès pour l'instance unique du singleton */
|
||||
|
||||
Reference in New Issue
Block a user