存档插件 (SaveBasic)
package me.Kruciial.save;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.PlayerDeathEvent;
import org.bukkit.event.player.PlayerQuitEvent;
import org.bukkit.event.player.PlayerRespawnEvent;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.PlayerInventory;
import org.bukkit.plugin.PluginManager;
import org.bukkit.plugin.java.JavaPlugin;
public class Main extends JavaPlugin implements Listener, CommandExecutor {
public Map inventories = new HashMap();
public Map armor = new HashMap();
public void onEnable() {
Bukkit.getPluginManager().registerEvents(this, this);
}
public void onDisable() {}
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
if (!(sender instanceof Player)) {
sender.sendMessage("You have to be a player to perform this command!");
return false;
}
Player p = (Player)sender;
if (label.equalsIgnoreCase("save")) {
this.inventories.put(p.getUniqueId(), p.getInventory().getContents());
this.armor.put(p.getUniqueId(), p.getInventory().getArmorContents());
msg(p, new String[] { "&7? &6FFA &7? &6Your inventory has been saved until you logout!" });
}
return false;
}
@EventHandler
public void onQuit(PlayerQuitEvent e) {
Player p = e.getPlayer();
if (this.inventories.containsKey(p.getUniqueId())) {
this.inventories.remove(p.getUniqueId());
}
if (this.armor.containsKey(p.getUniqueId())) {
this.armor.remove(p.getUniqueId());
}
}
@EventHandler
public void onDeath(PlayerDeathEvent e) {
Player p = e.getEntity();
if (this.inventories.containsKey(p.getUniqueId()) || this.armor.containsKey(p.getUniqueId())) {
e.getDrops().clear();
}
}
@EventHandler
public void onRespawn(PlayerRespawnEvent e) {
Player p = e.getPlayer();
if (this.inventories.containsKey(e.getPlayer().getUniqueId())) {
p.getInventory().setContents((ItemStack[])this.inventories.get(p.getUniqueId()));
}
if (this.armor.containsKey(p.getUniqueId())) {
p.getInventory().setArmorContents((ItemStack[])this.armor.get(p.getUniqueId()));
}
}
public void msg(Player p, String... msg) {
String[] arrayOfString;
int j = (arrayOfString = msg).length;
for (int i = 0; i < j; i++) {
String s = arrayOfString[i];
p.sendMessage(color(s));
}
}
public boolean isInt(String s) {
try {
Integer.parseInt(s);
return true;
} catch (Exception localException) {}
return false;
}
public String color(String s) {
return ChatColor.translateAlternateColorCodes('&', s);
}
}
1. 功能:SaveBasic是一个基本的插件,适用于自由对抗(FFA)服务器。其主要功能是允许玩家保存他们的物品栏和装备,并在退出游戏时自动保存,以便下次登录时恢复。
2. 配置:无需额外配置,只需将插件放入服务器插件文件夹中即可。
3. 用法:玩家可以使用命令“/save”来保存他们当前的物品栏和装备状态。保存后,这些物品将保留在他们的账户中,直到他们下次登录服务器。插件会在保存成功时向玩家发送确认消息。
4. 权限:此插件不涉及特定权限,任何玩家都可以使用“/save”命令来保存他们的物品栏和装备状态。
希望这款简单的插件能为您的服务器增添一些便利,祝您使用愉快!
收录