.. Я спросил, как получить деньги игрока.@Ivasik Как я понял, он хочет заказать мод на поддержку инфы с EX сервера в клиенте.
А т.к. он ничего не покупал, он не знает, сколько ему нужно платить.
Где?!?Я спросил, как получить деньги игрока.
Как получить денежную стоимость плагина EssentialsX на сервере для отображения на экране?
я использую Гугл переводчик.. Перевод неверен.Где?!?
Сожалею. Но вы можете ответить на вопрос выше?Лучше переводи по одному слову, так хоть частично понять получится.
Can I ask in English?Just use English.
Does that mean that the plugin needs to send a packet to the client?Что касается самого вопроса, то в essentials есть Economy#getMoney, а чтобы уже на клиенте отрисовать, нужно отправить пакет клиент моду и там уже через событие отрисовать.
You need to use sendPlayerMessage to send money information to the client. It is desirable to do this in a separate thread and for example once per second.Does that mean that the plugin needs to send a packet to the client?
public void onEnable() {
this.getServer().getMessenger().registerOutgoingPluginChannel(this, "MySuperChannel");
this.getServer().getScheduler().runTaskTimer(this, new MoneyWatcher(this, this.getServer()), 0, 20);// 0 - delay, 20 - repeat in ticks(20 ticks = 1 sec)
}
public class MoneyWatcher implements Runnable {
private final Plugin plugin;
private final Server server;
public MoneyWatcher(Plugin plugin, Server server) {
this.plugin = plugin;
this.server = server;
}
@Override
public void run() {
this.server.getOnlinePlayers().forEach(this::sendMoneyInfo);
}
private void sendMoneyInfo(Player player) {
// HERE GETTING MONEY FROM ESS START
final int money = 250;
// HERE GETTING MONEY FROM ESS END
final ByteArrayDataOutput out = ByteStreams.newDataOutput();
out.writeByte(0);// This is a packet id
out.writeInt(money);
player.sendPluginMessage(this, "MySuperChannel", out.toByteArray());
}
}
Should I write that class in a plugin?For example: