Use FPlayer to store board toggle instead of separate file.
Honestly not sure why we ever did it like this in the first place.
This commit is contained in:
@@ -1,110 +1,28 @@
|
||||
package com.massivecraft.factions.cmd;
|
||||
|
||||
import com.massivecraft.factions.FPlayer;
|
||||
import com.massivecraft.factions.P;
|
||||
import com.massivecraft.factions.scoreboards.FScoreboard;
|
||||
import com.massivecraft.factions.struct.Permission;
|
||||
import com.massivecraft.factions.zcore.util.TL;
|
||||
import org.bukkit.configuration.file.YamlConfiguration;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.UUID;
|
||||
|
||||
public class CmdSB extends FCommand {
|
||||
|
||||
private YamlConfiguration yml;
|
||||
private File file;
|
||||
|
||||
public CmdSB() {
|
||||
this.aliases.add("sb");
|
||||
this.permission = Permission.SCOREBOARD.node;
|
||||
this.senderMustBePlayer = true;
|
||||
// Hope I didn't miss anything.
|
||||
|
||||
file = new File(P.p.getDataFolder(), "playerBoardToggle.yml");
|
||||
if (!file.exists()) {
|
||||
try {
|
||||
file.createNewFile();
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
yml = YamlConfiguration.loadConfiguration(file);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void perform() {
|
||||
boolean toggle = toggle(me.getPlayer().getUniqueId());
|
||||
boolean toggleTo = !fme.showScoreboard();
|
||||
FScoreboard board = FScoreboard.get(fme);
|
||||
if (board == null) {
|
||||
me.sendMessage(TL.COMMAND_TOGGLESB_DISABLED.toString());
|
||||
} else {
|
||||
me.sendMessage(TL.TOGGLE_SB.toString().replace("{value}", String.valueOf(toggle)));
|
||||
board.setSidebarVisibility(toggle);
|
||||
me.sendMessage(TL.TOGGLE_SB.toString().replace("{value}", String.valueOf(toggleTo)));
|
||||
board.setSidebarVisibility(toggleTo);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Toggle a player seeing scoreboards or not.
|
||||
*
|
||||
* @param uuid - uuid of player.
|
||||
*
|
||||
* @return - true if now set to seeing scoreboards, otherwise false.
|
||||
*/
|
||||
public boolean toggle(UUID uuid) {
|
||||
if (!yml.getBoolean(uuid.toString(), true)) { // check if it's false, if never been toggled, default to false.
|
||||
yml.set(uuid.toString(), true);
|
||||
save();
|
||||
return true;
|
||||
} else {
|
||||
yml.set(uuid.toString(), false);
|
||||
save();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public void save() {
|
||||
try {
|
||||
yml.save(file);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Determines whether or not to show the player a scoreboard.
|
||||
*
|
||||
* @param player - FPlayer in question.
|
||||
*
|
||||
* @return - true if should show, otherwise false.
|
||||
*/
|
||||
public boolean showBoard(FPlayer player) {
|
||||
return showBoard(player.getPlayer());
|
||||
}
|
||||
|
||||
/**
|
||||
* Determines whether or not to show the player a scoreboard.
|
||||
*
|
||||
* @param player - Player in question.
|
||||
*
|
||||
* @return - true if should show, otherwise false.
|
||||
*/
|
||||
public boolean showBoard(Player player) {
|
||||
return showBoard(player.getUniqueId());
|
||||
}
|
||||
|
||||
/**
|
||||
* Determines whether or not to show the player a scoreboard.
|
||||
*
|
||||
* @param uuid - UUID of player in question.
|
||||
*
|
||||
* @return - true if should show, otherwise false.
|
||||
*/
|
||||
public boolean showBoard(UUID uuid) {
|
||||
return yml.getBoolean(uuid.toString(), true);
|
||||
fme.setShowScoreboard(toggleTo);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user