forked from Upstream/mmocore
added creator to request object
party invite cooldown resets when invitation accepted
This commit is contained in:
parent
07bf1c78ae
commit
93b62e8055
@ -6,15 +6,12 @@ import net.Indyuce.mmocore.MMOCore;
|
|||||||
import net.Indyuce.mmocore.api.player.PlayerData;
|
import net.Indyuce.mmocore.api.player.PlayerData;
|
||||||
|
|
||||||
public class FriendRequest extends Request {
|
public class FriendRequest extends Request {
|
||||||
private PlayerData creator, target;
|
private final PlayerData target;
|
||||||
|
|
||||||
public FriendRequest(PlayerData creator, PlayerData target) {
|
public FriendRequest(PlayerData creator, PlayerData target) {
|
||||||
this.creator = creator;
|
super(creator);
|
||||||
this.target = target;
|
|
||||||
}
|
|
||||||
|
|
||||||
public PlayerData getCreator() {
|
this.target = target;
|
||||||
return creator;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public PlayerData getTarget() {
|
public PlayerData getTarget() {
|
||||||
@ -27,10 +24,10 @@ public class FriendRequest extends Request {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void accept() {
|
public void accept() {
|
||||||
creator.addFriend(target.getUniqueId());
|
getCreator().addFriend(target.getUniqueId());
|
||||||
target.addFriend(creator.getUniqueId());
|
target.addFriend(getCreator().getUniqueId());
|
||||||
creator.getPlayer().sendMessage(MMOCore.plugin.configManager.getSimpleMessage("now-friends", "player", target.getPlayer().getName()));
|
getCreator().getPlayer().sendMessage(MMOCore.plugin.configManager.getSimpleMessage("now-friends", "player", target.getPlayer().getName()));
|
||||||
target.getPlayer().sendMessage(MMOCore.plugin.configManager.getSimpleMessage("now-friends", "player", creator.getPlayer().getName()));
|
target.getPlayer().sendMessage(MMOCore.plugin.configManager.getSimpleMessage("now-friends", "player", getCreator().getPlayer().getName()));
|
||||||
MMOCore.plugin.requestManager.unregisterRequest(getUniqueId());
|
MMOCore.plugin.requestManager.unregisterRequest(getUniqueId());
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -45,6 +45,10 @@ public class Party {
|
|||||||
return invites.containsKey(player.getUniqueId()) ? invites.get(player.getUniqueId()) : 0;
|
return invites.containsKey(player.getUniqueId()) ? invites.get(player.getUniqueId()) : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void removeLastInvite(Player player) {
|
||||||
|
invites.remove(player.getUniqueId());
|
||||||
|
}
|
||||||
|
|
||||||
public void removeMember(PlayerData data) {
|
public void removeMember(PlayerData data) {
|
||||||
if (data.isOnline() && data.getPlayer().getOpenInventory() != null && data.getPlayer().getOpenInventory().getTopInventory().getHolder() instanceof PartyViewInventory)
|
if (data.isOnline() && data.getPlayer().getOpenInventory() != null && data.getPlayer().getOpenInventory().getTopInventory().getHolder() instanceof PartyViewInventory)
|
||||||
InventoryManager.PARTY_CREATION.newInventory(data).open();
|
InventoryManager.PARTY_CREATION.newInventory(data).open();
|
||||||
@ -83,10 +87,10 @@ public class Party {
|
|||||||
((PluginInventory) member.getPlayer().getOpenInventory().getTopInventory().getHolder()).open();
|
((PluginInventory) member.getPlayer().getOpenInventory().getTopInventory().getHolder()).open();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void sendPartyInvite(Player inviter, PlayerData target) {
|
public void sendPartyInvite(PlayerData inviter, PlayerData target) {
|
||||||
invites.put(target.getUniqueId(), System.currentTimeMillis());
|
invites.put(target.getUniqueId(), System.currentTimeMillis());
|
||||||
Request request = new PartyInvite(this, target);
|
Request request = new PartyInvite(this, inviter, target);
|
||||||
new ConfigMessage("party-invite").addPlaceholders("player", inviter.getName(), "uuid", request.getUniqueId().toString()).sendAsJSon(target.getPlayer());
|
new ConfigMessage("party-invite").addPlaceholders("player", inviter.getPlayer().getName(), "uuid", request.getUniqueId().toString()).sendAsJSon(target.getPlayer());
|
||||||
MMOCore.plugin.requestManager.registerRequest(request);
|
MMOCore.plugin.requestManager.registerRequest(request);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -122,7 +126,7 @@ public class Party {
|
|||||||
refreshAttributes();
|
refreshAttributes();
|
||||||
refreshAttributes(player);
|
refreshAttributes(player);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void forEach(Consumer<? super PlayerData> action) {
|
public void forEach(Consumer<? super PlayerData> action) {
|
||||||
members.forEach(action);
|
members.forEach(action);
|
||||||
}
|
}
|
||||||
|
@ -5,10 +5,12 @@ import net.Indyuce.mmocore.api.player.PlayerData;
|
|||||||
import net.Indyuce.mmocore.manager.InventoryManager;
|
import net.Indyuce.mmocore.manager.InventoryManager;
|
||||||
|
|
||||||
public class PartyInvite extends Request {
|
public class PartyInvite extends Request {
|
||||||
private PlayerData target;
|
private final PlayerData target;
|
||||||
private Party party;
|
private final Party party;
|
||||||
|
|
||||||
|
public PartyInvite(Party party, PlayerData creator, PlayerData target) {
|
||||||
|
super(creator);
|
||||||
|
|
||||||
public PartyInvite(Party party, PlayerData target) {
|
|
||||||
this.party = party;
|
this.party = party;
|
||||||
this.target = target;
|
this.target = target;
|
||||||
}
|
}
|
||||||
@ -26,6 +28,7 @@ public class PartyInvite extends Request {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void accept() {
|
public void accept() {
|
||||||
|
party.removeLastInvite(getCreator().getPlayer());
|
||||||
party.getMembers().forEach(member -> member.getPlayer().sendMessage(MMOCore.plugin.configManager.getSimpleMessage("party-joined-other", "player", target.getPlayer().getName())));
|
party.getMembers().forEach(member -> member.getPlayer().sendMessage(MMOCore.plugin.configManager.getSimpleMessage("party-joined-other", "player", target.getPlayer().getName())));
|
||||||
target.getPlayer().sendMessage(MMOCore.plugin.configManager.getSimpleMessage("party-joined", "owner", party.getOwner().getPlayer().getName()));
|
target.getPlayer().sendMessage(MMOCore.plugin.configManager.getSimpleMessage("party-joined", "owner", party.getOwner().getPlayer().getName()));
|
||||||
party.addMember(target);
|
party.addMember(target);
|
||||||
|
@ -2,9 +2,20 @@ package net.Indyuce.mmocore.api.player.social;
|
|||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
|
import net.Indyuce.mmocore.api.player.PlayerData;
|
||||||
|
|
||||||
public abstract class Request {
|
public abstract class Request {
|
||||||
private UUID uuid = UUID.randomUUID();
|
private final UUID uuid = UUID.randomUUID();
|
||||||
private long date = System.currentTimeMillis();
|
private final long date = System.currentTimeMillis();
|
||||||
|
private final PlayerData creator;
|
||||||
|
|
||||||
|
public Request(PlayerData creator) {
|
||||||
|
this.creator = creator;
|
||||||
|
}
|
||||||
|
|
||||||
|
public PlayerData getCreator() {
|
||||||
|
return creator;
|
||||||
|
}
|
||||||
|
|
||||||
public UUID getUniqueId() {
|
public UUID getUniqueId() {
|
||||||
return uuid;
|
return uuid;
|
||||||
|
@ -164,7 +164,7 @@ public class EditablePartyView extends EditableInventory {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
playerData.getParty().sendPartyInvite(player, targetData);
|
playerData.getParty().sendPartyInvite(playerData, targetData);
|
||||||
player.sendMessage(MMOCore.plugin.configManager.getSimpleMessage("sent-party-invite", "player", target.getName()));
|
player.sendMessage(MMOCore.plugin.configManager.getSimpleMessage("sent-party-invite", "player", target.getName()));
|
||||||
player.playSound(player.getLocation(), Sound.ENTITY_EXPERIENCE_ORB_PICKUP, 1, 1);
|
player.playSound(player.getLocation(), Sound.ENTITY_EXPERIENCE_ORB_PICKUP, 1, 1);
|
||||||
open();
|
open();
|
||||||
|
Loading…
Reference in New Issue
Block a user