Skip to content

Commit

Permalink
Added makeleader - to transfer ownership, and prepared WG regions for…
Browse files Browse the repository at this point in the history
… UUID
  • Loading branch information
rlf committed Dec 29, 2014
1 parent 768f9d5 commit a2a8434
Show file tree
Hide file tree
Showing 15 changed files with 186 additions and 103 deletions.
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package us.talabrek.ultimateskyblock.command.island;
package us.talabrek.ultimateskyblock.command;

import org.bukkit.ChatColor;
import org.bukkit.OfflinePlayer;
Expand Down Expand Up @@ -83,7 +83,7 @@ public synchronized boolean accept(Player player) {
uuids.remove(uuid);
player.sendMessage(ChatColor.GREEN + "You have joined an island! Use /island party to see the other members.");
// TODO: 29/12/2014 - R4zorax: Perhaps these steps should belong somewhere else?
addPlayertoParty(player, island);
addPlayerToParty(player, island);
plugin.setRestartCooldown(player);
plugin.homeTeleport(player);
plugin.clearPlayerInventory(player);
Expand All @@ -97,7 +97,7 @@ public synchronized Set<UUID> getPendingInvites(IslandInfo island) {
return waitingInvites.get(island.getName());
}

public boolean addPlayertoParty(final Player player, final IslandInfo island) {
public boolean addPlayerToParty(final Player player, final IslandInfo island) {
PlayerInfo playerInfo = plugin.getPlayerInfo(player);
PlayerInfo leaderInfo = plugin.getPlayerInfo(island.getLeader());
playerInfo.setJoinParty(leaderInfo.getIslandLocation());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import us.talabrek.ultimateskyblock.command.common.AbstractCommandExecutor;
import us.talabrek.ultimateskyblock.command.completion.AllPlayerTabCompleter;
import us.talabrek.ultimateskyblock.command.completion.BiomeTabCompleter;
import us.talabrek.ultimateskyblock.command.completion.MemberTabCompleter;
import us.talabrek.ultimateskyblock.command.completion.OnlinePlayerTabCompleter;
import us.talabrek.ultimateskyblock.command.island.*;
import us.talabrek.ultimateskyblock.uSkyBlock;
Expand All @@ -26,6 +27,7 @@ public IslandCommand(uSkyBlock plugin, SkyBlockMenu menu) {
addTab("player", playerTabCompleter);
addTab("oplayer", new OnlinePlayerTabCompleter());
addTab("biome", new BiomeTabCompleter());
addTab("member", new MemberTabCompleter(plugin));
add(new RestartCommand(plugin));
add(new LogCommand(plugin, menu));
add(new CreateCommand(plugin));
Expand All @@ -44,6 +46,7 @@ public IslandCommand(uSkyBlock plugin, SkyBlockMenu menu) {
add(new LeaveCommand(plugin));
add(new KickCommand(plugin));
add(new PartyCommand(plugin, menu, inviteHandler));
add(new MakeLeaderCommand(plugin));
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ private void deleteIsland(CommandSender sender, PlayerInfo playerInfo, IslandInf
}

private void protectIsland(CommandSender sender, PlayerInfo playerInfo, IslandInfo islandInfo) {
if (WorldGuardHandler.protectIsland(sender, islandInfo.getLeader(), playerInfo)) {
if (WorldGuardHandler.protectIsland(sender, playerInfo)) {
sender.sendMessage("\u00a7e" + playerInfo.getPlayerName() + "'s island at " + playerInfo.locationForParty() + " has been protected");
} else {
sender.sendMessage("\u00a74" + playerInfo.getPlayerName() + "'s island at " + playerInfo.locationForParty() + " was already protected");
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
package us.talabrek.ultimateskyblock.command.completion;

import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.command.TabCompleter;
import org.bukkit.entity.Player;
import us.talabrek.ultimateskyblock.island.IslandInfo;
import us.talabrek.ultimateskyblock.player.PlayerInfo;
import us.talabrek.ultimateskyblock.uSkyBlock;

import java.util.List;

/**
* Only list members of your current party.
*/
public class MemberTabCompleter implements TabCompleter {
private final uSkyBlock plugin;

public MemberTabCompleter(uSkyBlock plugin) {
this.plugin = plugin;
}

@Override
public List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] args) {
if (sender instanceof Player) {
PlayerInfo playerInfo = plugin.getPlayerInfo((Player) sender);
if (playerInfo != null && playerInfo.getHasIsland()) {
IslandInfo islandInfo = plugin.getIslandInfo(playerInfo);
if (islandInfo != null) {
String member = args.length > 0 ? args[args.length-1] : "";
return AbstractTabCompleter.filter(islandInfo.getMembers(), member);
}
}
}
return null;
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package us.talabrek.ultimateskyblock.command.island;

import org.bukkit.entity.Player;
import us.talabrek.ultimateskyblock.command.InviteHandler;

import java.util.Map;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.entity.Player;
import us.talabrek.ultimateskyblock.command.InviteHandler;
import us.talabrek.ultimateskyblock.island.IslandInfo;
import us.talabrek.ultimateskyblock.player.PlayerInfo;
import us.talabrek.ultimateskyblock.uSkyBlock;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
package us.talabrek.ultimateskyblock.command.island;

import org.bukkit.entity.Player;
import us.talabrek.ultimateskyblock.handler.WorldGuardHandler;
import us.talabrek.ultimateskyblock.island.IslandInfo;
import us.talabrek.ultimateskyblock.player.PlayerInfo;
import us.talabrek.ultimateskyblock.uSkyBlock;

import java.util.Map;

public class MakeLeaderCommand extends RequireIslandCommand {
public MakeLeaderCommand(uSkyBlock plugin) {
super(plugin, "makeleader|transfer", "usb.island.create", "member", "transfer leadership to another member");
}

@Override
protected boolean doExecute(String alias, Player player, PlayerInfo pi, IslandInfo island, Map<String, Object> data, String... args) {
if (args.length == 1) {
String member = args[0];
if (!island.getMembers().contains(member)) {
player.sendMessage("\u00a74You can only transfer ownership to party-members!");
return true;
}
if (island.getLeader().equals(member)) {
player.sendMessage(member + "\u00a7e is already leader of your island!");
return true;
}
island.setupPartyLeader(member); // Promote member
island.setupPartyMember(player.getName()); // Demote leader
WorldGuardHandler.updateRegion(player, island);
island.sendMessageToIslandGroup("\u00a7bLeadership transferred by " + player.getDisplayName() + "\u00a7b to " + member);
return true;
}
return false;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import us.talabrek.ultimateskyblock.SkyBlockMenu;
import us.talabrek.ultimateskyblock.command.InviteHandler;
import us.talabrek.ultimateskyblock.command.common.AbstractUSBCommand;
import us.talabrek.ultimateskyblock.command.common.CompositeUSBCommand;
import us.talabrek.ultimateskyblock.island.IslandInfo;
Expand Down
Loading

0 comments on commit a2a8434

Please sign in to comment.