Cooldowns per world save + Player rtp usage saving

This commit is contained in:
RonanCraft
2022-04-04 17:45:07 -04:00
parent 098925d61a
commit ed4b0ea492
24 changed files with 328 additions and 115 deletions

View File

@@ -65,7 +65,7 @@ public class MagicStickEvents implements Listener {
if (listener.p == e.getPlayer())
return;
//Rtp the player
HelperRTP.tp(e.getPlayer(), e.getPlayer().getWorld().getName(), null, RTP_TYPE.ADDON_MAGICSTICK);
HelperRTP.tp(e.getPlayer(), e.getPlayer().getWorld(), null, RTP_TYPE.ADDON_MAGICSTICK);
if (this.take)
teleportingPlayers.add(new PlayerListener(e.getPlayer()));
}

View File

@@ -3,9 +3,12 @@ package me.SuperRonanCraft.BetterRTPAddons.addons.parties;
import io.papermc.lib.PaperLib;
import lombok.Getter;
import me.SuperRonanCraft.BetterRTP.BetterRTP;
import me.SuperRonanCraft.BetterRTP.references.PermissionNode;
import me.SuperRonanCraft.BetterRTP.references.Permissions;
import me.SuperRonanCraft.BetterRTP.references.customEvents.RTP_TeleportPostEvent;
import me.SuperRonanCraft.BetterRTP.references.rtpinfo.CooldownData;
import org.bukkit.Location;
import org.bukkit.World;
import org.bukkit.entity.Player;
import org.bukkit.event.player.PlayerTeleportEvent;
@@ -79,7 +82,7 @@ public class PartyData {
}
public void tpAll(RTP_TeleportPostEvent e) {
CooldownData cooldownData = BetterRTP.getInstance().getPlayerDataManager().getData(getLeader()).getCooldown();
//HashMap<World, CooldownData> cooldownData = BetterRTP.getInstance().getPlayerDataManager().getData(getLeader()).getCooldowns();
members.forEach((p, ready) -> {
if (!p.equals(getLeader())) {
Location loc = e.getLocation();
@@ -94,8 +97,9 @@ public class PartyData {
BetterRTP.getInstance().getRTP().getTeleport().afterTeleport(p, loc, 0, 0, e.getOldLocation(), e.getType());
});
//Set cooldowns
if (cooldownData != null)
BetterRTP.getInstance().getPlayerDataManager().getData(p).setCooldown(new CooldownData(p.getUniqueId(), cooldownData.getTime(), cooldownData.getUses()));
if (!PermissionNode.BYPASS_COOLDOWN.check(p))
BetterRTP.getInstance().getPlayerDataManager().getData(p).getCooldowns().put(loc.getWorld(),
new CooldownData(p.getUniqueId(), System.currentTimeMillis(), loc.getWorld()));
}
});
}

View File

@@ -9,6 +9,7 @@ import me.SuperRonanCraft.BetterRTPAddons.addons.portals.region.PortalsRegionInf
import me.SuperRonanCraft.BetterRTPAddons.util.Files;
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.World;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
@@ -58,8 +59,8 @@ public class PortalsEvents implements Listener {
if (ploc.getBlockY() <= Math.max(loc1.getBlockY(), loc2.getBlockY())
&& ploc.getBlockY() >= Math.min(loc1.getBlockY(), loc2.getBlockY())) {
playerPortaling.put(e.getPlayer(), portal);
HelperRTP.tp(e.getPlayer(), e.getPlayer(),
portal.getWorld(), null, RTP_TYPE.ADDON_PORTAL, ignoreCooldown, ignoreDelay);
World world = portal.getWorld() != null ? Bukkit.getWorld(portal.getWorld()) : null;
HelperRTP.tp(e.getPlayer(), e.getPlayer(), world, null, RTP_TYPE.ADDON_PORTAL, ignoreCooldown, ignoreDelay);
return;
}
}