Skip to content

Commit ace31c2

Browse files
committed
WIP for #338 enable viewing of challenges by admins.
1 parent ec6b950 commit ace31c2

File tree

8 files changed

+434
-374
lines changed

8 files changed

+434
-374
lines changed

src/main/java/world/bentobox/challenges/commands/admin/ChallengesAdminCommand.java

+31-9
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,12 @@
22

33
import java.util.List;
44

5+
import world.bentobox.bentobox.BentoBox;
56
import world.bentobox.bentobox.api.commands.CompositeCommand;
67
import world.bentobox.bentobox.api.user.User;
78
import world.bentobox.challenges.ChallengesAddon;
89
import world.bentobox.challenges.panel.admin.AdminPanel;
10+
import world.bentobox.challenges.panel.user.ChallengesPanel;
911

1012

1113
public class ChallengesAdminCommand extends CompositeCommand
@@ -19,9 +21,9 @@ public class ChallengesAdminCommand extends CompositeCommand
1921
public ChallengesAdminCommand(ChallengesAddon addon, CompositeCommand parent)
2022
{
2123
super(addon,
22-
parent,
23-
addon.getChallengesSettings().getAdminMainCommand().split(" ")[0],
24-
addon.getChallengesSettings().getAdminMainCommand().split(" "));
24+
parent,
25+
addon.getChallengesSettings().getAdminMainCommand().split(" ")[0],
26+
addon.getChallengesSettings().getAdminMainCommand().split(" "));
2527
}
2628

2729

@@ -52,16 +54,36 @@ public void setup()
5254
@Override
5355
public boolean execute(User user, String label, List<String> args)
5456
{
57+
BentoBox.getInstance().logDebug("Args size = " + args.size());
5558
// Open up the admin challenges GUI
5659
if (user.isPlayer())
5760
{
58-
AdminPanel.open(this.getAddon(),
59-
this.getWorld(),
60-
user,
61-
this.getTopLabel(),
62-
this.getPermissionPrefix());
61+
if (args.isEmpty()) {
62+
AdminPanel.open(this.getAddon(),
63+
this.getWorld(),
64+
user,
65+
this.getTopLabel(),
66+
this.getPermissionPrefix());
6367

64-
return true;
68+
return true;
69+
} else if (args.size() == 1) {
70+
User target = getPlayers().getUser(args.get(0).trim());
71+
if (target == null) {
72+
user.sendMessage("general.errors.unknown-player");
73+
return false;
74+
}
75+
ChallengesPanel.view(this.getAddon(),
76+
this.getWorld(),
77+
target,
78+
user,
79+
this.getTopLabel(),
80+
this.getPermissionPrefix());
81+
82+
return true;
83+
}
84+
// Show help
85+
showHelp(this, user);
86+
return false;
6587
}
6688
return false;
6789
}

src/main/java/world/bentobox/challenges/panel/CommonPagedPanel.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ protected CommonPagedPanel(ChallengesAddon addon,
4242
User user,
4343
World world, String topLabel, String permissionPrefix)
4444
{
45-
super(addon, user, world, topLabel, permissionPrefix);
45+
super(addon, user, user, world, topLabel, permissionPrefix);
4646
}
4747

4848

src/main/java/world/bentobox/challenges/panel/CommonPanel.java

+168-159
Large diffs are not rendered by default.

src/main/java/world/bentobox/challenges/panel/admin/AdminPanel.java

+3-2
Original file line numberDiff line numberDiff line change
@@ -44,10 +44,11 @@ public class AdminPanel extends CommonPanel
4444
private AdminPanel(ChallengesAddon addon,
4545
World world,
4646
User user,
47+
User viewer,
4748
String topLabel,
4849
String permissionPrefix)
4950
{
50-
super(addon, user, world, topLabel, permissionPrefix);
51+
super(addon, user, viewer, world, topLabel, permissionPrefix);
5152
}
5253

5354

@@ -66,7 +67,7 @@ public static void open(ChallengesAddon addon,
6667
String topLabel,
6768
String permissionPrefix)
6869
{
69-
new AdminPanel(addon, world, user, topLabel, permissionPrefix).build();
70+
new AdminPanel(addon, world, user, user, topLabel, permissionPrefix).build();
7071
}
7172

7273

src/main/java/world/bentobox/challenges/panel/admin/EditChallengePanel.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ public class EditChallengePanel extends CommonPanel {
6161
*/
6262
private EditChallengePanel(ChallengesAddon addon, User user, World world, String topLabel, String permissionPrefix,
6363
Challenge challenge) {
64-
super(addon, user, world, topLabel, permissionPrefix);
64+
super(addon, user, user, world, topLabel, permissionPrefix);
6565
this.challenge = challenge;
6666
this.currentMenuType = MenuType.PROPERTIES;
6767
}

src/main/java/world/bentobox/challenges/panel/admin/EditSettingsPanel.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ private EditSettingsPanel(ChallengesAddon addon,
5151
String topLabel,
5252
String permissionPrefix)
5353
{
54-
super(addon, user, world, topLabel, permissionPrefix);
54+
super(addon, user, user, world, topLabel, permissionPrefix);
5555
this.settings = this.addon.getChallengesSettings();
5656
}
5757

0 commit comments

Comments
 (0)