commit message

This commit is contained in:
MeexReay 2024-03-24 13:57:37 +03:00
parent 854e66073e
commit 620be20c10
5 changed files with 49 additions and 32 deletions

View File

@ -8,7 +8,7 @@
bind_host: 0.0.0.0 # Локальный IP адрес сервера (обычно такой же как и в server.properties) bind_host: 0.0.0.0 # Локальный IP адрес сервера (обычно такой же как и в server.properties)
bind_port: 8080 # Свободный порт для сайта (потребуется открыть его на хостинге) bind_port: 8080 # Свободный порт для сайта (потребуется открыть его на хостинге)
external_host: example.com # Внешний IP адрес / домен сервера external_host: example.com # Внешний IP адрес или домен сервера
secret_token: "ваш_секретный_токен" # Секретный токен с FroggyMonitor secret_token: "ваш_секретный_токен" # Секретный токен с FroggyMonitor
@ -19,14 +19,21 @@ vote: # Награда за голос
commands: # Исполнить команды commands: # Исполнить команды
- "/title {player_name} subtitle на FroggyMonitor" - "/title {player_name} subtitle на FroggyMonitor"
- "/title {player_name} title Спасибо за отзыв!" - "/title {player_name} title Спасибо за отзыв!"
# Каждый параметр наград не обязателен as_player: # Исполнить команды или написать сообщение в чат от лица игрока
- "Я проголосовал за сервер и получил награду"
- "/me купит себе ламборгини на 10$ с награды"
# Каждый параметр наград не обязателен, но не должен использоваться больше 1 раза
# Указывать предмет вот так: "{название_предмета} {кол_во}"
add_comment: # Награда за удаление отзыва add_comment: # Награда за удаление отзыва
vault: 10 vault: 10
message: "Спасибо за отзыв!" message: "Спасибо за отзыв!"
# Тут могут использоваться все параметры из наград за голоса
del_comment: # Награда за удаление отзыва del_comment: # Награда за удаление отзыва
vault: -10 # Снять валюту vault: -10
# Тут могут использоваться все параметры из наград за голоса
enable_logs: true # Включить логи плагина (true/false); true - вкл; false - выкл enable_logs: true # Включить логи плагина (true/false); true - вкл; false - выкл
@ -35,7 +42,7 @@ message_formatting: "ampersand" # Изменить тип форматирова
# ampersand: &cСообщение # ampersand: &cСообщение
# section: §cСообщение # section: §cСообщение
# minimessage: <red>Сообщение</red> # minimessage: <red>Сообщение</red>
# json: {"text": "Сообщение", "color": "red"} # json: {"text": "Сообщение", "color": "red"}
``` ```
## Как это работает ## Как это работает

View File

@ -6,7 +6,7 @@
<groupId>ru.froggymonitor</groupId> <groupId>ru.froggymonitor</groupId>
<artifactId>rewardplugin</artifactId> <artifactId>rewardplugin</artifactId>
<version>1.3</version> <version>1.4</version>
<packaging>jar</packaging> <packaging>jar</packaging>
<name>FroggyMonitorReward</name> <name>FroggyMonitorReward</name>

View File

@ -1,5 +1,7 @@
package ru.froggymonitor.rewardplugin; package ru.froggymonitor.rewardplugin;
import me.clip.placeholderapi.PlaceholderAPI;
import net.md_5.bungee.api.chat.BaseComponent;
import net.milkbowl.vault.economy.Economy; import net.milkbowl.vault.economy.Economy;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.OfflinePlayer; import org.bukkit.OfflinePlayer;
@ -57,19 +59,13 @@ public final class Main extends JavaPlugin implements Listener {
public File cache_file; public File cache_file;
public boolean has_placeholderapi;
public boolean has_vault;
@Override @Override
public void onEnable() { public void onEnable() {
if (!setupEconomy()) { has_vault = setupEconomy();
getLogger().severe("[FroggyMonitorReward] - Disabled due to no Vault dependency found!"); has_placeholderapi = Bukkit.getPluginManager().getPlugin("PlaceholderAPI") != null;
getServer().getPluginManager().disablePlugin(this);
return;
}
if (Bukkit.getPluginManager().getPlugin("PlaceholderAPI") == null) {
getLogger().severe("[FroggyMonitorReward] - Disabled due to no PlaceholderAPI dependency found!");
getServer().getPluginManager().disablePlugin(this);
return;
}
me = this; me = this;
@ -108,8 +104,8 @@ public final class Main extends JavaPlugin implements Listener {
@Override @Override
public void onDisable() { public void onDisable() {
site.stop();
saveCache(); saveCache();
site.stop();
} }
@EventHandler @EventHandler
@ -193,4 +189,12 @@ public final class Main extends JavaPlugin implements Listener {
throw new RuntimeException(e); throw new RuntimeException(e);
} }
} }
public BaseComponent[] formatMessage(Player player, String text) {
return Main.me.message_formatting.format(has_placeholderapi ? PlaceholderAPI.setPlaceholders(player, text) : text);
}
public void giveVault(OfflinePlayer player, double amount) {
if (has_vault) econ.depositPlayer(player, amount);
}
} }

