Use reflection for all Compat+CB modules.

This won't solve any problems directly, but it might later allow easier
splitting off dependencies and ease up removing modules for custom
builds.
This commit is contained in:
asofold 2015-03-20 19:36:45 +01:00
parent 6c5c6941f9
commit d53d5c7bc1

View File

@ -6,21 +6,7 @@ import java.util.List;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import fr.neatmonster.nocheatplus.compat.bukkit.MCAccessBukkit; import fr.neatmonster.nocheatplus.compat.bukkit.MCAccessBukkit;
import fr.neatmonster.nocheatplus.compat.cb2512.MCAccessCB2512;
import fr.neatmonster.nocheatplus.compat.cb2545.MCAccessCB2545;
import fr.neatmonster.nocheatplus.compat.cb2602.MCAccessCB2602;
import fr.neatmonster.nocheatplus.compat.cb2645.MCAccessCB2645;
import fr.neatmonster.nocheatplus.compat.cb2691.MCAccessCB2691;
import fr.neatmonster.nocheatplus.compat.cb2763.MCAccessCB2763;
import fr.neatmonster.nocheatplus.compat.cb2794.MCAccessCB2794;
import fr.neatmonster.nocheatplus.compat.cb2808.MCAccessCB2808;
import fr.neatmonster.nocheatplus.compat.cb2882.MCAccessCB2882;
import fr.neatmonster.nocheatplus.compat.cb2922.MCAccessCB2922;
import fr.neatmonster.nocheatplus.compat.cb3026.MCAccessCB3026;
import fr.neatmonster.nocheatplus.compat.cb3043.MCAccessCB3043;
import fr.neatmonster.nocheatplus.compat.cb3100.MCAccessCB3100;
import fr.neatmonster.nocheatplus.compat.glowstone.MCAccessGlowstone; import fr.neatmonster.nocheatplus.compat.glowstone.MCAccessGlowstone;
import fr.neatmonster.nocheatplus.compat.spigotcb1_8.MCAccessSpigotCB1_8;
import fr.neatmonster.nocheatplus.logging.StaticLog; import fr.neatmonster.nocheatplus.logging.StaticLog;
/** /**
@ -101,128 +87,36 @@ public class MCAccessFactory {
// TODO: Quick return check (note special forks and package info not being usable). // TODO: Quick return check (note special forks and package info not being usable).
// TEMP // final String[] classNames = new String[] {
// Only add as long as no stable module has been added. // Current DEV / LATEST: CB (SPigot)
// 1.8.3 (Spigot) "fr.neatmonster.nocheatplus.compat.cbdev.MCAccessCBDev", // 1.8.3
try{ // Dedicated: CB (Spigot)
return (MCAccess) Class.forName("fr.neatmonster.nocheatplus.compat.cbdev.MCAccessCBDev").newInstance(); "fr.neatmonster.nocheatplus.compat.spigotcb1_8.MCAccessSpigotCB1_8", // 1.8
} // Dedicated CB (original)
catch(Throwable t) { "fr.neatmonster.nocheatplus.compat.cb3100.MCAccessCB3100", // 1.7.10
throwables.add(t); "fr.neatmonster.nocheatplus.compat.cb3043.MCAccessCB3043", // 1.7.8|1.7.9
}; "fr.neatmonster.nocheatplus.compat.cb3026.MCAccessCB3026", // 1.7.5
// TEMP END // "fr.neatmonster.nocheatplus.compat.cb2922.MCAccessCB2922", // 1.7.2
"fr.neatmonster.nocheatplus.compat.cb2882.MCAccessCB2882", // 1.6.4
// 1.8 "fr.neatmonster.nocheatplus.compat.cb2808.MCAccessCB2808", // 1.6.2
try{ "fr.neatmonster.nocheatplus.compat.cb2794.MCAccessCB2794", // 1.6.1
return new MCAccessSpigotCB1_8(); "fr.neatmonster.nocheatplus.compat.cb2763.MCAccessCB2763", // 1.5.2
} "fr.neatmonster.nocheatplus.compat.cb2691.MCAccessCB2691", // 1.5.1
catch(Throwable t) { "fr.neatmonster.nocheatplus.compat.cb2645.MCAccessCB2645", // 1.5
throwables.add(t); "fr.neatmonster.nocheatplus.compat.cb2602.MCAccessCB2602", // 1.4.7
"fr.neatmonster.nocheatplus.compat.cb2545.MCAccessCB2545", // 1.4.6
"fr.neatmonster.nocheatplus.compat.cb2512.MCAccessCB2512", // 1.4.5-R1.0
}; };
// 1.7.10 for (String className : classNames) {
try{ try{
return new MCAccessCB3100(); return (MCAccess) Class.forName(className).newInstance();
}
catch(Throwable t) {
throwables.add(t);
};
} }
catch(Throwable t) { // None worked.
throwables.add(t);
};
// 1.7.8|1.7.9
try{
return new MCAccessCB3043();
}
catch(Throwable t) {
throwables.add(t);
};
// 1.7.5
try{
return new MCAccessCB3026();
}
catch(Throwable t) {
throwables.add(t);
};
// 1.7.2
try{
return new MCAccessCB2922();
}
catch(Throwable t) {
throwables.add(t);
};
// 1.6.4
try{
return new MCAccessCB2882();
}
catch(Throwable t) {
throwables.add(t);
};
// 1.6.2
try{
return new MCAccessCB2808();
}
catch(Throwable t) {
throwables.add(t);
};
// 1.6.1
try{
return new MCAccessCB2794();
}
catch(Throwable t) {
throwables.add(t);
};
// 1.5.2
try{
return new MCAccessCB2763();
}
catch(Throwable t) {
throwables.add(t);
};
// 1.5.1 (cb beta)
try{
return new MCAccessCB2691();
}
catch(Throwable t) {
throwables.add(t);
};
// 1.5
try{
return new MCAccessCB2645();
}
catch(Throwable t) {
throwables.add(t);
};
// 1.4.7
try{
return new MCAccessCB2602();
}
catch(Throwable t) {
throwables.add(t);
};
// 1.4.6
try{
return new MCAccessCB2545();
}
catch(Throwable t) {
throwables.add(t);
};
// 1.4.5-R1.0
try{
return new MCAccessCB2512();
}
catch(Throwable t) {
throwables.add(t);
};
return null; return null;
} }