- Баллы
- 123
.
Последнее редактирование:
Следуйте инструкциям в видео ниже, чтобы узнать, как установить наш сайт как веб-приложение на главный экран вашего устройства.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
Вы пытаетесь нулевым локациям задать координаты, надо использовать new Location(world, x, y ,z)И снова здравствуйте нормальные девелоперы
Я тут решил разработать плагин, как всегда нужна помощь.
Суть в том что не работает загрузка данных из конфигов.
(Сообщение отладки не выводиться).
Не работает все именно после стоп-запуск.
Все остальное просьба не гадить, как умею так и пишу
JavaScript:package ru.roboman.plugin.WarForFlag; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.Location; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.block.BlockPlaceEvent; import org.bukkit.plugin.java.JavaPlugin; import java.util.ArrayList; import java.util.Collections; public class Solution extends JavaPlugin implements Listener { protected FileConfiguration config; private Location locationOfRedFlag; private Location locationOfBlueFlag; private Location locationOfGreenFlag; private Location locationOfYellowFlag; @Override public void onEnable() { getServer().getPluginManager().registerEvents(this, this); config = getConfig(); locationOfRedFlag.setX((Double) config.get("Location.RedFlag.X")); locationOfRedFlag.setY((Double) config.get("Location.RedFlag.Y")); locationOfRedFlag.setZ((Double) config.get("Location.RedFlag.Z")); locationOfRedFlag.getBlock().setTypeIdAndData(35, (byte) 14, true); locationOfBlueFlag.setX((Double) config.get("Location.BlueFlag.X")); locationOfBlueFlag.setY((Double) config.get("Location.BlueFlag.Y")); locationOfBlueFlag.setZ((Double) config.get("Location.BlueFlag.Z")); locationOfBlueFlag.getBlock().setTypeIdAndData(35, (byte) 11, true); locationOfGreenFlag.setX((Double) config.get("Location.GreenFlag.X")); locationOfGreenFlag.setY((Double) config.get("Location.GreenFlag.Y")); locationOfGreenFlag.setZ((Double) config.get("Location.GreenFlag.Z")); locationOfGreenFlag.getBlock().setTypeIdAndData(35, (byte) 5, true); locationOfYellowFlag.setX((Double) config.get("Location.YellowFlag.X")); locationOfYellowFlag.setY((Double) config.get("Location.YellowFlag.Y")); locationOfYellowFlag.setZ((Double) config.get("Location.YellowFlag.Z")); locationOfYellowFlag.getBlock().setTypeIdAndData(35, (byte) 4, true); }
Т.Е. вот это убрать?... И как-то по другому делать?..Вы пытаетесь нулевым локациям задать координаты, надо использовать new Location(world, x, y ,z)
private Location locationOfRedFlag;
private Location locationOfBlueFlag;
private Location locationOfGreenFlag;
private Location locationOfYellowFlag;
Заменить строки setX, setY, setZ на строку new Location(world, x, y, z)Т.Е. вот это убрать?... И как-то по другому делать?..
JavaScript:private Location locationOfRedFlag; private Location locationOfBlueFlag; private Location locationOfGreenFlag; private Location locationOfYellowFlag;
Кажись понял, но вечером кодить не охота, завтра проверю)Заменить строки setX, setY, setZ на строку new Location(world, x, y, z)
P.S. world можно взять методом Bukkit.getWorld(name)
Спасибо. ЗароботалооооЗаменить строки setX, setY, setZ на строку new Location(world, x, y, z)
P.S. world можно взять методом Bukkit.getWorld(name)

