mirror of
https://github.com/RonanPlugins/BetterRTP.git
synced 2025-08-17 09:05:47 +00:00
party accept/readyup + api RTP_EventSettingUp fix
This commit is contained in:
parent
22eff44288
commit
1ef7fe8959
@ -5,6 +5,7 @@ import me.SuperRonanCraft.BetterRTP.player.commands.RTPCommand;
|
||||
import me.SuperRonanCraft.BetterRTPAddons.Addon;
|
||||
import me.SuperRonanCraft.BetterRTPAddons.addons.partyrtp.cmds.PartyCommand;
|
||||
import me.SuperRonanCraft.BetterRTPAddons.util.Files;
|
||||
import org.bukkit.plugin.PluginManager;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@ -12,10 +13,11 @@ import java.util.List;
|
||||
public class AddonParty implements Addon {
|
||||
|
||||
private static AddonParty instance;
|
||||
private final String name = "PartyRTP";
|
||||
private final String name = "Parties";
|
||||
private final PartyCommand cmd = new PartyCommand(this);
|
||||
public PartyMessages msgs = new PartyMessages();
|
||||
public List<PartyData> parties = new ArrayList<>();
|
||||
private final PartyHandler handler = new PartyHandler();
|
||||
|
||||
@Override
|
||||
public boolean isEnabled() {
|
||||
@ -26,6 +28,8 @@ public class AddonParty implements Addon {
|
||||
public void load() {
|
||||
instance = this;
|
||||
BetterRTP.getInstance().getCmd().registerCommand(cmd, false);
|
||||
PluginManager pm = BetterRTP.getInstance().getServer().getPluginManager();
|
||||
pm.registerEvents(handler, BetterRTP.getInstance());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -35,7 +35,7 @@ public class PartyData {
|
||||
}
|
||||
|
||||
public boolean invite(Player p) {
|
||||
if (!invited.contains(p)) {
|
||||
if (!invited.contains(p) && !members.containsKey(p)) {
|
||||
invited.add(p);
|
||||
return true;
|
||||
}
|
||||
@ -87,13 +87,15 @@ public class PartyData {
|
||||
if (!p.equals(getLeader())) {
|
||||
Location loc = e.getLocation();
|
||||
//Async tp players
|
||||
PaperLib.teleportAsync(p, loc, PlayerTeleportEvent.TeleportCause.PLUGIN).thenRun(() ->
|
||||
BetterRTP.getInstance().getText().getSuccessBypass(p,
|
||||
PaperLib.teleportAsync(p, loc, PlayerTeleportEvent.TeleportCause.PLUGIN).thenRun(() -> {
|
||||
/*BetterRTP.getInstance().getText().getSuccessBypass(p,
|
||||
String.valueOf(loc.getBlockX()),
|
||||
String.valueOf(loc.getBlockY()),
|
||||
String.valueOf(loc.getBlockZ()),
|
||||
loc.getWorld().getName(),
|
||||
1));
|
||||
1);*/
|
||||
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()));
|
||||
|
@ -55,6 +55,19 @@ public class PartyMessages implements AddonsMessages {
|
||||
sms(sendi, getLang().getString(preM + "Usage.Invite").replace("%command%", label));
|
||||
}
|
||||
|
||||
//Ready
|
||||
public void getReady_Readied(CommandSender sendi) {
|
||||
sms(sendi, getLang().getString(preM + "Ready.Readied"));
|
||||
}
|
||||
|
||||
public void getReady_Already(CommandSender sendi) {
|
||||
sms(sendi, getLang().getString(preM + "Ready.Already"));
|
||||
}
|
||||
|
||||
public void getReady_Leader(CommandSender sendi) {
|
||||
sms(sendi, getLang().getString(preM + "Ready.Leader"));
|
||||
}
|
||||
|
||||
//Members
|
||||
public void getMembers_NotReady(CommandSender sendi, String members) {
|
||||
sms(sendi, getLang().getString(preM + "Members.NotReady").replace("%members%", members));
|
||||
@ -64,10 +77,6 @@ public class PartyMessages implements AddonsMessages {
|
||||
sms(sendi, getLang().getString(preM + "Members.NotInParty").replace("%name%", name));
|
||||
}
|
||||
|
||||
public void getMembers_Ready(CommandSender sendi) {
|
||||
sms(sendi, getLang().getString(preM + "Members.Ready"));
|
||||
}
|
||||
|
||||
public void getMembers_LeaderLeft(CommandSender sendi) {
|
||||
sms(sendi, getLang().getString(preM + "Members.LeaderLeft"));
|
||||
}
|
||||
@ -85,6 +94,26 @@ public class PartyMessages implements AddonsMessages {
|
||||
sms(sendi, getLang().getString(preM + "Kick.Notification").replace("%name%", leader));
|
||||
}
|
||||
|
||||
public void getKick_OnlyLeader(CommandSender sendi, String leader) {
|
||||
sms(sendi, getLang().getString(preM + "Kick.OnlyLeader").replace("%name%", leader));
|
||||
}
|
||||
//Accept
|
||||
public void getAccept_NoInvites(CommandSender sendi) {
|
||||
sms(sendi, getLang().getString(preM + "Accept.NoInvites"));
|
||||
}
|
||||
|
||||
public void getAccept_Success(CommandSender sendi, String leader) {
|
||||
sms(sendi, getLang().getString(preM + "Accept.Success").replace("%name%", leader));
|
||||
}
|
||||
|
||||
public void getAccept_Notification(CommandSender sendi, String member) {
|
||||
sms(sendi, getLang().getString(preM + "Accept.Notification").replace("%name%", member));
|
||||
}
|
||||
|
||||
public void getAccept_InAParty(CommandSender sendi) {
|
||||
sms(sendi, getLang().getString(preM + "Accept.InAParty"));
|
||||
}
|
||||
|
||||
//Teleporting
|
||||
public void getTeleporting(CommandSender sendi) {
|
||||
sms(sendi, getLang().getString(preM + "Teleport"));
|
||||
|
@ -1,17 +1,79 @@
|
||||
package me.SuperRonanCraft.BetterRTPAddons.addons.partyrtp.cmds;
|
||||
|
||||
import me.SuperRonanCraft.BetterRTPAddons.addons.partyrtp.AddonParty;
|
||||
import me.SuperRonanCraft.BetterRTPAddons.addons.partyrtp.HelperParty;
|
||||
import me.SuperRonanCraft.BetterRTPAddons.addons.partyrtp.PartyData;
|
||||
import me.SuperRonanCraft.BetterRTPAddons.addons.portals.region.PortalsRegionInfo;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class PartyCommand_Accept implements PartyCommands {
|
||||
public class PartyCommand_Accept implements PartyCommands, PartyCommandsTabable {
|
||||
|
||||
@Override
|
||||
public void execute(CommandSender sendi, String label, String[] args, AddonParty addon) {
|
||||
Player p = (Player) sendi;
|
||||
if (HelperParty.isInParty(p)) {
|
||||
AddonParty.getInstance().msgs.getAccept_InAParty(sendi);
|
||||
return;
|
||||
}
|
||||
Player leader = null;
|
||||
if (args.length >= 3) {
|
||||
leader = Bukkit.getPlayer(args[2]);
|
||||
if (leader == null) {
|
||||
AddonParty.getInstance().msgs.getNotExist(sendi, args[2]);
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
AddonParty.getInstance().msgs.usageAccept(sendi, label);
|
||||
return;
|
||||
}
|
||||
//List invites
|
||||
List<PartyData> invites = new ArrayList<>();
|
||||
for (PartyData party : AddonParty.getInstance().parties) {
|
||||
for (Player invited_player : party.getInvited())
|
||||
if (invited_player.equals(p))
|
||||
invites.add(party);
|
||||
}
|
||||
|
||||
if (!invites.isEmpty()) {
|
||||
for (PartyData party : invites) {
|
||||
if (party.getLeader().equals(leader)) {
|
||||
party.add(p);
|
||||
party.getInvited().remove(p);
|
||||
//Success Message
|
||||
AddonParty.getInstance().msgs.getAccept_Success(sendi, party.getLeader().getName());
|
||||
party.getMembers().forEach((member, ready) -> { //Message of new party member
|
||||
if (!member.equals(p))
|
||||
AddonParty.getInstance().msgs.getAccept_Notification(member, p.getName());
|
||||
});
|
||||
//Party Leader Message
|
||||
AddonParty.getInstance().msgs.getAccept_Notification(party.getLeader(), p.getName());
|
||||
}
|
||||
}
|
||||
} else
|
||||
AddonParty.getInstance().msgs.getAccept_NoInvites(sendi);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> tabComplete(CommandSender sendi, String[] args, AddonParty addon) {
|
||||
List<String> list = new ArrayList<>();
|
||||
if (args.length == 3) {
|
||||
List<Player> invites = new ArrayList<>();
|
||||
for (PartyData party : AddonParty.getInstance().parties) {
|
||||
for (Player invited_player : party.getInvited())
|
||||
if (invited_player.equals(sendi))
|
||||
invites.add(party.getLeader());
|
||||
}
|
||||
for (Player leader : invites) {
|
||||
if (leader.getName().toLowerCase().startsWith(args[2].toLowerCase()) && !leader.equals(sendi))
|
||||
list.add(leader.getName());
|
||||
}
|
||||
}
|
||||
return list;
|
||||
}
|
||||
}
|
||||
|
@ -29,7 +29,7 @@ public class PartyCommand_Invite implements PartyCommands, PartyCommandsTabable
|
||||
AddonParty.getInstance().msgs.getInvite_Invited(sendi, member.getName());
|
||||
AddonParty.getInstance().msgs.getInvite_Notification(member, p.getName());
|
||||
} else
|
||||
AddonParty.getInstance().msgs.getInvite_Already(member, p.getName());
|
||||
AddonParty.getInstance().msgs.getInvite_Already(sendi, member.getName());
|
||||
} else
|
||||
AddonParty.getInstance().msgs.getOnlyLeader(sendi, party.getLeader().getName());
|
||||
} else
|
||||
|
@ -34,7 +34,7 @@ public class PartyCommand_Kick implements PartyCommands, PartyCommandsTabable {
|
||||
} else
|
||||
msgs.usageKick(sendi, label);
|
||||
} else
|
||||
msgs.getOnlyLeader(sendi, party.getLeader().getName());
|
||||
msgs.getKick_OnlyLeader(sendi, party.getLeader().getName());
|
||||
} else
|
||||
msgs.getNotInParty(sendi);
|
||||
}
|
||||
|
@ -13,7 +13,7 @@ public class PartyCommand_Leave implements PartyCommands {
|
||||
Player p = (Player) sendi;
|
||||
PartyData party = HelperParty.getParty(p);
|
||||
if (party != null) {
|
||||
if (party.isLeader(p)) {
|
||||
if (party.isLeader(p)) { //Leader deleted party
|
||||
AddonParty.getInstance().parties.remove(party);
|
||||
for (Player member : party.getMembers().keySet())
|
||||
AddonParty.getInstance().msgs.getMembers_LeaderLeft(member);
|
||||
|
@ -1,12 +1,26 @@
|
||||
package me.SuperRonanCraft.BetterRTPAddons.addons.partyrtp.cmds;
|
||||
|
||||
import me.SuperRonanCraft.BetterRTPAddons.addons.partyrtp.AddonParty;
|
||||
import me.SuperRonanCraft.BetterRTPAddons.addons.partyrtp.HelperParty;
|
||||
import me.SuperRonanCraft.BetterRTPAddons.addons.partyrtp.PartyData;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class PartyCommand_ReadyUp implements PartyCommands {
|
||||
|
||||
@Override
|
||||
public void execute(CommandSender sendi, String label, String[] args, AddonParty addon) {
|
||||
|
||||
Player p = (Player) sendi;
|
||||
PartyData party = HelperParty.getParty(p);
|
||||
if (party != null) {
|
||||
if (!party.isLeader(p)) {
|
||||
if (party.readyUp(p))
|
||||
AddonParty.getInstance().msgs.getReady_Readied(sendi);
|
||||
else
|
||||
AddonParty.getInstance().msgs.getReady_Already(sendi);
|
||||
} else
|
||||
AddonParty.getInstance().msgs.getReady_Leader(sendi);
|
||||
} else
|
||||
AddonParty.getInstance().msgs.getNotInParty(sendi);
|
||||
}
|
||||
}
|
||||
|
@ -2,7 +2,7 @@ Language-File: 'en.yml'
|
||||
|
||||
##Addon Flashback
|
||||
Flashback:
|
||||
Enabled: true
|
||||
Enabled: false
|
||||
Timer:
|
||||
Delay: 600 #In Seconds
|
||||
Warnings: #Warning messages to send to a player when X amount of time is left
|
||||
@ -56,5 +56,5 @@ Commands:
|
||||
Commands:
|
||||
- 'broadcast &e%player_name% moved while trying to rtp, chump!'
|
||||
|
||||
PartyRTP:
|
||||
Enabled: false
|
||||
Parties:
|
||||
Enabled: true
|
@ -33,24 +33,33 @@ Party:
|
||||
Teleport: '&fYou''ve been rtp''d because of your party!'
|
||||
NotExist: '&eThe player &f%name% &eis either offline or doesn''t exist!'
|
||||
Members:
|
||||
Ready: '&eYou have readied up for the next party rtp!'
|
||||
NotReady: '&cNot all members are ready! &7%members%'
|
||||
NotInParty: '&eThe player &f%name% &eis not in the party!'
|
||||
LeaderLeft: '&cParty leader quit! &fParty no longer exists'
|
||||
Leave: '&7You have left %name%''s rtp party!'
|
||||
Ready:
|
||||
Readied: '&eYou have readied up for the next party rtp!'
|
||||
Already: '&7You are already ready! &8Lmao'
|
||||
Leader: '&cYou are the leader... you are always ready!'
|
||||
Kick:
|
||||
OnlyLeader: '&cOnly the leader &f%name% &ccan kick a member!'
|
||||
Kicked: '&fPlayer &e%name% &fhas been kicked!'
|
||||
Notification: '&cYou''ve been kicked from the RTP party by %name%!'
|
||||
LeaderQuit: '&cParty leader has destroyed the party!'
|
||||
Invite:
|
||||
Already: '&e%name% is already been invited!'
|
||||
Invited: '&f%name% has been invited to your rtp party!'
|
||||
Notification: '&f%player_name% has invited you to join their rtp party!'
|
||||
Already: '&7%name% &ehas already been invited!'
|
||||
Invited: '&7%name% &fhas been invited to your rtp party!'
|
||||
Notification: '&7%name% &fhas invited you to join their rtp party!'
|
||||
Accept:
|
||||
NoInvites: '&cYou don''t have any pending invites :('
|
||||
Success: '&aSuccessfully joined &7%name%''s &artp party!'
|
||||
Notification: '&7%name% &ahas joined the rtp party!'
|
||||
InAParty: '&cCannot join another rtp party while in one!'
|
||||
Usage:
|
||||
Base: '&cUsage: &7/%command% party <invite, accept, leave, kick>'
|
||||
Accept: '&cUsage: &7/%command% portals accept <player_name>'
|
||||
Invite: '&cUsage: &7/%command% portals invite <player_name>'
|
||||
Kick: '&cUsage: &7/%command% portals kick <player_name>'
|
||||
Base: '&cUsage: &7/%command% party <invite, accept, leave, kick, readyup>'
|
||||
Accept: '&cUsage: &7/%command% party accept <player_name>'
|
||||
Invite: '&cUsage: &7/%command% party invite <player_name>'
|
||||
Kick: '&cUsage: &7/%command% party kick <player_name>'
|
||||
Addons:
|
||||
List:
|
||||
Prefix: '&e&m-----&6&l BetterRTP &7&lAddons &8| Addons Info &e&m-----'
|
||||
|
@ -1,6 +1,7 @@
|
||||
package me.SuperRonanCraft.BetterRTP.player.rtp;
|
||||
|
||||
import lombok.Getter;
|
||||
import me.RonanCraft.Pueblos.resources.tools.HelperEvent;
|
||||
import me.SuperRonanCraft.BetterRTP.BetterRTP;
|
||||
import me.SuperRonanCraft.BetterRTP.references.customEvents.RTP_SettingUpEvent;
|
||||
import me.SuperRonanCraft.BetterRTP.references.file.FileBasics;
|
||||
@ -112,8 +113,9 @@ public class RTP {
|
||||
}
|
||||
|
||||
public void start(RTPSetupInformation setup_info) {
|
||||
|
||||
if (new RTP_SettingUpEvent(setup_info.player).isCancelled()) {
|
||||
RTP_SettingUpEvent setup = new RTP_SettingUpEvent(setup_info.player);
|
||||
Bukkit.getPluginManager().callEvent(setup);
|
||||
if (setup.isCancelled()) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -4,6 +4,7 @@ import me.SuperRonanCraft.BetterRTP.references.customEvents.RTP_FindLocationEven
|
||||
import me.SuperRonanCraft.BetterRTP.references.rtpinfo.worlds.WorldPlayer;
|
||||
import io.papermc.lib.PaperLib;
|
||||
import me.SuperRonanCraft.BetterRTP.BetterRTP;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Chunk;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.World;
|
||||
@ -41,6 +42,7 @@ public class RTPPlayer {
|
||||
else { //Try again to find a safe location
|
||||
//Find a queue'd location
|
||||
RTP_FindLocationEvent event = new RTP_FindLocationEvent(p, pWorld); //Find a queue'd location
|
||||
Bukkit.getServer().getPluginManager().callEvent(event);
|
||||
Location loc;
|
||||
if (event.getLocation() != null && pWorld.checkIsValid(event.getLocation()))
|
||||
loc = event.getLocation();
|
||||
|
Loading…
x
Reference in New Issue
Block a user