Compare commits
2 Commits
v1.0.2-alp
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5998e35be2 | ||
|
|
d8ef58d25b |
@ -5,7 +5,7 @@ plugins {
|
|||||||
}
|
}
|
||||||
|
|
||||||
group = "com.rpserver"
|
group = "com.rpserver"
|
||||||
version = "1.0.2-alpha"
|
version = "1.0.3-alpha"
|
||||||
|
|
||||||
java {
|
java {
|
||||||
toolchain.languageVersion.set(JavaLanguageVersion.of(21))
|
toolchain.languageVersion.set(JavaLanguageVersion.of(21))
|
||||||
|
|||||||
@ -7,6 +7,7 @@ import org.bukkit.event.EventPriority;
|
|||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
import org.bukkit.event.player.PlayerCommandPreprocessEvent;
|
import org.bukkit.event.player.PlayerCommandPreprocessEvent;
|
||||||
import org.bukkit.event.player.PlayerInteractEvent;
|
import org.bukkit.event.player.PlayerInteractEvent;
|
||||||
|
import org.bukkit.event.player.PlayerJoinEvent;
|
||||||
import org.bukkit.event.player.PlayerQuitEvent;
|
import org.bukkit.event.player.PlayerQuitEvent;
|
||||||
import org.bukkit.event.player.PlayerDropItemEvent;
|
import org.bukkit.event.player.PlayerDropItemEvent;
|
||||||
import org.bukkit.event.inventory.InventoryOpenEvent;
|
import org.bukkit.event.inventory.InventoryOpenEvent;
|
||||||
@ -32,16 +33,23 @@ public class CuffListener implements Listener {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void onPlayerJoin(PlayerJoinEvent event) {
|
||||||
|
Player player = event.getPlayer();
|
||||||
|
|
||||||
|
// Восстанавливаем эффект наручников при входе
|
||||||
|
plugin.getCuffManager().applyEffectOnJoin(player);
|
||||||
|
|
||||||
|
if (plugin.getCuffManager().isCuffed(player)) {
|
||||||
|
plugin.getMessageManager().send(player, "cuff-target");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
public void onPlayerQuit(PlayerQuitEvent event) {
|
public void onPlayerQuit(PlayerQuitEvent event) {
|
||||||
Player player = event.getPlayer();
|
Player player = event.getPlayer();
|
||||||
|
|
||||||
// Снимаем наручники при выходе
|
// Разрываем связь конвоирования (но наручники остаются)
|
||||||
if (plugin.getCuffManager().isCuffed(player)) {
|
|
||||||
plugin.getCuffManager().uncuff(player);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Разрываем связь конвоирования
|
|
||||||
plugin.getLeadManager().unlead(player);
|
plugin.getLeadManager().unlead(player);
|
||||||
plugin.getLeadManager().unleadByLeader(player);
|
plugin.getLeadManager().unleadByLeader(player);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,22 +1,31 @@
|
|||||||
package com.rpserver.jailplugin.managers;
|
package com.rpserver.jailplugin.managers;
|
||||||
|
|
||||||
import com.rpserver.jailplugin.JailPlugin;
|
import com.rpserver.jailplugin.JailPlugin;
|
||||||
|
import org.bukkit.configuration.file.FileConfiguration;
|
||||||
|
import org.bukkit.configuration.file.YamlConfiguration;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.potion.PotionEffect;
|
import org.bukkit.potion.PotionEffect;
|
||||||
import org.bukkit.potion.PotionEffectType;
|
import org.bukkit.potion.PotionEffectType;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.IOException;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
public class CuffManager {
|
public class CuffManager {
|
||||||
|
|
||||||
private final JailPlugin plugin;
|
private final JailPlugin plugin;
|
||||||
private final Set<UUID> cuffedPlayers;
|
private final Set<UUID> cuffedPlayers;
|
||||||
|
private File dataFile;
|
||||||
|
private FileConfiguration dataConfig;
|
||||||
|
|
||||||
public CuffManager(JailPlugin plugin) {
|
public CuffManager(JailPlugin plugin) {
|
||||||
this.plugin = plugin;
|
this.plugin = plugin;
|
||||||
this.cuffedPlayers = new HashSet<>();
|
this.cuffedPlayers = new HashSet<>();
|
||||||
|
loadData();
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isCuffed(Player player) {
|
public boolean isCuffed(Player player) {
|
||||||
@ -30,11 +39,13 @@ public class CuffManager {
|
|||||||
public void cuff(Player player) {
|
public void cuff(Player player) {
|
||||||
cuffedPlayers.add(player.getUniqueId());
|
cuffedPlayers.add(player.getUniqueId());
|
||||||
applySlowEffect(player);
|
applySlowEffect(player);
|
||||||
|
saveData();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void uncuff(Player player) {
|
public void uncuff(Player player) {
|
||||||
cuffedPlayers.remove(player.getUniqueId());
|
cuffedPlayers.remove(player.getUniqueId());
|
||||||
removeSlowEffect(player);
|
removeSlowEffect(player);
|
||||||
|
saveData();
|
||||||
|
|
||||||
plugin.getLeadManager().unlead(player);
|
plugin.getLeadManager().unlead(player);
|
||||||
}
|
}
|
||||||
@ -78,4 +89,51 @@ public class CuffManager {
|
|||||||
public Set<UUID> getCuffedPlayers() {
|
public Set<UUID> getCuffedPlayers() {
|
||||||
return new HashSet<>(cuffedPlayers);
|
return new HashSet<>(cuffedPlayers);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void applyEffectOnJoin(Player player) {
|
||||||
|
if (isCuffed(player)) {
|
||||||
|
applySlowEffect(player);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void loadData() {
|
||||||
|
dataFile = new File(plugin.getDataFolder(), "cuffed.yml");
|
||||||
|
|
||||||
|
if (!dataFile.exists()) {
|
||||||
|
try {
|
||||||
|
plugin.getDataFolder().mkdirs();
|
||||||
|
dataFile.createNewFile();
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
dataConfig = YamlConfiguration.loadConfiguration(dataFile);
|
||||||
|
|
||||||
|
if (dataConfig.contains("cuffed-players")) {
|
||||||
|
List<String> uuidStrings = dataConfig.getStringList("cuffed-players");
|
||||||
|
for (String uuidString : uuidStrings) {
|
||||||
|
try {
|
||||||
|
UUID uuid = UUID.fromString(uuidString);
|
||||||
|
cuffedPlayers.add(uuid);
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void saveData() {
|
||||||
|
List<String> uuidStrings = cuffedPlayers.stream()
|
||||||
|
.map(UUID::toString)
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
dataConfig.set("cuffed-players", uuidStrings);
|
||||||
|
|
||||||
|
try {
|
||||||
|
dataConfig.save(dataFile);
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user