SteamWar/MissileWars
Archiviert
13
0

Add Support / Missile Item split #21

Manuell gemergt
YoyoNow hat 1 Commits von SplitItemGive nach master 2020-10-04 15:56:53 +02:00 zusammengeführt
3 geänderte Dateien mit 40 neuen und 13 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

@ -148,6 +148,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.enchantments.Enchantment;
import org.bukkit.entity.Player;
@ -26,20 +27,30 @@ import org.bukkit.inventory.ItemFlag;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import java.util.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
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) {
return createItem(material, name, amount, new ArrayList<>());
@ -56,16 +67,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

Variable Private Final und dann ein Getter?

Variable Private Final und dann ein Getter?
Review

Guck dir mal Config an, da gibt es nur sowas und ich habe mich somit an die Code Conventions von unserem System gehalten

Guck dir mal Config an, da gibt es nur sowas und ich habe mich somit an die Code Conventions von unserem System gehalten
return supportItems.get(random.nextInt(supportItems.size())).getItem();
} else {
return missileItems.get(random.nextInt(missileItems.size())).getItem();
}
}
}