mirror of
https://github.com/RonanPlugins/BetterRTP.git
synced 2025-08-17 17:15:47 +00:00
economy bug fix involving delays
This commit is contained in:
parent
5f43ba5590
commit
7b2871f17d
@ -40,7 +40,7 @@ public class CmdPlayer implements RTPCommand, RTPCommandHelpable {
|
|||||||
if (args.length == 2) {
|
if (args.length == 2) {
|
||||||
for (Player p : Bukkit.getOnlinePlayers())
|
for (Player p : Bukkit.getOnlinePlayers())
|
||||||
if (p.getDisplayName().toLowerCase().startsWith(args[1].toLowerCase()))
|
if (p.getDisplayName().toLowerCase().startsWith(args[1].toLowerCase()))
|
||||||
list.add(p.getDisplayName());
|
list.add(p.getName());
|
||||||
} else if (args.length == 3) {
|
} else if (args.length == 3) {
|
||||||
for (World w : Bukkit.getWorlds())
|
for (World w : Bukkit.getWorlds())
|
||||||
if (w.getName().startsWith(args[2]) && !Main.getInstance().getRTP().disabledWorlds().contains(w.getName()))
|
if (w.getName().startsWith(args[2]) && !Main.getInstance().getRTP().disabledWorlds().contains(w.getName()))
|
||||||
|
@ -137,6 +137,45 @@ public class RTP {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void start(Player p, CommandSender sendi, String world_name, List<String> biomes, boolean delay) {
|
public void start(Player p, CommandSender sendi, String world_name, List<String> biomes, boolean delay) {
|
||||||
new RTPPlayer(p, this).teleport(sendi, world_name, biomes, delay);
|
// Check overrides
|
||||||
|
if (world_name == null)
|
||||||
|
world_name = p.getWorld().getName();
|
||||||
|
if (overriden.containsKey(world_name))
|
||||||
|
world_name = overriden.get(world_name);
|
||||||
|
// Not forced and has 'betterrtp.world.<world>'
|
||||||
|
if (sendi == p && !getPl().getPerms().getAWorld(sendi, world_name)) {
|
||||||
|
//getPl().getCmd().cooldowns.remove(p.getUniqueId());
|
||||||
|
getPl().getText().getNoPermissionWorld(p, world_name);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
// Check disabled worlds
|
||||||
|
if (disabledWorlds.contains(world_name)) {
|
||||||
|
getPl().getText().getDisabledWorld(sendi, world_name);
|
||||||
|
//getPl().getCmd().cooldowns.remove(p.getUniqueId());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
// Check if nulled or world doesnt exist
|
||||||
|
if (Bukkit.getWorld(world_name) == null) {
|
||||||
|
getPl().getText().getNotExist(sendi, world_name);
|
||||||
|
//getPl().getCmd().cooldowns.remove(p.getUniqueId());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
WorldPlayer pWorld = getPlayerWorld(p, world_name, biomes, true);
|
||||||
|
// Economy
|
||||||
|
if (!getPl().getEco().charge(sendi, pWorld)) {
|
||||||
|
//getPl().getCmd().cooldowns.remove(p.getUniqueId());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
//Cooldown
|
||||||
|
getPl().getCmd().cooldowns.add(p.getUniqueId());
|
||||||
|
// Delaying? Else, just go
|
||||||
|
getPl().getCmd().rtping.put(p.getUniqueId(), true); //Cache player so they cant run '/rtp' again while rtp'ing
|
||||||
|
RTPPlayer rtp = new RTPPlayer(p, this, pWorld);
|
||||||
|
if (getPl().getSettings().delayEnabled && delay) {
|
||||||
|
new RTPDelay(sendi, rtp, delayTime, cancelOnMove, cancelOnDamage);
|
||||||
|
} else {
|
||||||
|
teleport.beforeTeleportInstant(sendi, p);
|
||||||
|
rtp.randomlyTeleport(sendi);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -13,12 +13,10 @@ import org.bukkit.event.player.PlayerMoveEvent;
|
|||||||
|
|
||||||
class RTPDelay implements Listener {
|
class RTPDelay implements Listener {
|
||||||
private int run;
|
private int run;
|
||||||
private final WorldPlayer pWorld;
|
|
||||||
private final boolean cancelOnMove, cancelOnDamage;
|
private final boolean cancelOnMove, cancelOnDamage;
|
||||||
private final RTPPlayer rtp;
|
private final RTPPlayer rtp;
|
||||||
|
|
||||||
RTPDelay(CommandSender sendi, RTPPlayer rtp, WorldPlayer pWorld, int delay, boolean cancelOnMove, boolean cancelOnDamage) {
|
RTPDelay(CommandSender sendi, RTPPlayer rtp, int delay, boolean cancelOnMove, boolean cancelOnDamage) {
|
||||||
this.pWorld = pWorld;
|
|
||||||
this.cancelOnMove = cancelOnMove;
|
this.cancelOnMove = cancelOnMove;
|
||||||
this.cancelOnDamage = cancelOnDamage;
|
this.cancelOnDamage = cancelOnDamage;
|
||||||
this.rtp = rtp;
|
this.rtp = rtp;
|
||||||
@ -26,7 +24,7 @@ class RTPDelay implements Listener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void delay(CommandSender sendi, int delay) {
|
private void delay(CommandSender sendi, int delay) {
|
||||||
getPl().getRTP().getTeleport().beforeTeleportDelay(pWorld.getPlayer(), delay);
|
getPl().getRTP().getTeleport().beforeTeleportDelay(rtp.getPlayer(), delay);
|
||||||
run = Bukkit.getScheduler().scheduleSyncDelayedTask(Main.getInstance(), run(sendi, this), delay * 20);
|
run = Bukkit.getScheduler().scheduleSyncDelayedTask(Main.getInstance(), run(sendi, this), delay * 20);
|
||||||
if (cancelOnMove || cancelOnDamage)
|
if (cancelOnMove || cancelOnDamage)
|
||||||
Bukkit.getPluginManager().registerEvents(this, Main.getInstance());
|
Bukkit.getPluginManager().registerEvents(this, Main.getInstance());
|
||||||
@ -36,7 +34,7 @@ class RTPDelay implements Listener {
|
|||||||
@SuppressWarnings("unused")
|
@SuppressWarnings("unused")
|
||||||
private void event(PlayerMoveEvent e) {
|
private void event(PlayerMoveEvent e) {
|
||||||
if (cancelOnMove)
|
if (cancelOnMove)
|
||||||
if (e.getPlayer().equals(pWorld.getPlayer()) &&
|
if (e.getPlayer().equals(rtp.getPlayer()) &&
|
||||||
(e.getTo() != null &&
|
(e.getTo() != null &&
|
||||||
(e.getTo().getBlockX() != e.getFrom().getBlockX() ||
|
(e.getTo().getBlockX() != e.getFrom().getBlockX() ||
|
||||||
e.getTo().getBlockY() != e.getFrom().getBlockY() ||
|
e.getTo().getBlockY() != e.getFrom().getBlockY() ||
|
||||||
@ -51,7 +49,7 @@ class RTPDelay implements Listener {
|
|||||||
private void event(EntityDamageEvent e) {
|
private void event(EntityDamageEvent e) {
|
||||||
if (cancelOnDamage)
|
if (cancelOnDamage)
|
||||||
if (e.getEntity() instanceof Player){
|
if (e.getEntity() instanceof Player){
|
||||||
if (e.getEntity().equals(pWorld.getPlayer()))
|
if (e.getEntity().equals(rtp.getPlayer()))
|
||||||
cancel();
|
cancel();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -60,18 +58,18 @@ class RTPDelay implements Listener {
|
|||||||
Bukkit.getScheduler().cancelTask(run);
|
Bukkit.getScheduler().cancelTask(run);
|
||||||
if (!Bukkit.getScheduler().isCurrentlyRunning(run)) {
|
if (!Bukkit.getScheduler().isCurrentlyRunning(run)) {
|
||||||
HandlerList.unregisterAll(this);
|
HandlerList.unregisterAll(this);
|
||||||
getPl().getRTP().getTeleport().cancelledTeleport(pWorld.getPlayer());
|
getPl().getRTP().getTeleport().cancelledTeleport(rtp.getPlayer());
|
||||||
getPl().getEco().unCharge(pWorld.getPlayer(), pWorld.getPrice());
|
getPl().getEco().unCharge(rtp.getPlayer(), rtp.pWorld);
|
||||||
getPl().getCmd().cooldowns.remove(pWorld.getPlayer().getUniqueId());
|
getPl().getCmd().cooldowns.remove(rtp.getPlayer().getUniqueId());
|
||||||
getPl().getCmd().rtping.put(pWorld.getPlayer().getUniqueId(), false);
|
getPl().getCmd().rtping.put(rtp.getPlayer().getUniqueId(), false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private Runnable run(final CommandSender sendi, final RTPDelay cls) {
|
private Runnable run(final CommandSender sendi, final RTPDelay cls) {
|
||||||
return () -> {
|
return () -> {
|
||||||
HandlerList.unregisterAll(cls);
|
HandlerList.unregisterAll(cls);
|
||||||
if (getPl().getCmd().rtping.containsKey(pWorld.getPlayer().getUniqueId()))
|
if (getPl().getCmd().rtping.containsKey(rtp.getPlayer().getUniqueId()))
|
||||||
rtp.findSafeLocation(sendi, pWorld);
|
rtp.randomlyTeleport(sendi);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3,7 +3,6 @@ package me.SuperRonanCraft.BetterRTP.player.rtp;
|
|||||||
import io.papermc.lib.PaperLib;
|
import io.papermc.lib.PaperLib;
|
||||||
import me.SuperRonanCraft.BetterRTP.Main;
|
import me.SuperRonanCraft.BetterRTP.Main;
|
||||||
import me.SuperRonanCraft.BetterRTP.references.worlds.*;
|
import me.SuperRonanCraft.BetterRTP.references.worlds.*;
|
||||||
import org.bukkit.Bukkit;
|
|
||||||
import org.bukkit.Chunk;
|
import org.bukkit.Chunk;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
@ -18,64 +17,28 @@ public class RTPPlayer {
|
|||||||
|
|
||||||
private final Player p;
|
private final Player p;
|
||||||
private final RTP settings;
|
private final RTP settings;
|
||||||
|
WorldPlayer pWorld;
|
||||||
|
|
||||||
RTPPlayer(Player p, RTP settings) {
|
RTPPlayer(Player p, RTP settings, WorldPlayer pWorld) {
|
||||||
this.p = p;
|
this.p = p;
|
||||||
this.settings = settings;
|
this.settings = settings;
|
||||||
|
this.pWorld = pWorld;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void teleport(CommandSender sendi, String worldName, List<String> biomes, boolean delay) {
|
public Player getPlayer() {
|
||||||
// Check overrides
|
return p;
|
||||||
if (worldName == null)
|
|
||||||
worldName = p.getWorld().getName();
|
|
||||||
if (settings.overriden.containsKey(worldName))
|
|
||||||
worldName = settings.overriden.get(worldName);
|
|
||||||
// Not forced and has 'betterrtp.world.<world>'
|
|
||||||
if (sendi == p && !getPl().getPerms().getAWorld(sendi, worldName)) {
|
|
||||||
//getPl().getCmd().cooldowns.remove(p.getUniqueId());
|
|
||||||
getPl().getText().getNoPermissionWorld(p, worldName);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
// Check disabled worlds
|
|
||||||
if (settings.disabledWorlds.contains(worldName)) {
|
|
||||||
getPl().getText().getDisabledWorld(sendi, worldName);
|
|
||||||
//getPl().getCmd().cooldowns.remove(p.getUniqueId());
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
// Check if nulled or world doesnt exist
|
|
||||||
if (Bukkit.getWorld(worldName) == null) {
|
|
||||||
getPl().getText().getNotExist(sendi, worldName);
|
|
||||||
//getPl().getCmd().cooldowns.remove(p.getUniqueId());
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
WorldPlayer pWorld = settings.getPlayerWorld(p, worldName, biomes, true);
|
|
||||||
// Economy
|
|
||||||
if (!getPl().getEco().charge(p, pWorld.getPrice())) {
|
|
||||||
//getPl().getCmd().cooldowns.remove(p.getUniqueId());
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
//Cooldown
|
|
||||||
getPl().getCmd().cooldowns.add(p.getUniqueId());
|
|
||||||
// Delaying? Else, just go
|
|
||||||
getPl().getCmd().rtping.put(p.getUniqueId(), true); //Cache player so they cant run '/rtp' again while rtp'ing
|
|
||||||
if (getPl().getSettings().delayEnabled && delay) {
|
|
||||||
new RTPDelay(sendi, this, pWorld, settings.delayTime, settings.cancelOnMove, settings.cancelOnDamage);
|
|
||||||
} else {
|
|
||||||
settings.teleport.beforeTeleportInstant(p);
|
|
||||||
findSafeLocation(sendi, pWorld);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void findSafeLocation(CommandSender sendi, WorldPlayer pWorld) {
|
void randomlyTeleport(CommandSender sendi) {
|
||||||
if (pWorld.getAttempts() >= settings.maxAttempts) //Cancel out, too many tried
|
if (pWorld.getAttempts() >= settings.maxAttempts) //Cancel out, too many tried
|
||||||
metMax(sendi, pWorld.getPlayer(), pWorld.getPrice());
|
metMax(sendi, p);
|
||||||
else { //Try again to find a safe location
|
else { //Try again to find a safe location
|
||||||
Location loc = pWorld.generateRandomXZ(settings.defaultWorld); //randomLoc(pWorld);
|
Location loc = pWorld.generateRandomXZ(settings.defaultWorld); //randomLoc(pWorld);
|
||||||
CompletableFuture<Chunk> chunk = PaperLib.getChunkAtAsync(pWorld.getWorld(), loc.getBlockX(), loc.getBlockZ());
|
CompletableFuture<Chunk> chunk = PaperLib.getChunkAtAsync(pWorld.getWorld(), loc.getBlockX(), loc.getBlockZ());
|
||||||
chunk.thenAccept(result -> {
|
chunk.thenAccept(result -> {
|
||||||
Location tpLoc;
|
Location tpLoc;
|
||||||
float yaw = pWorld.getPlayer().getLocation().getYaw();
|
float yaw = p.getLocation().getYaw();
|
||||||
float pitch = pWorld.getPlayer().getLocation().getPitch();
|
float pitch = p.getLocation().getPitch();
|
||||||
switch (pWorld.getWorldtype()) { //Get a Y position and check for bad blocks
|
switch (pWorld.getWorldtype()) { //Get a Y position and check for bad blocks
|
||||||
case NETHER:
|
case NETHER:
|
||||||
tpLoc = getLocAtNether(loc.getBlockX(), loc.getBlockZ(), pWorld.getWorld(), yaw, pitch, pWorld); break;
|
tpLoc = getLocAtNether(loc.getBlockX(), loc.getBlockZ(), pWorld.getWorld(), yaw, pitch, pWorld); break;
|
||||||
@ -84,21 +47,21 @@ public class RTPPlayer {
|
|||||||
tpLoc = getLocAtNormal(loc.getBlockX(), loc.getBlockZ(), pWorld.getWorld(), yaw, pitch, pWorld);
|
tpLoc = getLocAtNormal(loc.getBlockX(), loc.getBlockZ(), pWorld.getWorld(), yaw, pitch, pWorld);
|
||||||
}
|
}
|
||||||
if (tpLoc != null && checkDepends(tpLoc))
|
if (tpLoc != null && checkDepends(tpLoc))
|
||||||
settings.teleport.sendPlayer(sendi, pWorld.getPlayer(), tpLoc, pWorld.getPrice(), pWorld.getAttempts());
|
settings.teleport.sendPlayer(sendi, p, tpLoc, pWorld.getPrice(), pWorld.getAttempts());
|
||||||
else
|
else
|
||||||
findSafeLocation(sendi, pWorld);
|
randomlyTeleport(sendi);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Compressed code for MaxAttempts being met
|
// Compressed code for MaxAttempts being met
|
||||||
private void metMax(CommandSender sendi, Player p, int price) {
|
private void metMax(CommandSender sendi, Player p) {
|
||||||
if (p == sendi)
|
if (p == sendi)
|
||||||
getPl().getText().getFailedNotSafe(sendi, settings.maxAttempts);
|
getPl().getText().getFailedNotSafe(sendi, settings.maxAttempts);
|
||||||
else
|
else
|
||||||
getPl().getText().getOtherNotSafe(sendi, settings.maxAttempts, p.getDisplayName());
|
getPl().getText().getOtherNotSafe(sendi, settings.maxAttempts, p.getName());
|
||||||
getPl().getCmd().cooldowns.remove(p.getUniqueId());
|
getPl().getCmd().cooldowns.remove(p.getUniqueId());
|
||||||
getPl().getEco().unCharge(p, price);
|
getPl().getEco().unCharge(p, pWorld);
|
||||||
getPl().getCmd().rtping.put(p.getUniqueId(), false);
|
getPl().getCmd().rtping.put(p.getUniqueId(), false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -57,7 +57,7 @@ public class RTPTeleport {
|
|||||||
public void run() {
|
public void run() {
|
||||||
afterTeleport(p, loc, price, attempts);
|
afterTeleport(p, loc, price, attempts);
|
||||||
if (sendi != p) //Tell player who requested that the player rtp'd
|
if (sendi != p) //Tell player who requested that the player rtp'd
|
||||||
sendSuccessMsg(sendi, p.getDisplayName(), loc, price, false, attempts);
|
sendSuccessMsg(sendi, p.getName(), loc, price, false, attempts);
|
||||||
getPl().getCmd().rtping.remove(p.getUniqueId()); //No longer rtp'ing
|
getPl().getCmd().rtping.remove(p.getUniqueId()); //No longer rtp'ing
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@ -76,14 +76,14 @@ public class RTPTeleport {
|
|||||||
ePotions.giveEffects(p);
|
ePotions.giveEffects(p);
|
||||||
eTitles.showTitle(RTPTitles.RTP_TITLE_TYPE.TELEPORT, p, loc, attempts, 0);
|
eTitles.showTitle(RTPTitles.RTP_TITLE_TYPE.TELEPORT, p, loc, attempts, 0);
|
||||||
if (eTitles.sendMsg(RTPTitles.RTP_TITLE_TYPE.TELEPORT))
|
if (eTitles.sendMsg(RTPTitles.RTP_TITLE_TYPE.TELEPORT))
|
||||||
sendSuccessMsg(p, p.getDisplayName(), loc, price, true, attempts);
|
sendSuccessMsg(p, p.getName(), loc, price, true, attempts);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void beforeTeleportInstant(Player p) {
|
public void beforeTeleportInstant(CommandSender sendi, Player p) {
|
||||||
eSounds.playDelay(p);
|
eSounds.playDelay(p);
|
||||||
eTitles.showTitle(RTPTitles.RTP_TITLE_TYPE.NODELAY, p, p.getLocation(), 0, 0);
|
eTitles.showTitle(RTPTitles.RTP_TITLE_TYPE.NODELAY, p, p.getLocation(), 0, 0);
|
||||||
if (eTitles.sendMsg(RTPTitles.RTP_TITLE_TYPE.NODELAY))
|
if (eTitles.sendMsg(RTPTitles.RTP_TITLE_TYPE.NODELAY))
|
||||||
getPl().getText().getSuccessTeleport(p);
|
getPl().getText().getSuccessTeleport(sendi);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void beforeTeleportDelay(Player p, int delay) { //Only Delays should call this
|
public void beforeTeleportDelay(Player p, int delay) { //Only Delays should call this
|
||||||
|
@ -2,9 +2,11 @@ package me.SuperRonanCraft.BetterRTP.references.depends;
|
|||||||
|
|
||||||
import me.SuperRonanCraft.BetterRTP.references.file.FileBasics;
|
import me.SuperRonanCraft.BetterRTP.references.file.FileBasics;
|
||||||
import me.SuperRonanCraft.BetterRTP.Main;
|
import me.SuperRonanCraft.BetterRTP.Main;
|
||||||
|
import me.SuperRonanCraft.BetterRTP.references.worlds.WorldPlayer;
|
||||||
import net.milkbowl.vault.economy.Economy;
|
import net.milkbowl.vault.economy.Economy;
|
||||||
import net.milkbowl.vault.economy.EconomyResponse;
|
import net.milkbowl.vault.economy.EconomyResponse;
|
||||||
import org.bukkit.GameMode;
|
import org.bukkit.GameMode;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.plugin.RegisteredServiceProvider;
|
import org.bukkit.plugin.RegisteredServiceProvider;
|
||||||
|
|
||||||
@ -13,14 +15,17 @@ public class DepEconomy {
|
|||||||
private int hunger = 0;
|
private int hunger = 0;
|
||||||
private boolean checked = false;
|
private boolean checked = false;
|
||||||
|
|
||||||
public boolean charge(Player player, int price) {
|
public boolean charge(CommandSender sendi, WorldPlayer pWorld) {
|
||||||
check(false);
|
check(false);
|
||||||
|
Player player = pWorld.getPlayer();
|
||||||
//Hunger Stuff
|
//Hunger Stuff
|
||||||
boolean took_food = false;
|
boolean took_food = false;
|
||||||
if (hunger != 0 && (player.getGameMode() == GameMode.SURVIVAL || player.getGameMode() == GameMode.ADVENTURE)) {
|
if (hunger != 0
|
||||||
|
&& sendi == player
|
||||||
|
&& (player.getGameMode() == GameMode.SURVIVAL || player.getGameMode() == GameMode.ADVENTURE)) {
|
||||||
boolean has_hunger = player.getFoodLevel() > hunger;
|
boolean has_hunger = player.getFoodLevel() > hunger;
|
||||||
if (!has_hunger) {
|
if (!has_hunger) {
|
||||||
Main.getInstance().getText().getFailedHunger(player);
|
Main.getInstance().getText().getFailedHunger(sendi);
|
||||||
return false;
|
return false;
|
||||||
} else {
|
} else {
|
||||||
player.setFoodLevel(player.getFoodLevel() - hunger);
|
player.setFoodLevel(player.getFoodLevel() - hunger);
|
||||||
@ -28,15 +33,16 @@ public class DepEconomy {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
//Economy Stuff
|
//Economy Stuff
|
||||||
if (e != null && price != 0 && !Main.getInstance().getPerms().getBypassEconomy(player)) {
|
if (e != null && pWorld.getPrice() != 0 && !Main.getInstance().getPerms().getBypassEconomy(sendi)) {
|
||||||
try {
|
try {
|
||||||
EconomyResponse r = e.withdrawPlayer(player, price);
|
EconomyResponse r = e.withdrawPlayer(player, pWorld.getPrice());
|
||||||
boolean passed_economy = r.transactionSuccess();
|
boolean passed_economy = r.transactionSuccess();
|
||||||
if (!passed_economy) {
|
if (!passed_economy) {
|
||||||
Main.getInstance().getText().getFailedPrice(player, price);
|
Main.getInstance().getText().getFailedPrice(sendi, pWorld.getPrice());
|
||||||
if (took_food)
|
if (took_food)
|
||||||
player.setFoodLevel(player.getFoodLevel() + hunger);
|
player.setFoodLevel(player.getFoodLevel() + hunger);
|
||||||
}
|
} else
|
||||||
|
pWorld.eco_money_taken = true;
|
||||||
return passed_economy;
|
return passed_economy;
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
@ -46,10 +52,9 @@ public class DepEconomy {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void unCharge(Player p, int price) {
|
public void unCharge(Player p, WorldPlayer pWorld) {
|
||||||
if (e != null)
|
if (e != null && pWorld.getPrice() != 0 && pWorld.eco_money_taken)
|
||||||
if (price != 0)
|
e.depositPlayer(p, pWorld.getPrice());
|
||||||
e.depositPlayer(p, price);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void load() {
|
public void load() {
|
||||||
|
@ -20,6 +20,8 @@ public class WorldPlayer implements RTPWorld {
|
|||||||
private final World world;
|
private final World world;
|
||||||
private WORLD_TYPE world_type;
|
private WORLD_TYPE world_type;
|
||||||
private RTPPermissionGroup.RTPPermConfiguration config = null;
|
private RTPPermissionGroup.RTPPermConfiguration config = null;
|
||||||
|
//Economy
|
||||||
|
public boolean eco_money_taken = false;
|
||||||
|
|
||||||
public WorldPlayer(CommandSender p, World world) {
|
public WorldPlayer(CommandSender p, World world) {
|
||||||
this.p = p;
|
this.p = p;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user