12
0

Split Support Item / Missile Item #19

Geschlossen
YoyoNow möchte 2 Commits von SplitItemGive nach master mergen
3 geänderte Dateien mit 37 neuen und 12 gelöschten Zeilen

Datei anzeigen

@ -48,9 +48,11 @@ public class Config {
public static final int ShieldFlyTime;
public static final int EndTime;
static{
public static final double MissileChance;
static {
File configfile = new File(Bukkit.getWorlds().get(0).getWorldFolder(), "config.yml");
if(!configfile.exists()){
if (!configfile.exists()) {
Bukkit.getLogger().log(Level.SEVERE, "Config fehlt!");
Bukkit.shutdown();
}
@ -62,6 +64,8 @@ public class Config {
ShieldFlyTime = config.getInt("ShieldFlyTime");
EndTime = config.getInt("EndTime");
MissileChance = config.getDouble("MissileChance");
ConfigurationSection arena = config.getConfigurationSection("Arena");
assert arena != null;
ArenaMinX = arena.getInt("MinX");

Datei anzeigen

@ -161,6 +161,11 @@ public class Missile extends SpecialItem {
return true;
}
@Override
public boolean isMissile() {
return true;
}
public static void init(){
File missileFolder = new File(MissileWars.getPlugin().getDataFolder(), "missiles");
if(!missileFolder.exists() || !missileFolder.canRead() || !missileFolder.isDirectory()){

Datei anzeigen

@ -19,6 +19,7 @@
package de.steamwar.misslewars.items;
import de.steamwar.misslewars.Config;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
@ -30,14 +31,22 @@ public abstract class SpecialItem {
private static final Random random = new Random();
private static List<SpecialItem> items = new ArrayList<>();
private static List<SpecialItem> supportItems = new ArrayList<>();
private static List<SpecialItem> missileItems = new ArrayList<>();
SpecialItem(){
items.add(this);
SpecialItem() {
if (this.isMissile()) {
missileItems.add(this);
} else {
supportItems.add(this);
}
}
public abstract ItemStack getItem();
public abstract boolean handleUse(Player p);
public boolean isMissile() {
return false;
}
public ItemStack createItem(Material material, String name, int amount) {
ItemStack item = new ItemStack(material, amount);
@ -48,16 +57,23 @@ public abstract class SpecialItem {
return item;
}
public static boolean handleUse(ItemStack item, Player player){
for(SpecialItem specialItem : items){
if(item.isSimilar(specialItem.getItem())){
return specialItem.handleUse(player);
}
public static boolean handleUse(ItemStack item, Player player) {
return handleUse(item, player, missileItems) || handleUse(item, player, supportItems);
}
private static boolean handleUse(ItemStack item, Player player, List<SpecialItem> items) {
for (SpecialItem specialItem : items) {
if (item.isSimilar(specialItem.getItem())) return specialItem.handleUse(player);
}
return false;
}
public static ItemStack getRandomItem(){
return items.get(random.nextInt(items.size())).getItem();
public static ItemStack getRandomItem() {
if (random.nextDouble() > Config.MissileChance) {
Review

Gibt random.nextDouble() wirklcih eine Zahl zwischen 0 und 1 zurück?

Gibt random.nextDouble() wirklcih eine Zahl zwischen 0 und 1 zurück?
Review

Ja Java Doc:

     * Returns the next pseudorandom, uniformly distributed
     * {@code double} value between {@code 0.0} and
     * {@code 1.0} from this random number generator's sequence.```
Ja Java Doc: ```/** * Returns the next pseudorandom, uniformly distributed * {@code double} value between {@code 0.0} and * {@code 1.0} from this random number generator's sequence.```
return supportItems.get(random.nextInt(supportItems.size())).getItem();
} else {
return missileItems.get(random.nextInt(missileItems.size())).getItem();
}
}
}