added /re seller command to change who is selling an admin claim
This commit is contained in:
parent
96a50c1107
commit
2cff090309
@ -87,6 +87,55 @@ public class RECommand extends BaseCommand
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Subcommand("seller")
|
||||||
|
@Description("Displays or changes the seller of a claim (admin only)")
|
||||||
|
@Conditions("inPendingTransactionClaim")
|
||||||
|
public static void setSeller(Player player, @Optional String newSeller)
|
||||||
|
{
|
||||||
|
Location loc = player.getLocation();
|
||||||
|
Claim claim = GriefPrevention.instance.dataStore.getClaimAt(loc, false, null);
|
||||||
|
Transaction tr = RealEstate.transactionsStore.getTransaction(claim);
|
||||||
|
if(!claim.isAdminClaim())
|
||||||
|
{
|
||||||
|
player.sendMessage(RealEstate.instance.config.chatPrefix + ChatColor.RED + "This is not an admin claim");
|
||||||
|
}
|
||||||
|
else if(newSeller == null)
|
||||||
|
{
|
||||||
|
player.sendMessage(RealEstate.instance.config.chatPrefix + ChatColor.AQUA + "The seller of this claim is " +
|
||||||
|
ChatColor.GREEN + (tr.getOwner() == null ? "the server" : Bukkit.getPlayer(tr.getOwner()).getDisplayName()));
|
||||||
|
}
|
||||||
|
else if(!RealEstate.perms.has(player, "realestate.admin"))
|
||||||
|
{
|
||||||
|
player.sendMessage(RealEstate.instance.config.chatPrefix + ChatColor.RED + "You don't have the permission to change the seller");
|
||||||
|
}
|
||||||
|
else if(newSeller.equalsIgnoreCase("server"))
|
||||||
|
{
|
||||||
|
tr.setOwner(null);
|
||||||
|
tr.update();
|
||||||
|
player.sendMessage(RealEstate.instance.config.chatPrefix + ChatColor.AQUA + "Changed the seller to the server");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Player newOwner = Bukkit.getPlayer(newSeller);
|
||||||
|
if(newOwner == null)
|
||||||
|
{
|
||||||
|
player.sendMessage(RealEstate.instance.config.chatPrefix + ChatColor.RED + "Couldn't find this player (he may be offline)");
|
||||||
|
}
|
||||||
|
else if(!RealEstate.perms.has(newOwner, "realestate.admin"))
|
||||||
|
{
|
||||||
|
player.sendMessage(RealEstate.instance.config.chatPrefix + ChatColor.RED +
|
||||||
|
"This player doesn't have the right to lease/rent/sell admin claims");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
tr.setOwner(newOwner.getUniqueId());
|
||||||
|
tr.update();
|
||||||
|
player.sendMessage(RealEstate.instance.config.chatPrefix + ChatColor.AQUA + "Changed the seller to " +
|
||||||
|
ChatColor.GREEN + newOwner.getDisplayName());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Subcommand("exitoffer")
|
@Subcommand("exitoffer")
|
||||||
@Conditions("partOfBoughtTransaction")
|
@Conditions("partOfBoughtTransaction")
|
||||||
public class ExitOfferCommand extends BaseCommand
|
public class ExitOfferCommand extends BaseCommand
|
||||||
|
|||||||
@ -181,7 +181,7 @@ public class REListener implements Listener
|
|||||||
if(duration == 0)
|
if(duration == 0)
|
||||||
{
|
{
|
||||||
player.sendMessage(RealEstate.instance.config.chatPrefix + ChatColor.RED + "Couldn't read the date!\n" +
|
player.sendMessage(RealEstate.instance.config.chatPrefix + ChatColor.RED + "Couldn't read the date!\n" +
|
||||||
"Date must be formatted as follow" + ChatColor.GREEN + "10 weeks" + ChatColor.RED + " or " +
|
"Date must be formatted as follow : " + ChatColor.GREEN + "10 weeks" + ChatColor.RED + " or " +
|
||||||
ChatColor.GREEN + "3 days" + ChatColor.RED + " or " + ChatColor.GREEN + "1 week 3 days");
|
ChatColor.GREEN + "3 days" + ChatColor.RED + " or " + ChatColor.GREEN + "1 week 3 days");
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
event.getBlock().breakNaturally();
|
event.getBlock().breakNaturally();
|
||||||
@ -370,7 +370,7 @@ public class REListener implements Listener
|
|||||||
if(!RealEstate.transactionsStore.anyTransaction(claim))
|
if(!RealEstate.transactionsStore.anyTransaction(claim))
|
||||||
{
|
{
|
||||||
player.sendMessage(RealEstate.instance.config.chatPrefix + ChatColor.RED +
|
player.sendMessage(RealEstate.instance.config.chatPrefix + ChatColor.RED +
|
||||||
"This claim is no longer for rent or for sell, sorry...");
|
"This claim is no longer for rent, sell or lease, sorry...");
|
||||||
event.getClickedBlock().breakNaturally();
|
event.getClickedBlock().breakNaturally();
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
return;
|
return;
|
||||||
@ -396,11 +396,18 @@ public class REListener implements Listener
|
|||||||
Transaction tr = RealEstate.transactionsStore.getTransaction(claim);
|
Transaction tr = RealEstate.transactionsStore.getTransaction(claim);
|
||||||
if(tr != null && event.getBlock().equals(tr.getHolder()))
|
if(tr != null && event.getBlock().equals(tr.getHolder()))
|
||||||
{
|
{
|
||||||
if(event.getPlayer() != null && !tr.getOwner().equals(event.getPlayer().getUniqueId()) &&
|
if(event.getPlayer() != null && tr.getOwner() != null && !event.getPlayer().getUniqueId().equals(tr.getOwner()) &&
|
||||||
!RealEstate.perms.has(event.getPlayer(), "realestate.destroysigns"))
|
!RealEstate.perms.has(event.getPlayer(), "realestate.destroysigns"))
|
||||||
{
|
{
|
||||||
event.getPlayer().sendMessage(RealEstate.instance.config.chatPrefix +
|
event.getPlayer().sendMessage(RealEstate.instance.config.chatPrefix +
|
||||||
ChatColor.RED + "Only the author of the sell/rent sign is allowed to destroy it");
|
ChatColor.RED + "Only the author of the sell/rent/lease sign is allowed to destroy it");
|
||||||
|
event.setCancelled(true);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
else if(event.getPlayer() != null && tr.getOwner() == null && !RealEstate.perms.has(event.getPlayer(), "realestate.admin"))
|
||||||
|
{
|
||||||
|
event.getPlayer().sendMessage(RealEstate.instance.config.chatPrefix +
|
||||||
|
ChatColor.RED + "Only an admin is allowed to destroy this sign");
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -108,6 +108,26 @@ public class RealEstate extends JavaPlugin
|
|||||||
}
|
}
|
||||||
throw new ConditionFailedException("You must stand inside of a claim to use this command!");
|
throw new ConditionFailedException("You must stand inside of a claim to use this command!");
|
||||||
});
|
});
|
||||||
|
manager.getCommandConditions().addCondition("inPendingTransactionClaim", (context) -> {
|
||||||
|
if(!context.getIssuer().isPlayer())
|
||||||
|
{
|
||||||
|
throw new ConditionFailedException("Only Players can perform this command!");
|
||||||
|
}
|
||||||
|
Claim c = GriefPrevention.instance.dataStore.getClaimAt(context.getIssuer().getPlayer().getLocation(), false, null);
|
||||||
|
if(c == null)
|
||||||
|
{
|
||||||
|
throw new ConditionFailedException("You must stand inside of a claim to use this command!");
|
||||||
|
}
|
||||||
|
Transaction tr = transactionsStore.getTransaction(c);
|
||||||
|
if(tr == null)
|
||||||
|
{
|
||||||
|
throw new ConditionFailedException("This claim is neither to rent or to lease!");
|
||||||
|
}
|
||||||
|
else if(tr instanceof BoughtTransaction && ((BoughtTransaction)tr).getBuyer() != null)
|
||||||
|
{
|
||||||
|
throw new ConditionFailedException("This claim already has a buyer!");
|
||||||
|
}
|
||||||
|
});
|
||||||
manager.getCommandConditions().addCondition("inBoughtClaim", (context) -> {
|
manager.getCommandConditions().addCondition("inBoughtClaim", (context) -> {
|
||||||
if(!context.getIssuer().isPlayer())
|
if(!context.getIssuer().isPlayer())
|
||||||
{
|
{
|
||||||
|
|||||||
@ -60,4 +60,9 @@ public abstract class BoughtTransaction extends ClaimTransaction
|
|||||||
{
|
{
|
||||||
return buyer;
|
return buyer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setOwner(UUID newOwner)
|
||||||
|
{
|
||||||
|
this.owner = newOwner;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -10,6 +10,8 @@ import me.ryanhamshire.GriefPrevention.Claim;
|
|||||||
import me.ryanhamshire.GriefPrevention.GriefPrevention;
|
import me.ryanhamshire.GriefPrevention.GriefPrevention;
|
||||||
import net.md_5.bungee.api.ChatColor;
|
import net.md_5.bungee.api.ChatColor;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.OfflinePlayer;
|
import org.bukkit.OfflinePlayer;
|
||||||
@ -66,12 +68,12 @@ public class ClaimSell extends ClaimTransaction
|
|||||||
}
|
}
|
||||||
String claimType = claim.parent == null ? "claim" : "subclaim";
|
String claimType = claim.parent == null ? "claim" : "subclaim";
|
||||||
|
|
||||||
if (owner.equals(player.getUniqueId()))
|
if (player.getUniqueId().equals(owner))
|
||||||
{
|
{
|
||||||
player.sendMessage(RealEstate.instance.config.chatPrefix + ChatColor.RED + "You already own this " + claimType + "!");
|
player.sendMessage(RealEstate.instance.config.chatPrefix + ChatColor.RED + "You already own this " + claimType + "!");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if(claim.parent == null && !owner.equals(claim.ownerID))
|
if(claim.parent == null && owner != null && !owner.equals(claim.ownerID))
|
||||||
{
|
{
|
||||||
player.sendMessage(RealEstate.instance.config.chatPrefix + ChatColor.RED + Bukkit.getPlayer(owner).getDisplayName() +
|
player.sendMessage(RealEstate.instance.config.chatPrefix + ChatColor.RED + Bukkit.getPlayer(owner).getDisplayName() +
|
||||||
" does not have the right to sell this " + claimType + "!");
|
" does not have the right to sell this " + claimType + "!");
|
||||||
@ -176,4 +178,10 @@ public class ClaimSell extends ClaimTransaction
|
|||||||
}
|
}
|
||||||
player.sendMessage(msg);
|
player.sendMessage(msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setOwner(UUID newOwner)
|
||||||
|
{
|
||||||
|
this.owner = newOwner;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -9,6 +9,7 @@ public interface Transaction
|
|||||||
{
|
{
|
||||||
public Block getHolder();
|
public Block getHolder();
|
||||||
public UUID getOwner();
|
public UUID getOwner();
|
||||||
|
public void setOwner(UUID newOwner);
|
||||||
public void interact(Player player);
|
public void interact(Player player);
|
||||||
public void preview(Player player);
|
public void preview(Player player);
|
||||||
public void update();
|
public void update();
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user