new effects.yml file + async chunk load loop fix

This commit is contained in:
SuperRonanCraft 2020-08-11 11:59:22 -04:00
parent fe12cb802b
commit 5a497dfc9e
16 changed files with 244 additions and 273 deletions

View File

@ -84,7 +84,7 @@ public class CmdInfo implements RTPCommand {
if (pl.getRTP().overriden.containsKey(w.getName()))
info.add("&7- &6Overriden: &bTrue");
else {
info.add("&7- &7WorldType: " + pl.getRTP().world_type.getOrDefault(w.getName(), RTP_WORLD_TYPE.NORMAL).name());
info.add("&7- &6WorldType: &f" + pl.getRTP().world_type.getOrDefault(w.getName(), RTP_WORLD_TYPE.NORMAL).name());
info.add("&7- &6Overriden: &cFalse");
RTPWorld _rtpworld = pl.getRTP().Default;
for (RTPWorld __rtpworld : pl.getRTP().customWorlds.values()) {

View File

@ -29,21 +29,22 @@ class RTPDelay implements Listener {
Main pl = Main.getInstance();
if (sendi.equals(pWorld.getPlayer()) && delay != 0 && getPl().getText().getTitleDelayChat())
getPl().getText().getDelay(sendi, String.valueOf(delay));
if (getPl().getText().getSoundsEnabled()) {
Sound sound = getPl().getText().getSoundsDelay();
if (sound != null)
pWorld.getPlayer().playSound(pWorld.getPlayer().getLocation(), sound, 1F, 1F);
}
if (getPl().getText().getTitleEnabled()) {
String title = getPl().getText().getTitleDelay(pWorld.getPlayer().getName(), String.valueOf(delay));
String subTitle = getPl().getText().getSubTitleDelay(pWorld.getPlayer().getName(), String.valueOf(delay));
pWorld.getPlayer().sendTitle(title, subTitle);
// int fadeIn = text.getFadeIn();
// int stay = text.getStay();
// int fadeOut = text.getFadeOut();
// player.sendTitle(title, subTitle, fadeIn, stay, fadeOut);
// pWorld.getPlayer().sendTitle(title, subTitle);
}
// if (getPl().getText().getSoundsEnabled()) {
// Sound sound = getPl().getText().getSoundsDelay();
// if (sound != null)
// pWorld.getPlayer().playSound(pWorld.getPlayer().getLocation(), sound, 1F, 1F);
// }
// if (getPl().getText().getTitleEnabled()) {
// String title = getPl().getText().getTitleDelay(pWorld.getPlayer().getName(), String.valueOf(delay));
// String subTitle = getPl().getText().getSubTitleDelay(pWorld.getPlayer().getName(), String.valueOf(delay));
// pWorld.getPlayer().sendTitle(title, subTitle);
// // int fadeIn = text.getFadeIn();
// // int stay = text.getStay();
// // int fadeOut = text.getFadeOut();
// // player.sendTitle(title, subTitle, fadeIn, stay, fadeOut);
// // pWorld.getPlayer().sendTitle(title, subTitle);
// }
getPl().getRTP().getTeleport().beforeTeleport(pWorld.getPlayer());
run = Bukkit.getScheduler().scheduleSyncDelayedTask(pl, run(sendi, this), delay * 2 * 10);
//Bukkit.getScheduler().scheduleSyncRepeatingTask(pl, run(sendi, this), 0, 10);
if (cancelOnMove || cancelOnDamage)

View File

@ -10,7 +10,7 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
public class RTPEffects {
public class RTPPotions {
private boolean potionEnabled;
private final HashMap<PotionEffectType, Integer> potionEffects = new HashMap<>();

View File

@ -0,0 +1,46 @@
package me.SuperRonanCraft.BetterRTP.player.rtp;
import me.SuperRonanCraft.BetterRTP.Main;
import me.SuperRonanCraft.BetterRTP.references.file.FileBasics;
import org.bukkit.Bukkit;
import org.bukkit.Sound;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.entity.Player;
public class RTPSounds {
private boolean enabled;
private Sound
soundTeleport,
soundDelay;
void load() {
FileBasics.FILETYPE config = FileBasics.FILETYPE.EFFECTS;
enabled = config.getBoolean("Sounds.Enabled");
if (enabled) {
soundTeleport = getSound(config.getString("Sounds.Success"));
soundDelay = getSound(config.getString("Sounds.Delay"));
}
}
void playTeleport(Player p) {
if (!enabled) return;
if (soundTeleport != null)
p.playSound(p.getLocation(), soundTeleport, 1F, 1F);
}
void playDelay(Player p) {
if (!enabled) return;
if (soundDelay != null)
p.playSound(p.getLocation(), soundDelay, 1F, 1F);
}
private Sound getSound(String sound) {
try {
return Sound.valueOf(sound.toUpperCase());
} catch (IllegalArgumentException e) {
Main.getInstance().getLogger().info("The sound '" + sound + "' is invalid!");
return null;
}
}
}

View File

@ -7,80 +7,70 @@ import org.bukkit.Location;
import org.bukkit.Sound;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.potion.PotionEffect;
import org.bukkit.potion.PotionEffectType;
import org.bukkit.scheduler.BukkitRunnable;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.concurrent.CompletableFuture;
public class RTPTeleport {
private final RTPParticles particles = new RTPParticles();
private final RTPEffects effects = new RTPEffects();
private final RTPParticles eParticles = new RTPParticles();
private final RTPPotions ePotions = new RTPPotions();
private final RTPSounds eSounds = new RTPSounds();
private final RTPTitles eTitles = new RTPTitles();
void load() {
particles.load();
effects.load();
eParticles.load();
ePotions.load();
eSounds.load();
eTitles.load();
}
void sendPlayer(final CommandSender sendi, final Player p, final Location loc, final int price,
final int attempts) throws NullPointerException {
if (sendi != p) //Tell sendi that the player will/is being rtp'd
checkPH(sendi, p.getDisplayName(), loc, price, false, attempts);
getPl().getText().getSuccessLoading(sendi); //Send loading message
loadChunks(loc); //Load chunks before teleporting
new BukkitRunnable(){
@Override
public void run() {
if (sendi != p)
checkPH(sendi, p.getDisplayName(), loc, price, false, attempts);
if (getPl().getText().getTitleSuccessChat())
checkPH(p, p.getDisplayName(), loc, price, true, attempts);
if (getPl().getText().getTitleEnabled())
titles(p, loc, attempts);
try {
//p.teleport(loc);
PaperLib.teleportAsync(p, loc).thenRun(new BukkitRunnable() { //Async teleport
@Override
public void run() {
afterTeleport(p);
}
});
} catch (Exception e) {
e.printStackTrace();
}
getPl().getCmd().rtping.put(p.getUniqueId(), false); //Dont let them rtp again until current is done!
}
}.runTask(getPl());
List<CompletableFuture<Chunk>> asyncChunks = getChunks(loc); //Get a list of chunks
CompletableFuture.allOf(asyncChunks.toArray(new CompletableFuture[] {})).thenRun(() -> { //Async chunk load
try {
PaperLib.teleportAsync(p, loc).thenRun(new BukkitRunnable() { //Async teleport
@Override
public void run() {
afterTeleport(p, loc, price, attempts);
getPl().getCmd().rtping.remove(p.getUniqueId()); //No longer rtp'ing
}
});
} catch (Exception e) {
getPl().getCmd().rtping.remove(p.getUniqueId()); //No longer rtp'ing (errored)
e.printStackTrace();
}
});
}
public void afterTeleport(Player p) {
if (getPl().getText().getSoundsEnabled())
sounds(p);
particles.display(p);
effects.giveEffects(p);
public void afterTeleport(Player p, Location loc, int price, int attempts) {
eSounds.playTeleport(p);
eParticles.display(p);
ePotions.giveEffects(p);
eTitles.show(p);
}
private void loadChunks(Location loc) { //Async chunk loading
public void beforeTeleport(Player p) {
eSounds.playDelay(p);
}
private List<CompletableFuture<Chunk>> getChunks(Location loc) { //List all chunks in range to load
List<CompletableFuture<Chunk>> asyncChunks = new ArrayList<>();
for (int x = -5; x <= 5; x++) {
for (int z = -5; z <= 5; z++) {
Location locLoad = new Location(loc.getWorld(), loc.getX() + (x * 16), loc.getY(), loc.getZ() + (x * 16));
int range = 5;
for (int x = -range; x <= range; x++) {
for (int z = -range; z <= range; z++) {
Location locLoad = new Location(loc.getWorld(), loc.getX() + (x * 16), loc.getY(), loc.getZ() + (z * 16));
CompletableFuture<Chunk> chunk = PaperLib.getChunkAtAsync(locLoad, true);
asyncChunks.add(chunk);
}
}
boolean loaded = false;
while (!loaded)
loaded = checkLoaded(asyncChunks);
}
private boolean checkLoaded(List<CompletableFuture<Chunk>> asyncChunks) {
for (CompletableFuture<Chunk> chunk : asyncChunks)
if (!chunk.isDone())
return false;
return true;
return asyncChunks;
}
private void checkPH(CommandSender sendi, String player, Location loc, int price, boolean sameAsPlayer,
@ -113,12 +103,6 @@ public class RTPTeleport {
p.sendTitle(title, subTitle);
}
private void sounds(Player p) {
Sound sound = getPl().getText().getSoundsSuccess();
if (sound != null)
p.playSound(p.getLocation(), sound, 1F, 1F);
}
private Main getPl() {
return Main.getInstance();
}

View File

@ -0,0 +1,17 @@
package me.SuperRonanCraft.BetterRTP.player.rtp;
import org.bukkit.entity.Player;
public class RTPTitles {
void load() {
if (getPl().getText().getTitleSuccessChat())
checkPH(p, p.getDisplayName(), loc, price, true, attempts);
if (getPl().getText().getTitleEnabled())
titles(p, loc, attempts);
}
void show(Player p) {
}
}

View File

@ -24,7 +24,7 @@ public class FileBasics {
}
public enum FILETYPE {
CONFIG("config"), ECO("economy"), SIGNS("signs");
CONFIG("config"), ECO("economy"), SIGNS("signs"), EFFECTS("effects");
private String fileName;
private YamlConfiguration config = new YamlConfiguration();

View File

@ -123,39 +123,6 @@ public class Messages {
return color(getPrefix() + str);
}
// Titles
public String getTitleSuccess(String player, String x, String y, String z, int attempts) {
return color(getLang().getString(preT + "Success.Title").replaceAll("%player%", player).replaceAll("%x%", x)
.replaceAll("%y%", y).replaceAll("%z%", z).replaceAll("%attempts%", Integer.toString(attempts)));
}
public String getSubTitleSuccess(String player, String x, String y, String z, int attempts) {
return color(getLang().getString(preT + "Success.Subtitle").replaceAll("%player%", player).replaceAll("%x%",
x).replaceAll("%y%", y).replaceAll("%z%", z).replaceAll("%attempts%", Integer.toString(attempts)));
}
public boolean getTitleSuccessChat() {
return getLang().getBoolean(preT + "Success.SendChatMessage");
}
public boolean getTitleDelayChat() {
return getLang().getBoolean(preT + "Delay.SendChatMessage");
}
public String getTitleDelay(String player, String time) {
return color(getLang().getString(preT + "Delay.Title").replaceAll("%player%", player).replaceAll("%time%",
time));
}
public String getSubTitleDelay(String player, String time) {
return color(getLang().getString(preT + "Delay.Subtitle").replaceAll("%player%", player).replaceAll("%time%",
time));
}
public boolean getTitleEnabled() {
return getLang().getBoolean(preT + "Enabled");
}
//Help
public void getHelpList(CommandSender sendi, String cmd) {
for (String s : getLang().getStringList(preH + "List"))
@ -196,31 +163,6 @@ public class Messages {
* getLang().getInt("Titles.Time.FadeOut"); }
*/
// Sounds
public boolean getSoundsEnabled() {
return getLang().getBoolean("Sounds.Enabled");
}
public Sound getSoundsSuccess() {
try {
return Sound.valueOf(getLang().getString("Sounds.Success").toUpperCase());
} catch (IllegalArgumentException e) {
Bukkit.getServer().getConsoleSender().sendMessage(colorPre("The sound " + getLang().getString("Sounds" +
"" + ".Success") + " is invalid!"));
}
return null;
}
public Sound getSoundsDelay() {
try {
return Sound.valueOf(getLang().getString("Sounds.Delay").toUpperCase());
} catch (IllegalArgumentException e) {
Bukkit.getServer().getConsoleSender().sendMessage(colorPre("The sound " + getLang().getString("Sounds" +
"" + ".Delay") + " is invalid!"));
}
return null;
}
// Not Found
public void error(CommandSender sendi) {
sms(sendi, "&cERROR &7Seems like your Administrator did not update their language file!");

View File

@ -28,20 +28,6 @@ Settings:
Enabled: true
Time: 5
CancelOnMove: true
Particles:
Enabled: true
Type: 'REVERSE_PORTAL' #list of particle types at https://github.com/ByteZ1337/ParticleLib/blob/master/src/main/java/xyz/xenondevs/particle/ParticleEffect.java
Amount: 180
Shape: 'SCAN' #Types available are "Scan, Teleport and Explosive"
Effects:
Invincible: #Amount of time a player should not take damage for
Enabled: true
Seconds: 5
Potions:
Enabled: true
Types:
- 'Blindness:60'
- 'Invisibility:60'
DisableUpdater: false
Default:

View File

@ -0,0 +1,32 @@
Sounds:
Enabled: true
## More sounds at https://www.spigotmc.org/wiki/cc-sounds-list/
Delay: 'entity_tnt_primed'
Success: 'entity_generic_explode'
Titles:
Enabled: true
Delay:
## Setting to also send the chat message, ignores the Enabled setting
SendChatMessage: true
## Both support %player% placeholders
Title: ' '
Subtitle: '&fTeleporting in %time% seconds...'
Success:
## Setting to also send the chat message, ignores the Enabled setting
SendChatMessage: true
## Both support %player% %x% %y% and %z% placeholders
Title: '&6Teleported!'
Subtitle: '&fx=%x% y=%y% z=%z% in %attempts% attempts'
Particles:
Enabled: true
Type: 'REVERSE_PORTAL' #list of particle types at https://github.com/ByteZ1337/ParticleLib/blob/master/src/main/java/xyz/xenondevs/particle/ParticleEffect.java
Amount: 180
Shape: 'SCAN' #Types available are "Scan, Teleport and Explode"
Invincible: #Amount of time a player should not take damage for
Enabled: true
Seconds: 5
Potions:
Enabled: true
Types:
- 'Blindness:60'
- 'Invisibility:60'

View File

@ -26,21 +26,21 @@ Messages:
NotExist: '&c看上去&7%world%&c世界并不存在'
Already: '&c啊嘞嘞&7看上去你已经在随机传送中了请耐心点'
Sign: '&7命令标记已被创建&7命令为''&f/rtp %command%&7'''
Titles:
Enabled: true
Delay:
## Setting to also send the chat message, ignores the Enabled setting
SendChatMessage: true
## Both support %player% placeholders
Title: '&6BetterRTP by SRC'
Subtitle: '&f将在%time%秒后传送!'
Success:
## Setting to also send the chat message, ignores the Enabled setting
SendChatMessage: true
## Both support %player% %x% %y% and %z% placeholders
Title: '&6BetterRTP by SRC &7(%attempts%)'
Subtitle: '&f你已被传送到x=%x% y=%y% z=%z%'
#
#Titles:
# Enabled: true
# Delay:
# ## Setting to also send the chat message, ignores the Enabled setting
# SendChatMessage: true
# ## Both support %player% placeholders
# Title: '&6BetterRTP by SRC'
# Subtitle: '&f将在%time%秒后传送!'
# Success:
# ## Setting to also send the chat message, ignores the Enabled setting
# SendChatMessage: true
# ## Both support %player% %x% %y% and %z% placeholders
# Title: '&6BetterRTP by SRC &7(%attempts%)'
# Subtitle: '&f你已被传送到x=%x% y=%y% z=%z%'
Help:
List:
@ -57,10 +57,4 @@ Help:
Usage:
Player: '&cUsage&7: /%command% player <玩家> [世界] [生物群系1, 生物群系2]'
World: '&cUsage&7: /%command% world <世界> [生物群系1, 生物群系2...]'
Biome: '&cUsage&7: /%command% biome <生物群系1, 生物群系2...>'
Sounds:
Enabled: true
## More sounds at https://www.spigotmc.org/wiki/cc-sounds-list/
Delay: 'entity_tnt_primed'
Success: 'entity_generic_explode'
Biome: '&cUsage&7: /%command% biome <生物群系1, 生物群系2...>'

View File

@ -27,20 +27,20 @@ Messages:
Already: '&c哎呦&7看上去您已經在傳送中了耐心一點點'
Sign: '&7指令標記已創建&7指令為''&f/rtp %command%&7'''
Titles:
Enabled: true
Delay:
## 設定是否同時發送訊息到聊天室這個選項會無視上方的Enabled
SendChatMessage: true
## 支援 %player% placeholders
Title: '&6BetterRTP by SRC'
Subtitle: '&f將在%time%秒後傳送!'
Success:
## 設定是否同時發送訊息到聊天室這個選項會無視上方的Enabled
SendChatMessage: true
## 支援 %player% %x% %y% 和 %z% placeholders
Title: '&6BetterRTP by SRC &7(%attempts%)'
Subtitle: '&f您已被傳送至x=%x% y=%y% z=%z%'
#Titles:
# Enabled: true
# Delay:
# ## 設定是否同時發送訊息到聊天室這個選項會無視上方的Enabled
# SendChatMessage: true
# ## 支援 %player% placeholders
# Title: '&6BetterRTP by SRC'
# Subtitle: '&f將在%time%秒後傳送!'
# Success:
# ## 設定是否同時發送訊息到聊天室這個選項會無視上方的Enabled
# SendChatMessage: true
# ## 支援 %player% %x% %y% 和 %z% placeholders
# Title: '&6BetterRTP by SRC &7(%attempts%)'
# Subtitle: '&f您已被傳送至x=%x% y=%y% z=%z%'
Help:
List:
@ -58,9 +58,3 @@ Usage:
Player: '&cUsage&7: /%command% player <玩家> [世界] [生態域1, 生態域2]'
World: '&cUsage&7: /%command% world <世界> [生態域1, 生態域2...]'
Biome: '&cUsage&7: /%command% biome <生態域1, 生態域2...>'
Sounds:
Enabled: true
## 更多音效名稱在這 --> https://www.spigotmc.org/wiki/cc-sounds-list/
Delay: 'entity_tnt_primed'
Success: 'entity_generic_explode'

View File

@ -27,20 +27,20 @@ Messages:
Already: '&cWhoops! &7Looks like you are already rtp''ing, have some patience!'
Sign: '&7Command sign has been created! &7Command is... ''&f/rtp %command%&7'''
Titles:
Enabled: true
Delay:
## Setting to also send the chat message, ignores the Enabled setting
SendChatMessage: true
## Both support %player% placeholders
Title: '&6BetterRTP by SRC'
Subtitle: '&fTeleporting in %time% seconds!'
Success:
## Setting to also send the chat message, ignores the Enabled setting
SendChatMessage: true
## Both support %player% %x% %y% and %z% placeholders
Title: '&6BetterRTP by SRC &7(%attempts%)'
Subtitle: '&fTeleporting to x=%x% y=%y% z=%z%'
#Titles:
# Enabled: true
# Delay:
# ## Setting to also send the chat message, ignores the Enabled setting
# SendChatMessage: true
# ## Both support %player% placeholders
# Title: '&6BetterRTP by SRC'
# Subtitle: '&fTeleporting in %time% seconds!'
# Success:
# ## Setting to also send the chat message, ignores the Enabled setting
# SendChatMessage: true
# ## Both support %player% %x% %y% and %z% placeholders
# Title: '&6BetterRTP by SRC &7(%attempts%)'
# Subtitle: '&fTeleporting to x=%x% y=%y% z=%z%'
Help:
List:
@ -57,10 +57,4 @@ Help:
Usage:
Player: '&cUsage&7: /%command% player <player> [world] [biome1, biome2]'
World: '&cUsage&7: /%command% world <world> [biome1, biome2...]'
Biome: '&cUsage&7: /%command% biome <biome1, biome2...>'
Sounds:
Enabled: true
## More sounds at https://www.spigotmc.org/wiki/cc-sounds-list/
Delay: 'entity_tnt_primed'
Success: 'entity_generic_explode'
Biome: '&cUsage&7: /%command% biome <biome1, biome2...>'

View File

@ -27,20 +27,20 @@ Messages:
Already: '&cOups! &7Il semblerait que tu essaie déjà de te téléporter...Patiente un peu!'
Sign: '&7Command sign has been created! &7Command is... ''&f/rtp %command%&7'''
Titles:
Enabled: true
Delay:
## Paramètre pour aussi envoyer le message dans le chat, ignore le "Enabled" Paramètre #
SendChatMessage: true
## Soutien le %player% "placeholders" #
Title: '&6BetterRTP par SRC'
Subtitle: '&fTéléportation dans %time% secondes!'
Success:
## Paramètre pour aussi envoyer le message dans le chat, ignore le "Enabled" Paramètre #
SendChatMessage: true
## Soutien le %player% %x% %y% et %z% "placeholders" #
Title: '&6BetterRTP par SRC &7(%attempts%)'
Subtitle: '&fTéléportation vers x=%x% y=%y% z=%z%'
#Titles:
# Enabled: true
# Delay:
# ## Paramètre pour aussi envoyer le message dans le chat, ignore le "Enabled" Paramètre #
# SendChatMessage: true
# ## Soutien le %player% "placeholders" #
# Title: '&6BetterRTP par SRC'
# Subtitle: '&fTéléportation dans %time% secondes!'
# Success:
# ## Paramètre pour aussi envoyer le message dans le chat, ignore le "Enabled" Paramètre #
# SendChatMessage: true
# ## Soutien le %player% %x% %y% et %z% "placeholders" #
# Title: '&6BetterRTP par SRC &7(%attempts%)'
# Subtitle: '&fTéléportation vers x=%x% y=%y% z=%z%'
Help:
List:
@ -56,11 +56,4 @@ Help:
Usage:
Player: '&cUtilisation&7: /%command% player <joeur> [monde]'
World: '&cUtilisation&7: /%command% world <monde>'
Biome: '&cUtilisation&7: /%command% biome <biome1, biome2...>'
Sounds:
Enabled: true
## Plus de sons à https://www.spigotmc.org/wiki/cc-sounds-list/ ## Son à jouer lors de la téléportation avec délai ##
Delay: 'entity_tnt_primed'
##Son à jouer lorsque la téléportation à réussie ##
Success: 'entity_generic_explode'
Biome: '&cUtilisation&7: /%command% biome <biome1, biome2...>'

View File

@ -27,20 +27,20 @@ Messages:
Already: '&cおっと &7あなたはすでにRTPしているように見えます。'
Sign: '&7Command sign has been created! &7Command is... ''&f/rtp %command%&7'''
Titles:
Enabled: true
Delay:
##
SendChatMessage: true
##
Title: '&6BetterRTP by SRC'
Subtitle: '&f%time%秒でテレポート!'
Success:
##
SendChatMessage: true
##
Title: '&6BetterRTP by SRC &7(%attempts%)'
Subtitle: '&fx=%x% y=%y% z=%z% にテレポート'
#Titles:
# Enabled: true
# Delay:
# ##
# SendChatMessage: true
# ##
# Title: '&6BetterRTP by SRC'
# Subtitle: '&f%time%秒でテレポート!'
# Success:
# ##
# SendChatMessage: true
# ##
# Title: '&6BetterRTP by SRC &7(%attempts%)'
# Subtitle: '&fx=%x% y=%y% z=%z% にテレポート'
Help:
List:
@ -57,10 +57,4 @@ Help:
Usage:
Player: '&c使い方&7: /%command% player <プレイヤー> [ワールド]'
World: '&c使い方&7: /%command% world <ワールド>'
Biome: '&cUsage&7: /%command% biome <biome1, biome2...>'
Sounds:
Enabled: true
## More sounds at https://www.spigotmc.org/wiki/cc-sounds-list/
Delay: 'entity_tnt_primed'
Success: 'entity_generic_explode'
Biome: '&cUsage&7: /%command% biome <biome1, biome2...>'

View File

@ -27,20 +27,20 @@ Messages:
Already: '&cУуупс! &7Похоже вы уже телепортируетесь. Имейте терпение!'
Sign: '&7Command sign has been created! &7Command is... ''&f/rtp %command%&7'''
Titles:
Enabled: true
Delay:
## Setting to also send the chat message, ignores the Enabled setting
SendChatMessage: true
## Both support %player% placeholders
Title: '&6BetterRTP от SRC'
Subtitle: '&fТелепортация через %time% сек.!'
Success:
## Setting to also send the chat message, ignores the Enabled setting
SendChatMessage: true
## Both support %player% %x% %y% and %z% placeholders
Title: '&6BetterRTP от SRC &7(%attempts%)'
Subtitle: '&fТелепортация к x=%x% y=%y% z=%z%'
#Titles:
# Enabled: true
# Delay:
# ## Setting to also send the chat message, ignores the Enabled setting
# SendChatMessage: true
# ## Both support %player% placeholders
# Title: '&6BetterRTP от SRC'
# Subtitle: '&fТелепортация через %time% сек.!'
# Success:
# ## Setting to also send the chat message, ignores the Enabled setting
# SendChatMessage: true
# ## Both support %player% %x% %y% and %z% placeholders
# Title: '&6BetterRTP от SRC &7(%attempts%)'
# Subtitle: '&fТелепортация к x=%x% y=%y% z=%z%'
Help:
List:
@ -57,10 +57,4 @@ Help:
Usage:
Player: '&cИспользование&7: /%command% player <игрок> [мир]'
World: '&cИспользование&7: /%command% world <мир>'
Biome: '&cUsage&7: /%command% biome <biome1, biome2...>'
Sounds:
Enabled: true
## More sounds at https://www.spigotmc.org/wiki/cc-sounds-list/
Delay: 'entity_tnt_primed'
Success: 'entity_generic_explode'
Biome: '&cUsage&7: /%command% biome <biome1, biome2...>'