Arcturus-Community/src/main/java/com/eu/habbo/habbohotel/achievements/TalentTrackLevel.java

72 lines
2.4 KiB
Java
Raw Normal View History

2018-07-06 15:30:00 +02:00
package com.eu.habbo.habbohotel.achievements;
import com.eu.habbo.Emulator;
import com.eu.habbo.habbohotel.items.Item;
import gnu.trove.map.TObjectIntMap;
import gnu.trove.map.hash.TObjectIntHashMap;
import gnu.trove.set.hash.THashSet;
import java.sql.ResultSet;
import java.sql.SQLException;
2019-05-26 20:14:53 +02:00
public class TalentTrackLevel {
2018-07-08 23:32:00 +02:00
2018-07-06 15:30:00 +02:00
public TalentTrackType type;
2018-07-08 23:32:00 +02:00
2018-07-06 15:30:00 +02:00
public int level;
2018-07-08 23:32:00 +02:00
2018-07-06 15:30:00 +02:00
public TObjectIntMap<Achievement> achievements;
2018-07-08 23:32:00 +02:00
2018-07-06 15:30:00 +02:00
public THashSet<Item> items;
2018-07-08 23:32:00 +02:00
2018-07-06 15:30:00 +02:00
public String[] perks;
2018-07-08 23:32:00 +02:00
2018-07-06 15:30:00 +02:00
public String[] badges;
2019-05-26 20:14:53 +02:00
public TalentTrackLevel(ResultSet set) throws SQLException {
this.type = TalentTrackType.valueOf(set.getString("type").toUpperCase());
this.level = set.getInt("level");
2018-09-28 21:25:00 +02:00
this.achievements = new TObjectIntHashMap<>();
2019-05-26 20:14:53 +02:00
this.items = new THashSet<>();
2018-07-06 15:30:00 +02:00
2019-05-26 20:14:53 +02:00
String[] achievements = set.getString("achievement_ids").split(",");
2018-07-06 15:30:00 +02:00
String[] achievementLevels = set.getString("achievement_levels").split(",");
2019-05-26 20:14:53 +02:00
if (achievementLevels.length == achievements.length) {
for (int i = 0; i < achievements.length; i++) {
2018-07-06 15:30:00 +02:00
if (achievements[i].isEmpty() || achievementLevels[i].isEmpty())
continue;
Achievement achievement = Emulator.getGameEnvironment().getAchievementManager().getAchievement(Integer.valueOf(achievements[i]));
2019-05-26 20:14:53 +02:00
if (achievement != null) {
2018-07-06 15:30:00 +02:00
this.achievements.put(achievement, Integer.valueOf(achievementLevels[i]));
2019-05-26 20:14:53 +02:00
} else {
2018-07-06 15:30:00 +02:00
Emulator.getLogging().logErrorLine("Could not find achievement with ID " + achievements[i] + " for talenttrack level " + this.level + " of type " + this.type);
}
}
}
2019-05-26 20:14:53 +02:00
for (String s : set.getString("reward_furni").split(",")) {
2018-07-06 15:30:00 +02:00
Item item = Emulator.getGameEnvironment().getItemManager().getItem(Integer.valueOf(s));
2019-05-26 20:14:53 +02:00
if (item != null) {
2019-03-18 02:22:00 +01:00
this.items.add(item);
2019-05-26 20:14:53 +02:00
} else {
2018-07-06 15:30:00 +02:00
Emulator.getLogging().logStart("Incorrect reward furni (ID: " + s + ") for talent track level " + this.level);
}
}
2019-05-26 20:14:53 +02:00
if (!set.getString("reward_perks").isEmpty()) {
2018-12-22 11:39:00 +01:00
this.perks = set.getString("reward_perks").split(",");
}
2019-05-26 20:14:53 +02:00
if (!set.getString("reward_badges").isEmpty()) {
2018-12-22 11:39:00 +01:00
this.badges = set.getString("reward_badges").split(",");
}
2018-07-06 15:30:00 +02:00
}
}