package ru.roboman.plugin.WarForFlag;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Location;
import org.bukkit.World;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.BlockBreakEvent;
import org.bukkit.event.block.BlockPlaceEvent;
import org.bukkit.plugin.java.JavaPlugin;
import java.util.ArrayList;
import java.util.Collections;
public class Solution extends JavaPlugin implements Listener
{
protected FileConfiguration config;
private Location locationOfRedFlag;
private Location locationOfBlueFlag;
private Location locationOfGreenFlag;
private Location locationOfYellowFlag;
private int WinOfRed = 0;
private int WinOfBlue = 0;
private int WinOfGreen = 0;
private int WinOfYellow = 0;
String plugin = ChatColor.translateAlternateColorCodes('&', "&a&l[&c&lWar&1&lFor&2&lFlag&a&l] ");
@Override
public void onEnable()
{
getServer().getPluginManager().registerEvents(this, this);
config = getConfig();
locationOfRedFlag = new Location((World) Bukkit.getWorld((String) config.get("Location.RedFlag.World")), (Double) config.get("Location.RedFlag.X"), (Double) config.get("Location.RedFlag.Y"), (Double) config.get("Location.RedFlag.Z"));
locationOfRedFlag.getBlock().setTypeIdAndData(35, (byte) 14, true);
locationOfBlueFlag = new Location((World) Bukkit.getWorld((String) config.get("Location.BlueFlag.World")), (Double) config.get("Location.BlueFlag.X"), (Double) config.get("Location.BlueFlag.Y"), (Double) config.get("Location.BlueFlag.Z"));
locationOfBlueFlag.getBlock().setTypeIdAndData(35, (byte) 11, true);
locationOfGreenFlag = new Location((World) Bukkit.getWorld((String) config.get("Location.GreenFlag.World")), (Double) config.get("Location.GreenFlag.X"), (Double) config.get("Location.GreenFlag.Y"), (Double) config.get("Location.GreenFlag.Z"));
locationOfGreenFlag.getBlock().setTypeIdAndData(35, (byte) 5, true);
locationOfYellowFlag = new Location((World) Bukkit.getWorld((String) config.get("Location.YellowFlag.World")), (Double) config.get("Location.YellowFlag.X"), (Double) config.get("Location.YellowFlag.Y"), (Double) config.get("Location.YellowFlag.Z"));
locationOfYellowFlag.getBlock().setTypeIdAndData(35, (byte) 4, true);
}
@Override
public void onDisable()
{
saveConfig();
}
public boolean isTeamString(String team)
{
ArrayList<String> list = new ArrayList<String>();
Collections.addAll(list, "red", "blue", "green", "yellow");
for (int i = 0; i < list.size(); i++)
{
if (team.equalsIgnoreCase(list.get(i)))
{
return true;
}
}
return false;
}
public int getRedWins() { return WinOfRed; }
public int getBlueWins() { return WinOfBlue; }
public int getGreenWins(){ return WinOfGreen; }
public int getYellowWins() { return WinOfYellow; }
public Location getLocationOfRedFlag() { return locationOfRedFlag; }
public Location getLocationOfBlueFlag() { return locationOfBlueFlag; }
public Location getLocationOfGreenFlag() { return locationOfGreenFlag; }
public Location getLocationOfYellowFlag() { return locationOfYellowFlag; }
public void setLocationOfRedFlag(Location location) { locationOfRedFlag = location; }
public void setLocationOfBlueFlag(Location location) { locationOfBlueFlag = location; }
public void setLocationOfGreenFlag(Location location) { locationOfGreenFlag = location; }
public void setLocationOfYellowFlag(Location location) { locationOfYellowFlag = location; }
@EventHandler
public void onFlagPlaced(BlockPlaceEvent bpe)
{
Location locOfCheck = bpe.getBlock().getLocation();
locOfCheck.setY(locOfCheck.getY()-1);
if (locationOfRedFlag.equals(locOfCheck))
{
Bukkit.broadcastMessage(ChatColor.translateAlternateColorCodes('&', plugin + "&aКрасная команда принесла флаг на свою базу."));
WinOfRed++;
}
if (locationOfBlueFlag.equals(locOfCheck))
{
Bukkit.broadcastMessage(ChatColor.translateAlternateColorCodes('&', plugin + "&aСиняя команда принесла флаг на свою базу."));
WinOfBlue++;
}
if (locationOfGreenFlag.equals(locOfCheck))
{
Bukkit.broadcastMessage(ChatColor.translateAlternateColorCodes('&', plugin + "&aЗеленая команда принесла флаг на свою базу."));
WinOfGreen++;
}
if (locationOfYellowFlag.equals(locOfCheck))
{
Bukkit.broadcastMessage(ChatColor.translateAlternateColorCodes('&', plugin + "&aЖелтая команда принесла флаг на свою базу."));
WinOfYellow++;
}
}
//Туто надо помочь!)
@EventHandler
public void onFlagBreaked(BlockBreakEvent bbe)
{
if (bbe.getBlock().getLocation().equals(locationOfRedFlag) && !locationOfRedFlag.equals(null) || bbe.getBlock().getLocation().equals(locationOfBlueFlag) && !locationOfBlueFlag.equals(null) || bbe.getBlock().getLocation().equals(locationOfGreenFlag) && !locationOfGreenFlag.equals(null)|| bbe.getBlock().getLocation().equals(locationOfYellowFlag) && !locationOfYellowFlag.equals(null));
{
bbe.setCancelled(true);
bbe.getBlock().breakNaturally();
if (bbe.getBlock().getLocation().equals(locationOfRedFlag)) bbe.getBlock().setTypeIdAndData(35, (byte) 14, true);
if (bbe.getBlock().getLocation().equals(locationOfBlueFlag)) bbe.getBlock().setTypeIdAndData(35, (byte) 11, true);
if (bbe.getBlock().getLocation().equals(locationOfGreenFlag)) bbe.getBlock().setTypeIdAndData(35, (byte) 5, true);
if (bbe.getBlock().getLocation().equals(locationOfYellowFlag)) bbe.getBlock().setTypeIdAndData(35, (byte) 4, true);
}
}
@Override
public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args)
{
Player player = null;
if (sender instanceof Player)
{
player = (Player) sender;
if (cmd.getName().equalsIgnoreCase("WFF"))
{
if (args.length == 0)
{
player.sendMessage(ChatColor.translateAlternateColorCodes('&', plugin + "&aИспользование команды&0: &5/WFF <команда> <аргументы>"));
}
else
{
if (args.length == 1 && isTeamString(args[0]))
{
if (args[0].equalsIgnoreCase("red"))
{
Bukkit.broadcastMessage(ChatColor.translateAlternateColorCodes('&', plugin + "&aФлагов забрано&a: &c" + WinOfRed));
}
if (args[0].equalsIgnoreCase("blue"))
{
Bukkit.broadcastMessage(ChatColor.translateAlternateColorCodes('&', plugin + "&aФлагов забрано&a: &c" + WinOfBlue));
}
if (args[0].equalsIgnoreCase("green"))
{
Bukkit.broadcastMessage(ChatColor.translateAlternateColorCodes('&', plugin + "&aФлагов забрано&a: &c" + WinOfGreen));
}
if (args[0].equalsIgnoreCase("yellow"))
{
Bukkit.broadcastMessage(ChatColor.translateAlternateColorCodes('&', plugin + "&aФлагов забрано&a: &c" + WinOfYellow));
}
}
if (args.length == 1 && args[0].equals("stats"))
{
Bukkit.broadcastMessage(ChatColor.translateAlternateColorCodes('&', plugin + "&aСтатистика: красная команда: [" + WinOfRed + "&a], синяя: [" + WinOfBlue + "&a], зеленая: [" + WinOfGreen + "&a], желтая: [" + WinOfYellow + "&a]."));
}
if (args.length == 2 && isTeamString(args[0]) && player.hasPermission("warforflag.admin"))
{
if (args[1].equalsIgnoreCase("setFlag"))
{
if (args[0].equalsIgnoreCase("red"))
{
player.getTargetBlock(null, 32).setTypeIdAndData(35, (byte) 14, true);
locationOfRedFlag = player.getTargetBlock(null, 32).getLocation();
config.set("Location.RedFlag.X", player.getTargetBlock(null, 32).getLocation().getX());
config.set("Location.RedFlag.Y", player.getTargetBlock(null, 32).getLocation().getY());
config.set("Location.RedFlag.Z", player.getTargetBlock(null, 32).getLocation().getZ());
config.set("Location.RedFlag.World", player.getWorld().getName());
}
if (args[0].equalsIgnoreCase("blue"))
{
player.getTargetBlock(null, 32).setTypeIdAndData(35, (byte) 11, true);
locationOfBlueFlag = player.getTargetBlock(null, 32).getLocation();
config.set("Location.BlueFlag.X", player.getTargetBlock(null, 32).getLocation().getX());
config.set("Location.BlueFlag.Y", player.getTargetBlock(null, 32).getLocation().getY());
config.set("Location.BlueFlag.Z", player.getTargetBlock(null, 32).getLocation().getZ());
config.set("Location.BlueFlag.World", player.getWorld().getName());
}
if (args[0].equalsIgnoreCase("green"))
{
player.getTargetBlock(null, 32).setTypeIdAndData(35, (byte) 5, true);
locationOfGreenFlag = player.getTargetBlock(null, 32).getLocation();
config.set("Location.GreenFlag.X", player.getTargetBlock(null, 32).getLocation().getX());
config.set("Location.GreenFlag.Y", player.getTargetBlock(null, 32).getLocation().getY());
config.set("Location.GreenFlag.Z", player.getTargetBlock(null, 32).getLocation().getZ());
config.set("Location.GreenFlag.World", player.getWorld().getName());
}
if (args[0].equalsIgnoreCase("yellow"))
{
player.getTargetBlock(null, 32).setTypeIdAndData(35, (byte) 4, true);
locationOfYellowFlag = player.getTargetBlock(null, 32).getLocation();
config.set("Location.YellowFlag.X", player.getTargetBlock(null, 32).getLocation().getX());
config.set("Location.YellowFlag.Y", player.getTargetBlock(null, 32).getLocation().getY());
config.set("Location.YellowFlag.Z", player.getTargetBlock(null, 32).getLocation().getZ());
config.set("Location.YellowFlag.World", player.getWorld().getName());
}
saveConfig();
}
}
}
}
return true;
}
else
{
return false;
}
}
}
Ну а... Как сравнивать локации?...equals(locationOfRedFlag)
используйте equals только для строк
@Mr_Grom врет, у класса Location переопределен метод equals значит его можно так сравнивать. Тут дело в чем-то другом...Ну а... Как сравнивать локации?..
Действительно бред написал, извиняюсь.@Mr_Grom врет, у класса Location переопределен метод equals значит его можно так сравнивать. Тут дело в чем-то другом...
bbe.getBlock().getLocation().equals(locationOfRedFlag)&&!locationOfRedFlag.equals(null)@Mr_Grom врет, у класса Location переопределен метод equals значит его можно так сравнивать. Тут дело в чем-то другом...
И бессмысленная. В методе equals уже есть проверка на null, и если null, то возвращает falsebbe.getBlock().getLocation().equals(locationOfRedFlag)&&!locationOfRedFlag.equals(null)
пока что могу сказать что проверка на нулл ой какая хреновая )
Ок, ок, ок, убрал проверку на null, я ее добавил после того как возник баг описанный выше, думал поможет...И бессмысленная. В методе equals уже есть проверка на null, и если null, то возвращает false
@EventHandler
private void onFlagBreak(BlockBreakEvent e) {
Block b = e.getBlock();
if (locationOfRedFlag == null) {
Bukkit.getLogger().info("locationOfRedFlag is null!");
}
if (b.getLocation().equals(locationOfRedFlag)) {
e.setCancelled(true);
b.setType(Material.AIR);
e.getPlayer().getInventory().setHelmet(new ItemStack(Material.WOOL));
}
//TODO: more else
}
Тут вроде почти тоже самое, только с блоком на голове..попробуй...Java:@EventHandler private void onFlagBreak(BlockBreakEvent e) { Block b = e.getBlock(); if (locationOfRedFlag == null) { Bukkit.getLogger().info("locationOfRedFlag is null!"); } if (b.getLocation().equals(locationOfRedFlag)) { e.setCancelled(true); b.setType(Material.AIR); e.getPlayer().getInventory().setHelmet(new ItemStack(Material.WOOL)); } //TODO: more else }
У тебя написно что-то странное, двойная проверка блока + null через equals сравниваешь. По сути я убрал у тебя лишнии действияТут вроде почти тоже самое, только с блоком на голове..
null я уже убрал (выше писал). Где двойная проверка не понял..У тебя написно что-то странное, двойная проверка блока + null через equals сравниваешь. По сути я убрал у тебя лишнии действия
null я уже убрал (выше писал). Где двойная проверка не понял..
//Туто надо помочь!)
@EventHandler
public void onFlagBreaked(BlockBreakEvent bbe)
{
if (bbe.getBlock().getLocation().equals(locationOfRedFlag) ....);
{
bbe.setCancelled(true);
bbe.getBlock().breakNaturally();
if (bbe.getBlock().getLocation().equals(locationOfRedFlag)) bbe.getBlock().setTypeIdAndData(35, (byte) 14, true); ....
[/code]
@EventHandler
public void onFlagBreaked(BlockBreakEvent bbe)
{
if (bbe.getBlock().getLocation().equals(locationOfRedFlag)|| bbe.getBlock().getLocation().equals(locationOfBlueFlag)|| bbe.getBlock().getLocation().equals(locationOfGreenFlag)|| bbe.getBlock().getLocation().equals(locationOfYellowFlag));
{
bbe.setCancelled(true);
bbe.getBlock().breakNaturally();
if (bbe.getBlock().getLocation().equals(locationOfRedFlag)) bbe.getBlock().setTypeIdAndData(35, (byte) 14, true);
if (bbe.getBlock().getLocation().equals(locationOfBlueFlag)) bbe.getBlock().setTypeIdAndData(35, (byte) 11, true);
if (bbe.getBlock().getLocation().equals(locationOfGreenFlag)) bbe.getBlock().setTypeIdAndData(35, (byte) 5, true);
if (bbe.getBlock().getLocation().equals(locationOfYellowFlag)) bbe.getBlock().setTypeIdAndData(35, (byte) 4, true);
}
}
Бред конечно, но попробую!)Попробуйте сравнивать координаты блоков, а не их локации.
Нет, опять реагирует на все блоки..Попробуйте сравнивать координаты блоков, а не их локации.
Будет звучать довольно странно, но может сработать:Бред конечно, но попробую!)
Нет, опять реагирует на все блоки..
Не прощла(Будет звучать довольно странно, но может сработать:
Сделай все поля с location статичными(static)
package ru.roboman.plugin.WarForFlag;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Location;
import org.bukkit.World;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.BlockBreakEvent;
import org.bukkit.event.block.BlockPlaceEvent;
import org.bukkit.plugin.java.JavaPlugin;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
public class Solution extends JavaPlugin implements Listener
{
protected FileConfiguration config;
private HashSet<Byte> unSeenBlocks = new HashSet<Byte>();
private static Location locationOfRedFlag = null;
private static Location locationOfBlueFlag = null;
private static Location locationOfGreenFlag = null;
private static Location locationOfYellowFlag = null;
private int WinOfRed = 0;
private int WinOfBlue = 0;
private int WinOfGreen = 0;
private int WinOfYellow = 0;
private String plugin = ChatColor.translateAlternateColorCodes('&', "&a&l[&c&lWar&1&lFor&2&lFlag&a&l] ");
@Override
public void onEnable()
{
Collections.addAll(unSeenBlocks, (byte) 8, (byte) 9, (byte) 10, (byte) 11);
getServer().getPluginManager().registerEvents(this, this);
config = getConfig();
locationOfRedFlag = new Location(Bukkit.getWorld((String) config.get("Location.RedFlag.World")), (Double) config.get("Location.RedFlag.X"), (Double) config.get("Location.RedFlag.Y"), (Double) config.get("Location.RedFlag.Z"));
locationOfRedFlag.getBlock().setTypeIdAndData(35, (byte) 14, true);
locationOfBlueFlag = new Location(Bukkit.getWorld((String) config.get("Location.BlueFlag.World")), (Double) config.get("Location.BlueFlag.X"), (Double) config.get("Location.BlueFlag.Y"), (Double) config.get("Location.BlueFlag.Z"));
locationOfBlueFlag.getBlock().setTypeIdAndData(35, (byte) 11, true);
locationOfGreenFlag = new Location(Bukkit.getWorld((String) config.get("Location.GreenFlag.World")), (Double) config.get("Location.GreenFlag.X"), (Double) config.get("Location.GreenFlag.Y"), (Double) config.get("Location.GreenFlag.Z"));
locationOfGreenFlag.getBlock().setTypeIdAndData(35, (byte) 5, true);
locationOfYellowFlag = new Location(Bukkit.getWorld((String) config.get("Location.YellowFlag.World")), (Double) config.get("Location.YellowFlag.X"), (Double) config.get("Location.YellowFlag.Y"), (Double) config.get("Location.YellowFlag.Z"));
locationOfYellowFlag.getBlock().setTypeIdAndData(35, (byte) 4, true);
}
@Override
public void onDisable()
{
saveConfig();
}
public boolean isTeamString(String team)
{
ArrayList<String> list = new ArrayList<String>();
Collections.addAll(list, "red", "blue", "green", "yellow");
for (int i = 0; i < list.size(); i++)
{
if (team.equalsIgnoreCase(list.get(i)))
{
return true;
}
}
return false;
}
public int getRedWins() { return WinOfRed; }
public int getBlueWins() { return WinOfBlue; }
public int getGreenWins(){ return WinOfGreen; }
public int getYellowWins() { return WinOfYellow; }
public Location getLocationOfRedFlag() { return locationOfRedFlag; }
public Location getLocationOfBlueFlag() { return locationOfBlueFlag; }
public Location getLocationOfGreenFlag() { return locationOfGreenFlag; }
public Location getLocationOfYellowFlag() { return locationOfYellowFlag; }
public void setLocationOfRedFlag(Location location) { locationOfRedFlag = location; }
public void setLocationOfBlueFlag(Location location) { locationOfBlueFlag = location; }
public void setLocationOfGreenFlag(Location location) { locationOfGreenFlag = location; }
public void setLocationOfYellowFlag(Location location) { locationOfYellowFlag = location; }
@EventHandler
public void onFlagPlaced(BlockPlaceEvent bpe)
{
Location locOfCheck = bpe.getBlock().getLocation();
locOfCheck.setY(locOfCheck.getY()-1);
if (locationOfRedFlag.equals(locOfCheck))
{
Bukkit.broadcastMessage(ChatColor.translateAlternateColorCodes('&', plugin + "&aКрасная команда принесла флаг на свою базу."));
WinOfRed++;
}
if (locationOfBlueFlag.equals(locOfCheck))
{
Bukkit.broadcastMessage(ChatColor.translateAlternateColorCodes('&', plugin + "&aСиняя команда принесла флаг на свою базу."));
WinOfBlue++;
}
if (locationOfGreenFlag.equals(locOfCheck))
{
Bukkit.broadcastMessage(ChatColor.translateAlternateColorCodes('&', plugin + "&aЗеленая команда принесла флаг на свою базу."));
WinOfGreen++;
}
if (locationOfYellowFlag.equals(locOfCheck))
{
Bukkit.broadcastMessage(ChatColor.translateAlternateColorCodes('&', plugin + "&aЖелтая команда принесла флаг на свою базу."));
WinOfYellow++;
}
}
@EventHandler
public void onFlagBreaked(BlockBreakEvent bbe)
{
if (bbe.getBlock().getLocation().equals(locationOfRedFlag)|| bbe.getBlock().getLocation().equals(locationOfBlueFlag)|| bbe.getBlock().getLocation().equals(locationOfGreenFlag)|| bbe.getBlock().getLocation().equals(locationOfYellowFlag));
{
bbe.setCancelled(true);
bbe.getBlock().breakNaturally();
if (bbe.getBlock().getLocation().equals(locationOfRedFlag)) bbe.getBlock().setTypeIdAndData(35, (byte) 14, true);
if (bbe.getBlock().getLocation().equals(locationOfBlueFlag)) bbe.getBlock().setTypeIdAndData(35, (byte) 11, true);
if (bbe.getBlock().getLocation().equals(locationOfGreenFlag)) bbe.getBlock().setTypeIdAndData(35, (byte) 5, true);
if (bbe.getBlock().getLocation().equals(locationOfYellowFlag)) bbe.getBlock().setTypeIdAndData(35, (byte) 4, true);
}
}
@Override
public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args)
{
Player player = null;
if (sender instanceof Player)
{
player = (Player) sender;
if (cmd.getName().equalsIgnoreCase("WFF"))
{
if (args.length == 0)
{
player.sendMessage(ChatColor.translateAlternateColorCodes('&', plugin + "&aИспользование команды&0: &5/WFF <команда> <аргументы>"));
}
else
{
if (args.length == 1 && isTeamString(args[0]))
{
if (args[0].equalsIgnoreCase("red"))
{
Bukkit.broadcastMessage(ChatColor.translateAlternateColorCodes('&', plugin + "&aФлагов забрано&a: &c" + WinOfRed));
}
if (args[0].equalsIgnoreCase("blue"))
{
Bukkit.broadcastMessage(ChatColor.translateAlternateColorCodes('&', plugin + "&aФлагов забрано&a: &c" + WinOfBlue));
}
if (args[0].equalsIgnoreCase("green"))
{
Bukkit.broadcastMessage(ChatColor.translateAlternateColorCodes('&', plugin + "&aФлагов забрано&a: &c" + WinOfGreen));
}
if (args[0].equalsIgnoreCase("yellow"))
{
Bukkit.broadcastMessage(ChatColor.translateAlternateColorCodes('&', plugin + "&aФлагов забрано&a: &c" + WinOfYellow));
}
}
if (args.length == 1 && args[0].equals("stats"))
{
Bukkit.broadcastMessage(ChatColor.translateAlternateColorCodes('&', plugin + "&aСтатистика: красная команда: [" + WinOfRed + "&a], синяя: [" + WinOfBlue + "&a], зеленая: [" + WinOfGreen + "&a], желтая: [" + WinOfYellow + "&a]."));
}
if (args.length == 2 && isTeamString(args[0]) && player.hasPermission("warforflag.admin"))
{
if (args[1].equalsIgnoreCase("setFlag"))
{
if (args[0].equalsIgnoreCase("red"))
{
player.getTargetBlock(unSeenBlocks, 32).setTypeIdAndData(35, (byte) 14, true);
locationOfRedFlag = player.getTargetBlock(unSeenBlocks, 32).getLocation();
config.set("Location.RedFlag.X", player.getTargetBlock(unSeenBlocks, 32).getLocation().getX());
config.set("Location.RedFlag.Y", player.getTargetBlock(unSeenBlocks, 32).getLocation().getY());
config.set("Location.RedFlag.Z", player.getTargetBlock(unSeenBlocks, 32).getLocation().getZ());
config.set("Location.RedFlag.World", player.getWorld().getName());
}
if (args[0].equalsIgnoreCase("blue"))
{
player.getTargetBlock(unSeenBlocks, 32).setTypeIdAndData(35, (byte) 11, true);
locationOfBlueFlag = player.getTargetBlock(unSeenBlocks, 32).getLocation();
config.set("Location.BlueFlag.X", player.getTargetBlock(unSeenBlocks, 32).getLocation().getX());
config.set("Location.BlueFlag.Y", player.getTargetBlock(unSeenBlocks, 32).getLocation().getY());
config.set("Location.BlueFlag.Z", player.getTargetBlock(unSeenBlocks, 32).getLocation().getZ());
config.set("Location.BlueFlag.World", player.getWorld().getName());
}
if (args[0].equalsIgnoreCase("green"))
{
player.getTargetBlock(unSeenBlocks, 32).setTypeIdAndData(35, (byte) 5, true);
locationOfGreenFlag = player.getTargetBlock(unSeenBlocks, 32).getLocation();
config.set("Location.GreenFlag.X", player.getTargetBlock(unSeenBlocks, 32).getLocation().getX());
config.set("Location.GreenFlag.Y", player.getTargetBlock(unSeenBlocks, 32).getLocation().getY());
config.set("Location.GreenFlag.Z", player.getTargetBlock(unSeenBlocks, 32).getLocation().getZ());
config.set("Location.GreenFlag.World", player.getWorld().getName());
}
if (args[0].equalsIgnoreCase("yellow"))
{
player.getTargetBlock(unSeenBlocks, 32).setTypeIdAndData(35, (byte) 4, true);
locationOfYellowFlag = player.getTargetBlock(unSeenBlocks, 32).getLocation();
config.set("Location.YellowFlag.X", player.getTargetBlock(unSeenBlocks, 32).getLocation().getX());
config.set("Location.YellowFlag.Y", player.getTargetBlock(unSeenBlocks, 32).getLocation().getY());
config.set("Location.YellowFlag.Z", player.getTargetBlock(unSeenBlocks, 32).getLocation().getZ());
config.set("Location.YellowFlag.World", player.getWorld().getName());
}
saveConfig();
}
}
}
}
return true;
}
else
{
return false;
}
}
}