- Баллы
- 76
В expansion Statistic мне нужно добавить возможность отображать информацию об указанном игроке, типа: %statistic_seconds_played_<ник_игрока>%.
Вот кусок кода:
собсна, хочу узнать, как сделать, чтобы при указании игрока в плейсхолдере показывало, например, наигранное кол-во времени именно указанного игрока, а не того, кто вызвал этот плейсхолдер.
Вот кусок кода:
Код:
@Override
public String onPlaceholderRequest(Player p, String identifier) {
if (p == null) {
return "";
}
switch (identifier.toLowerCase()) {
case "mine_block":
long mine = 0;
if (mine_block.isEmpty()) {
return "0";
}
for (Material m : mine_block) {
mine += p.getStatistic(Statistic.MINE_BLOCK, m);
}
return String.valueOf(mine);
case "use_item":
long use = 0;
if (use_item.isEmpty()) {
return "0";
}
for (Material m : use_item) {
use += p.getStatistic(Statistic.USE_ITEM, m);
}
return String.valueOf(use);
case "break_item":
long br = 0;
if (break_item.isEmpty()) {
return "0";
}
for (Material m : break_item) {
br += p.getStatistic(Statistic.BREAK_ITEM, m);
}
return String.valueOf(br);
case "craft_item":
long cr = 0;
if (craft_item.isEmpty()) {
return "0";
}
for (Material m : craft_item) {
cr += p.getStatistic(Statistic.CRAFT_ITEM, m);
}
return String.valueOf(cr);
case "seconds_played":
try {
return String.valueOf(p.getStatistic(Statistic.PLAY_ONE_MINUTE) / 20);
} catch (NoSuchFieldError error) {
return String.valueOf(p.getStatistic(Statistic.valueOf("PLAY_ONE_TICK")) / 20);
}
case "minutes_played":
try {
return String.valueOf((p.getStatistic(Statistic.PLAY_ONE_MINUTE) / 20) / 60);
} catch (NoSuchFieldError error) {
return String.valueOf((p.getStatistic(Statistic.valueOf("PLAY_ONE_TICK")) / 20) / 60);
}
case "hours_played":
try {
return String.valueOf(((p.getStatistic(Statistic.PLAY_ONE_MINUTE) / 20) / 60) / 60);
} catch (NoSuchFieldError error) {
return String.valueOf(((p.getStatistic(Statistic.valueOf("PLAY_ONE_TICK")) / 20) / 60) / 60);
}
case "days_played":
try {
return String.valueOf((((p.getStatistic(Statistic.PLAY_ONE_MINUTE) / 20) / 60) / 60) / 24);
} catch (NoSuchFieldError error) {
return String.valueOf((((p.getStatistic(Statistic.valueOf("PLAY_ONE_TICK")) / 20) / 60) / 60) / 24);
}
case "time_played":
try {
return TimeUtil.getTime((p.getStatistic(Statistic.PLAY_ONE_MINUTE) / 20));
} catch (NoSuchFieldError error) {
return TimeUtil.getTime((p.getStatistic(Statistic.valueOf("PLAY_ONE_TICK")) / 20));
}
case "time_since_death":
return TimeUtil.getTime(p.getStatistic(Statistic.TIME_SINCE_DEATH) / 20);
case "seconds_since_death":
return String.valueOf(p.getStatistic(Statistic.TIME_SINCE_DEATH) / 20L);
case "minutes_since_death":
return String.valueOf((p.getStatistic(Statistic.TIME_SINCE_DEATH) / 20L) / 60L);
case "hours_since_death":
return String.valueOf(((p.getStatistic(Statistic.TIME_SINCE_DEATH) / 20L) / 60L) / 60L);
case "days_since_death":
return String.valueOf((((p.getStatistic(Statistic.TIME_SINCE_DEATH) / 20L) / 60L) / 60L) / 24L);
}