View File

@ -26,14 +26,8 @@ public class Reward {
Player player = Bukkit.getPlayer(nickname); Player player = Bukkit.getPlayer(nickname);
if (player != null) { if (player != null) {
if (data.containsKey("item")) { later(player);
String[] ss = ((String)data.get("item")).split(" "); } else {
ItemStack item = new ItemStack(Material.valueOf(ss[0].toUpperCase()), ss.length == 1 ? 1 : Integer.parseInt(ss[1]));
player.getInventory().addItem(item);
}
if (data.containsKey("message")) {
player.spigot().sendMessage(Main.me.message_formatting.format(PlaceholderAPI.setPlaceholders(player, (String) data.get("message"))));
}
Main.me.cache.put(nickname, name); Main.me.cache.put(nickname, name);
} }
@ -41,7 +35,7 @@ public class Reward {
if (offlinePlayer != null) { if (offlinePlayer != null) {
if (data.containsKey("vault")) { if (data.containsKey("vault")) {
Main.me.econ.depositPlayer(offlinePlayer, Main.me.giveVault(offlinePlayer,
((Number) data.get("vault")).doubleValue()); ((Number) data.get("vault")).doubleValue());
} }
if (data.containsKey("commands")) { if (data.containsKey("commands")) {
@ -62,5 +56,10 @@ public class Reward {
if (data.containsKey("message")) { if (data.containsKey("message")) {
player.spigot().sendMessage(Main.me.message_formatting.format(PlaceholderAPI.setPlaceholders(player, (String) data.get("message")))); player.spigot().sendMessage(Main.me.message_formatting.format(PlaceholderAPI.setPlaceholders(player, (String) data.get("message"))));
} }
if (data.containsKey("as_player")) {
for (String c : new ArrayList<>((List<String>) data.get("as_player"))) {
player.chat(c);
}
}
} }
} }

View File

@ -1,7 +1,7 @@
bind_host: 0.0.0.0 # Локальный IP адрес сервера (обычно такой же как и в server.properties) bind_host: 0.0.0.0 # Локальный IP адрес сервера (обычно такой же как и в server.properties)
bind_port: 8080 # Свободный порт для сайта (потребуется открыть его на хостинге) bind_port: 8080 # Свободный порт для сайта (потребуется открыть его на хостинге)
external_host: example.com # Внешний IP адрес / домен сервера external_host: example.com # Внешний IP адрес или домен сервера
secret_token: аш_секретный_токен" # Секретный токен с FroggyMonitor secret_token: аш_секретный_токен" # Секретный токен с FroggyMonitor
@ -12,14 +12,21 @@ vote: # Награда за голос
commands: # Исполнить команды commands: # Исполнить команды
- "/title {player_name} subtitle на FroggyMonitor" - "/title {player_name} subtitle на FroggyMonitor"
- "/title {player_name} title Спасибо за отзыв!" - "/title {player_name} title Спасибо за отзыв!"
# Каждый параметр наград не обязателен as_player: # Исполнить команды или написать сообщение в чат от лица игрока
- "Я проголосовал за сервер и получил награду"
- "/me купит себе ламборгини на 10$ с награды"
# Каждый параметр наград не обязателен, но не должен использоваться больше 1 раза
# Указывать предмет вот так: "{название_предмета} {кол_во}"
add_comment: # Награда за удаление отзыва add_comment: # Награда за удаление отзыва
vault: 10 vault: 10
message: "Спасибо за отзыв!" message: "Спасибо за отзыв!"
# Тут могут использоваться все параметры из наград за голоса
del_comment: # Награда за удаление отзыва del_comment: # Награда за удаление отзыва
vault: -10 # Снять валюту vault: -10
# Тут могут использоваться все параметры из наград за голоса
enable_logs: true # Включить логи плагина (true/false); true - вкл; false - выкл enable_logs: true # Включить логи плагина (true/false); true - вкл; false - выкл