Skip to content

Commit b9d2572

Browse files
committed
Added command '/pc stop' and permission 'powercamera.cmd.stop'
1 parent bd822aa commit b9d2572

6 files changed

Lines changed: 43 additions & 3 deletions

File tree

PowerCamera/plugin.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@ permissions:
3030
default: op
3131
powercamera.cmd.start:
3232
default: op
33+
powercamera.cmd.stop:
34+
default: op
3335
powercamera.cmd.stats:
3436
default: op
3537
powercamera.hidestartmessages:

PowerCamera/src/nl/svenar/powercamera/CameraHandler.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ private double calculateProgress(double start, double end, int progress, int pro
7575
return start + ((double) progress / (double) progress_max) * (end - start);
7676
}
7777

78-
public void start() {
78+
public CameraHandler start() {
7979
this.previous_gamemode = this.player.getGameMode();
8080
this.previous_player_location = this.player.getLocation();
8181
this.previous_invisible = Util.isPlayerInvisible(this.player);
@@ -88,9 +88,10 @@ public void start() {
8888
player.teleport(camera_path_points.get(0));
8989

9090
if (!this.player.hasPermission("powercamera.hidestartmessages") && !this.player.hasPermission("powercamera.hideallmessages")) this.player.sendMessage(this.plugin.getPluginChatPrefix() + ChatColor.GREEN + "Viewing the path of camera '" + this.camera_name + "'!");
91+
return this;
9192
}
9293

93-
public void stop() {
94+
public CameraHandler stop() {
9495
plugin.player_camera_mode.put(player, CAMERA_MODE.NONE);
9596
this.cancel();
9697

@@ -99,6 +100,7 @@ public void stop() {
99100
if (this.plugin.getConfigPlugin().getConfig().getBoolean("camera-effects.invisible")) player.setInvisible(previous_invisible);
100101

101102
if (!this.player.hasPermission("powercamera.hidestartmessages") && !this.player.hasPermission("powercamera.hideallmessages")) player.sendMessage(plugin.getPluginChatPrefix() + ChatColor.GREEN + "The path of camera '" + camera_name + "' has ended!");
103+
return this;
102104
}
103105

104106
private Vector calculateVelocity(Location start, Location end) {

PowerCamera/src/nl/svenar/powercamera/PowerCamera.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import java.util.ArrayList;
55
import java.util.Arrays;
66
import java.util.HashMap;
7+
import java.util.UUID;
78

89
import org.bukkit.Bukkit;
910
import org.bukkit.ChatColor;
@@ -34,6 +35,7 @@ public class PowerCamera extends JavaPlugin {
3435

3536
public HashMap<Player, String> player_selected_camera = new HashMap<Player, String>(); // Selected camera name
3637
public HashMap<Player, CAMERA_MODE> player_camera_mode = new HashMap<Player, CAMERA_MODE>(); // When the player is viewing the camera (/pc start & /pc preview)
38+
public HashMap<UUID, CameraHandler> player_camera_handler = new HashMap<UUID, CameraHandler>(); // When the player is viewing the camera (/pc start & /pc preview)
3739
public Instant powercamera_start_time = Instant.now();
3840

3941
public static enum CAMERA_MODE {

PowerCamera/src/nl/svenar/powercamera/commands/MainCommand.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ public MainCommand(PowerCamera plugin) {
3232
new cmd_info(plugin, "info");
3333
new cmd_setduration(plugin, "setduration");
3434
new cmd_start(plugin, "start");
35+
new cmd_stop(plugin, "stop");
3536
new cmd_stats(plugin, "stats");
3637
}
3738

PowerCamera/src/nl/svenar/powercamera/commands/cmd_start.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ public boolean onCommand(CommandSender sender, Command cmd, String commandLabel,
2121
if (this.plugin.player_camera_mode.get((Player) sender) == null || this.plugin.player_camera_mode.get((Player) sender) == PowerCamera.CAMERA_MODE.NONE) {
2222
String camera_name = plugin.player_selected_camera.get((Player) sender);
2323
if (camera_name != null) {
24-
new CameraHandler(plugin, (Player) sender, camera_name).generatePath().start();
24+
this.plugin.player_camera_handler.put(((Player) sender).getUniqueId(), new CameraHandler(plugin, (Player) sender, camera_name).generatePath().start());
2525
} else {
2626
sender.sendMessage(plugin.getPluginChatPrefix() + ChatColor.RED + "No camera selected!");
2727
sender.sendMessage(plugin.getPluginChatPrefix() + ChatColor.GREEN + "Select a camera by doing: /" + commandLabel + " select <name>");
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package nl.svenar.powercamera.commands;
2+
3+
import org.bukkit.ChatColor;
4+
import org.bukkit.command.Command;
5+
import org.bukkit.command.CommandSender;
6+
import org.bukkit.entity.Player;
7+
8+
import nl.svenar.powercamera.PowerCamera;
9+
10+
public class cmd_stop extends PowerCameraCommand {
11+
12+
public cmd_stop(PowerCamera plugin, String command_name) {
13+
super(plugin, command_name, COMMAND_EXECUTOR.PLAYER);
14+
}
15+
16+
@Override
17+
public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args) {
18+
if (sender instanceof Player) {
19+
if (sender.hasPermission("powercamera.cmd.stop")) {
20+
if (this.plugin.player_camera_mode.get((Player) sender) != null && this.plugin.player_camera_mode.get((Player) sender) != PowerCamera.CAMERA_MODE.NONE && this.plugin.player_camera_handler.get(((Player) sender).getUniqueId()) != null) {
21+
this.plugin.player_camera_handler.get(((Player) sender).getUniqueId()).stop();
22+
sender.sendMessage(plugin.getPluginChatPrefix() + ChatColor.GREEN + "Current camera stopped");
23+
} else {
24+
sender.sendMessage(plugin.getPluginChatPrefix() + ChatColor.RED + "No camera active!");
25+
}
26+
} else {
27+
sender.sendMessage(plugin.getPluginChatPrefix() + ChatColor.DARK_RED + "You do not have permission to execute this command");
28+
}
29+
}
30+
31+
return false;
32+
}
33+
}

0 commit comments

Comments
 (0)