public static final Enchantment myEnchantment;//Тут будет твой чар, инициализировать сразу не советую
//Вот этот код где-то в инициализации можно разместить
boolean found = false;
for(int i = 0; i < Enchantment.enchantmentsList.lenght; i++) {
Enchantment e = Enchantment.enchantmentsList[i];
if(e == null) {
//Нашлась не занятая ячейка.
found = true;
myEnchantment = new ....(i, вес[I]чара, тип[/I]чара); //Тут твой класс чара, наследующий Enchantment, т.к. конструктор защищённый
break;
}
}
if(!found) {
//Если не нашлось места - копируешь массив имеющийся с раширением на +1 слот и суёшь в последний слот свой чар
Enchantment[] newArray = new Enchantment[Enchantment.enchantmentsList.lenght + 1];
System.arraycopy(Enchantment.enchantmentsList, 0, newArray, 0, t.length);
myEnchantment = new ....(t.length, вес[I]чара, тип[/I]чара); //Тут твой класс чара, наследующий Enchantment, т.к. конструктор защищённый
//Если будет вопрос по типу, почему мы не положили чар в массив - то ответ: в конструкторе чара объект сам вставится по id конструктора в массив.
}