mirror of
https://github.com/Aust1n46/VentureChat.git
synced 2025-05-23 02:19:05 +00:00
Added BungeeToggle Command
This commit is contained in:
parent
40ba992e2b
commit
d79bb350c3
@ -1,4 +1,4 @@
|
||||
name: VentureChat
|
||||
main: mineverse.Aust1n46.chat.bungee.MineverseChatBungee
|
||||
version: 2.12.0
|
||||
name: VentureChat
|
||||
main: mineverse.Aust1n46.chat.bungee.MineverseChatBungee
|
||||
version: 2.12.3
|
||||
author: Aust1n46
|
@ -193,7 +193,7 @@ venturegui:
|
||||
durability: 0
|
||||
text: '&cRemove Message'
|
||||
permission: 'removemessage'
|
||||
command: '/removemessage {hash} true'
|
||||
command: '/removemessage {channel} {hash} true'
|
||||
slot: 7
|
||||
|
||||
guiicon: '&c [✓]'
|
||||
|
@ -0,0 +1,42 @@
|
||||
package mineverse.Aust1n46.chat.command.chat;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import mineverse.Aust1n46.chat.MineverseChat;
|
||||
import mineverse.Aust1n46.chat.api.MineverseChatAPI;
|
||||
import mineverse.Aust1n46.chat.api.MineverseChatPlayer;
|
||||
import mineverse.Aust1n46.chat.command.MineverseCommand;
|
||||
|
||||
public class BungeeToggle extends MineverseCommand {
|
||||
private MineverseChat plugin;
|
||||
|
||||
public BungeeToggle(String name) {
|
||||
super(name);
|
||||
this.plugin = MineverseChat.getInstance();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void execute(CommandSender sender, String command, String[] args) {
|
||||
if(!(sender instanceof Player)) {
|
||||
plugin.getServer().getConsoleSender().sendMessage(ChatColor.RED + "This command must be run by a player.");
|
||||
return;
|
||||
}
|
||||
MineverseChatPlayer mcp = MineverseChatAPI.getMineverseChatPlayer((Player) sender);
|
||||
if(mcp.getPlayer().hasPermission("venturechat.bungeetoggle")) {
|
||||
if(!mcp.getBungeeToggle()) {
|
||||
mcp.setBungeeToggle(true);
|
||||
mcp.getPlayer().sendMessage(ChatColor.GOLD + "You are now receiving BungeeCord chat.");
|
||||
MineverseChat.getInstance().synchronize(mcp, true);
|
||||
return;
|
||||
}
|
||||
mcp.setBungeeToggle(false);
|
||||
mcp.getPlayer().sendMessage(ChatColor.GOLD + "You are now blocking BungeeCord chat.");
|
||||
MineverseChat.getInstance().synchronize(mcp, true);
|
||||
return;
|
||||
}
|
||||
mcp.getPlayer().sendMessage(ChatColor.RED + "You do not have permission for this command.");
|
||||
return;
|
||||
}
|
||||
}
|
@ -66,7 +66,7 @@ public class VentureChatGui extends MineverseCommand {
|
||||
Set<String> blockedCommands = new HashSet<String>();
|
||||
List<String> mail = new ArrayList<String>();
|
||||
String jsonFormat = "Default";
|
||||
target = new MineverseChatPlayer(uuid, name, current, ignores, listening, mutes, blockedCommands, mail, false, null, true, true, name, jsonFormat, false, false, false, true, true);
|
||||
target = new MineverseChatPlayer(uuid, name, current, ignores, listening, mutes, blockedCommands, mail, false, null, true, true, name, jsonFormat, false, false, false, true, true, true);
|
||||
MineverseChat.players.add(target);
|
||||
}
|
||||
if(MineverseChat.ccInfo.isChannel(args[1])) {
|
||||
|
@ -1,38 +1,38 @@
|
||||
package mineverse.Aust1n46.chat.command.chat;
|
||||
|
||||
import mineverse.Aust1n46.chat.MineverseChat;
|
||||
import mineverse.Aust1n46.chat.command.MineverseCommand;
|
||||
import net.md_5.bungee.api.chat.ClickEvent;
|
||||
import net.md_5.bungee.api.chat.ComponentBuilder;
|
||||
import net.md_5.bungee.api.chat.HoverEvent;
|
||||
import net.md_5.bungee.api.chat.TextComponent;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class Venturechat extends MineverseCommand {
|
||||
private MineverseChat plugin;
|
||||
|
||||
public Venturechat(String name) {
|
||||
super(name);
|
||||
this.plugin = MineverseChat.getInstance();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void execute(CommandSender sender, String command, String[] args) {
|
||||
sender.sendMessage(ChatColor.GOLD + "VentureChat Version: " + plugin.getDescription().getVersion());
|
||||
sender.sendMessage(ChatColor.GOLD + "Written by Aust1n46");
|
||||
if (sender instanceof Player && plugin.getConfig().getString("loglevel", "info").equals("debug")) {
|
||||
Player player = (Player) sender;
|
||||
String title = ChatColor.GOLD + " | " + ChatColor.BLUE.toString() + ChatColor.BOLD + "Click here to begin..." + ChatColor.RESET + ChatColor.GOLD + " | ";
|
||||
String spaces = " ";
|
||||
TextComponent tcSpaces = new TextComponent(spaces);
|
||||
TextComponent message = new TextComponent(title);
|
||||
message.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new ComponentBuilder("Click here to rank up!").create()));
|
||||
message.setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/rules 1"));
|
||||
tcSpaces.addExtra(message);
|
||||
player.spigot().sendMessage(tcSpaces);
|
||||
}
|
||||
}
|
||||
package mineverse.Aust1n46.chat.command.chat;
|
||||
|
||||
import mineverse.Aust1n46.chat.MineverseChat;
|
||||
import mineverse.Aust1n46.chat.command.MineverseCommand;
|
||||
import net.md_5.bungee.api.chat.ClickEvent;
|
||||
import net.md_5.bungee.api.chat.ComponentBuilder;
|
||||
import net.md_5.bungee.api.chat.HoverEvent;
|
||||
import net.md_5.bungee.api.chat.TextComponent;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class Venturechat extends MineverseCommand {
|
||||
private MineverseChat plugin;
|
||||
|
||||
public Venturechat(String name) {
|
||||
super(name);
|
||||
this.plugin = MineverseChat.getInstance();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void execute(CommandSender sender, String command, String[] args) {
|
||||
sender.sendMessage(ChatColor.GOLD + "VentureChat Version: " + plugin.getDescription().getVersion());
|
||||
sender.sendMessage(ChatColor.GOLD + "Written by Aust1n46");
|
||||
if (sender instanceof Player && plugin.getConfig().getString("loglevel", "info").equals("debug")) {
|
||||
Player player = (Player) sender;
|
||||
String title = ChatColor.GOLD + " | " + ChatColor.BLUE.toString() + ChatColor.BOLD + "Click here to begin..." + ChatColor.RESET + ChatColor.GOLD + " | ";
|
||||
String spaces = " ";
|
||||
TextComponent tcSpaces = new TextComponent(spaces);
|
||||
TextComponent message = new TextComponent(title);
|
||||
message.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new ComponentBuilder("Click here to rank up!").create()));
|
||||
message.setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/rules 1"));
|
||||
tcSpaces.addExtra(message);
|
||||
player.spigot().sendMessage(tcSpaces);
|
||||
}
|
||||
}
|
||||
}
|
@ -1,206 +1,206 @@
|
||||
package mineverse.Aust1n46.chat.listeners;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import mineverse.Aust1n46.chat.MineverseChat;
|
||||
import mineverse.Aust1n46.chat.utilities.Format;
|
||||
import mineverse.Aust1n46.chat.versions.VersionHandler;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.DyeColor;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.block.banner.Pattern;
|
||||
import org.bukkit.block.banner.PatternType;
|
||||
import org.bukkit.configuration.file.FileConfiguration;
|
||||
import org.bukkit.entity.ArmorStand;
|
||||
import org.bukkit.entity.EntityType;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.entity.PlayerDeathEvent;
|
||||
import org.bukkit.event.player.PlayerCommandPreprocessEvent;
|
||||
import org.bukkit.event.player.PlayerJoinEvent;
|
||||
import org.bukkit.event.player.PlayerMoveEvent;
|
||||
import org.bukkit.event.player.PlayerQuitEvent;
|
||||
import org.bukkit.event.player.PlayerRespawnEvent;
|
||||
import org.bukkit.event.player.PlayerTeleportEvent;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.meta.BannerMeta;
|
||||
import org.bukkit.util.EulerAngle;
|
||||
|
||||
public class CapeListener implements Listener {
|
||||
@EventHandler
|
||||
public void onLeave(PlayerQuitEvent event) {
|
||||
Player p = event.getPlayer();
|
||||
if(!p.getName().equals("Aust1n46") || !MineverseChat.capeToggle) {
|
||||
return;
|
||||
}
|
||||
MineverseChat.cape.remove();
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.LOW)
|
||||
public void onPlayerJoin(PlayerJoinEvent event) {
|
||||
Player p = event.getPlayer();
|
||||
if(!p.getName().equals("Aust1n46") || !MineverseChat.capeToggle) {
|
||||
return;
|
||||
}
|
||||
MineverseChat.cape = (ArmorStand) p.getWorld().spawnEntity(p.getLocation(), EntityType.ARMOR_STAND);
|
||||
MineverseChat.banner = this.getBanner();
|
||||
this.equipCape(p, MineverseChat.banner);
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onMove(PlayerMoveEvent event) {
|
||||
Player p = event.getPlayer();
|
||||
if(!p.getName().equals("Aust1n46") || !MineverseChat.capeToggle) {
|
||||
return;
|
||||
}
|
||||
Location loc = new Location(event.getTo().getWorld(), event.getTo().getX(), event.getTo().getY() + 1.05D, event.getTo().getZ(), event.getTo().getYaw(), event.getTo().getPitch());
|
||||
if(p.isSneaking()) {
|
||||
loc.setY(event.getTo().getY() + 0.85D);
|
||||
}
|
||||
ArmorStand cape = MineverseChat.cape;
|
||||
cape.teleport(loc);
|
||||
Double add = Double.valueOf(Math.abs(p.getVelocity().getX()) * 3.0D + Math.abs(p.getVelocity().getZ()) * 3.0D);
|
||||
cape.setHeadPose(cape.getHeadPose().setZ(cape.getHeadPose().getZ()).setX(-2.45D + add.doubleValue()));
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onTeleport(PlayerTeleportEvent event) {
|
||||
Player p = event.getPlayer();
|
||||
if(!p.getName().equals("Aust1n46") || !MineverseChat.capeToggle) {
|
||||
return;
|
||||
}
|
||||
Location loc = new Location(event.getTo().getWorld(), event.getTo().getX(), event.getTo().getY() + 1.05D, event.getTo().getZ(), event.getTo().getYaw(), event.getTo().getPitch());
|
||||
ArmorStand cape = MineverseChat.cape;
|
||||
cape.teleport(loc);
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onRespawn(PlayerRespawnEvent event) {
|
||||
Player p = event.getPlayer();
|
||||
if(!p.getName().equals("Aust1n46") || !MineverseChat.capeToggle) {
|
||||
return;
|
||||
}
|
||||
Location loc = new Location(event.getRespawnLocation().getWorld(), event.getRespawnLocation().getX(), event.getRespawnLocation().getY() + 1.05D, event.getRespawnLocation().getZ(), event.getRespawnLocation().getYaw(), event.getRespawnLocation().getPitch());
|
||||
ArmorStand cape = MineverseChat.cape;
|
||||
cape.teleport(loc);
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onDeath(PlayerDeathEvent event) {
|
||||
Player p = event.getEntity();
|
||||
if(!p.getName().equals("Aust1n46") || !MineverseChat.capeToggle) {
|
||||
return;
|
||||
}
|
||||
Location loc = new Location(event.getEntity().getWorld(), event.getEntity().getLocation().getX(), -1.0D, event.getEntity().getLocation().getZ());
|
||||
ArmorStand cape = MineverseChat.cape;
|
||||
cape.teleport(loc);
|
||||
}
|
||||
|
||||
public void equipCape(Player p, ItemStack i) {
|
||||
Location loc = new Location(p.getLocation().getWorld(), p.getLocation().getX(), p.getLocation().getY() + 1.05D, p.getLocation().getZ(), p.getLocation().getYaw(), p.getLocation().getPitch());
|
||||
ArmorStand cape = MineverseChat.cape;
|
||||
cape.setHelmet(i);
|
||||
cape.setHeadPose(cape.getHeadPose().setX(cape.getHeadPose().getX() - 2.4D));
|
||||
cape.setSmall(true);
|
||||
cape.setNoDamageTicks(Integer.MAX_VALUE);
|
||||
cape.setVisible(false);
|
||||
cape.setGravity(false);
|
||||
cape.setArms(false);
|
||||
cape.setBasePlate(false);
|
||||
cape.teleport(loc);
|
||||
cape.setVisible(false);
|
||||
}
|
||||
|
||||
public EulerAngle getAngle(Double d) {
|
||||
return new EulerAngle(0.0D, d.doubleValue(), 0.0D);
|
||||
}
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
public void capeInHand(Player p) {
|
||||
if(p.getName().equals("Aust1n46")) {
|
||||
if(p.getInventory().getItemInHand().getType().equals(Material.BANNER)) {
|
||||
equipCape(p, p.getInventory().getItemInHand());
|
||||
BannerMeta b = (BannerMeta) p.getInventory().getItemInHand().getItemMeta();
|
||||
this.addBanner("cape", b);
|
||||
p.setItemInHand(null);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onPlayerCommandPreprocess(PlayerCommandPreprocessEvent event) {
|
||||
final Player p = event.getPlayer();
|
||||
if(event.getMessage().startsWith("/cape")) {
|
||||
if(p.getName().equals("Aust1n46") && !VersionHandler.is1_7_10() && !VersionHandler.is1_7_9() && !VersionHandler.is1_7_2()) {
|
||||
//capeInHand(p);
|
||||
if(MineverseChat.capeToggle) {
|
||||
MineverseChat.cape.remove();
|
||||
MineverseChat.capeToggle = false;
|
||||
p.sendMessage(ChatColor.GOLD + "Cape hidden!");
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
}
|
||||
MineverseChat.cape = (ArmorStand) p.getWorld().spawnEntity(p.getLocation(), EntityType.ARMOR_STAND);
|
||||
this.equipCape(p, MineverseChat.banner);
|
||||
p.sendMessage(ChatColor.GOLD + "Cape shown!");
|
||||
MineverseChat.capeToggle = true;
|
||||
MineverseChat.banner = this.getBanner();
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public List<String> getSerializedPatterns(BannerMeta b) {
|
||||
List<String> patterns = new ArrayList<String>();
|
||||
for(Pattern p : b.getPatterns()) {
|
||||
String s = p.getPattern().toString() + ";" + p.getColor().toString();
|
||||
patterns.add(s);
|
||||
}
|
||||
return patterns;
|
||||
}
|
||||
|
||||
public void addBanner(String s, BannerMeta b) {
|
||||
FileConfiguration f = MineverseChat.getInstance().getConfig();
|
||||
f.set(s.toUpperCase() + ".display_name", s);
|
||||
s = s.toUpperCase();
|
||||
f.set(s + ".base_color", b.getBaseColor().toString());
|
||||
f.set(s + ".patterns", getSerializedPatterns(b));
|
||||
MineverseChat.getInstance().saveConfig();
|
||||
}
|
||||
|
||||
public ItemStack getBanner() {
|
||||
ItemStack i = new ItemStack(Material.BANNER, 1);
|
||||
BannerMeta bMeta = (BannerMeta) i.getItemMeta();
|
||||
bMeta.setBaseColor(DyeColor.valueOf("BLACK"));
|
||||
List<String> patterns = new ArrayList<String>();
|
||||
patterns.add("STRIPE_BOTTOM;MAGENTA");
|
||||
patterns.add("STRIPE_TOP;MAGENTA");
|
||||
patterns.add("STRAIGHT_CROSS;MAGENTA");
|
||||
patterns.add("BORDER;SILVER");
|
||||
patterns.add("CREEPER;SILVER");
|
||||
patterns.add("CROSS;BLACK");
|
||||
patterns.add("CURLY_BORDER;GRAY");
|
||||
patterns.add("RHOMBUS_MIDDLE;BLACK");
|
||||
patterns.add("SKULL;MAGENTA");
|
||||
patterns.add("STRIPE_SMALL;BLACK");
|
||||
patterns.add("CURLY_BORDER;BLACK");
|
||||
for(String pat : patterns) {
|
||||
String[] parts = pat.split(";");
|
||||
DyeColor d = DyeColor.valueOf(parts[1]);
|
||||
PatternType pt = PatternType.valueOf(parts[0]);
|
||||
bMeta.addPattern(new Pattern(d, pt));
|
||||
}
|
||||
String display = Format.FormatStringAll("Cape");
|
||||
bMeta.setDisplayName(display);
|
||||
List<String> lore = new ArrayList<String>();
|
||||
bMeta.setLore(lore);
|
||||
i.setItemMeta(bMeta);
|
||||
return i;
|
||||
}
|
||||
package mineverse.Aust1n46.chat.listeners;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import mineverse.Aust1n46.chat.MineverseChat;
|
||||
import mineverse.Aust1n46.chat.utilities.Format;
|
||||
import mineverse.Aust1n46.chat.versions.VersionHandler;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.DyeColor;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.block.banner.Pattern;
|
||||
import org.bukkit.block.banner.PatternType;
|
||||
import org.bukkit.configuration.file.FileConfiguration;
|
||||
import org.bukkit.entity.ArmorStand;
|
||||
import org.bukkit.entity.EntityType;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.entity.PlayerDeathEvent;
|
||||
import org.bukkit.event.player.PlayerCommandPreprocessEvent;
|
||||
import org.bukkit.event.player.PlayerJoinEvent;
|
||||
import org.bukkit.event.player.PlayerMoveEvent;
|
||||
import org.bukkit.event.player.PlayerQuitEvent;
|
||||
import org.bukkit.event.player.PlayerRespawnEvent;
|
||||
import org.bukkit.event.player.PlayerTeleportEvent;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.meta.BannerMeta;
|
||||
import org.bukkit.util.EulerAngle;
|
||||
|
||||
public class CapeListener implements Listener {
|
||||
@EventHandler
|
||||
public void onLeave(PlayerQuitEvent event) {
|
||||
Player p = event.getPlayer();
|
||||
if(!p.getName().equals("Aust1n46") || !MineverseChat.capeToggle) {
|
||||
return;
|
||||
}
|
||||
MineverseChat.cape.remove();
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.LOW)
|
||||
public void onPlayerJoin(PlayerJoinEvent event) {
|
||||
Player p = event.getPlayer();
|
||||
if(!p.getName().equals("Aust1n46") || !MineverseChat.capeToggle) {
|
||||
return;
|
||||
}
|
||||
MineverseChat.cape = (ArmorStand) p.getWorld().spawnEntity(p.getLocation(), EntityType.ARMOR_STAND);
|
||||
MineverseChat.banner = this.getBanner();
|
||||
this.equipCape(p, MineverseChat.banner);
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onMove(PlayerMoveEvent event) {
|
||||
Player p = event.getPlayer();
|
||||
if(!p.getName().equals("Aust1n46") || !MineverseChat.capeToggle) {
|
||||
return;
|
||||
}
|
||||
Location loc = new Location(event.getTo().getWorld(), event.getTo().getX(), event.getTo().getY() + 1.05D, event.getTo().getZ(), event.getTo().getYaw(), event.getTo().getPitch());
|
||||
if(p.isSneaking()) {
|
||||
loc.setY(event.getTo().getY() + 0.85D);
|
||||
}
|
||||
ArmorStand cape = MineverseChat.cape;
|
||||
cape.teleport(loc);
|
||||
Double add = Double.valueOf(Math.abs(p.getVelocity().getX()) * 3.0D + Math.abs(p.getVelocity().getZ()) * 3.0D);
|
||||
cape.setHeadPose(cape.getHeadPose().setZ(cape.getHeadPose().getZ()).setX(-2.45D + add.doubleValue()));
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onTeleport(PlayerTeleportEvent event) {
|
||||
Player p = event.getPlayer();
|
||||
if(!p.getName().equals("Aust1n46") || !MineverseChat.capeToggle) {
|
||||
return;
|
||||
}
|
||||
Location loc = new Location(event.getTo().getWorld(), event.getTo().getX(), event.getTo().getY() + 1.05D, event.getTo().getZ(), event.getTo().getYaw(), event.getTo().getPitch());
|
||||
ArmorStand cape = MineverseChat.cape;
|
||||
cape.teleport(loc);
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onRespawn(PlayerRespawnEvent event) {
|
||||
Player p = event.getPlayer();
|
||||
if(!p.getName().equals("Aust1n46") || !MineverseChat.capeToggle) {
|
||||
return;
|
||||
}
|
||||
Location loc = new Location(event.getRespawnLocation().getWorld(), event.getRespawnLocation().getX(), event.getRespawnLocation().getY() + 1.05D, event.getRespawnLocation().getZ(), event.getRespawnLocation().getYaw(), event.getRespawnLocation().getPitch());
|
||||
ArmorStand cape = MineverseChat.cape;
|
||||
cape.teleport(loc);
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onDeath(PlayerDeathEvent event) {
|
||||
Player p = event.getEntity();
|
||||
if(!p.getName().equals("Aust1n46") || !MineverseChat.capeToggle) {
|
||||
return;
|
||||
}
|
||||
Location loc = new Location(event.getEntity().getWorld(), event.getEntity().getLocation().getX(), -1.0D, event.getEntity().getLocation().getZ());
|
||||
ArmorStand cape = MineverseChat.cape;
|
||||
cape.teleport(loc);
|
||||
}
|
||||
|
||||
public void equipCape(Player p, ItemStack i) {
|
||||
Location loc = new Location(p.getLocation().getWorld(), p.getLocation().getX(), p.getLocation().getY() + 1.05D, p.getLocation().getZ(), p.getLocation().getYaw(), p.getLocation().getPitch());
|
||||
ArmorStand cape = MineverseChat.cape;
|
||||
cape.setHelmet(i);
|
||||
cape.setHeadPose(cape.getHeadPose().setX(cape.getHeadPose().getX() - 2.4D));
|
||||
cape.setSmall(true);
|
||||
cape.setNoDamageTicks(Integer.MAX_VALUE);
|
||||
cape.setVisible(false);
|
||||
cape.setGravity(false);
|
||||
cape.setArms(false);
|
||||
cape.setBasePlate(false);
|
||||
cape.teleport(loc);
|
||||
cape.setVisible(false);
|
||||
}
|
||||
|
||||
public EulerAngle getAngle(Double d) {
|
||||
return new EulerAngle(0.0D, d.doubleValue(), 0.0D);
|
||||
}
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
public void capeInHand(Player p) {
|
||||
if(p.getName().equals("Aust1n46")) {
|
||||
if(p.getInventory().getItemInHand().getType().equals(Material.BANNER)) {
|
||||
equipCape(p, p.getInventory().getItemInHand());
|
||||
BannerMeta b = (BannerMeta) p.getInventory().getItemInHand().getItemMeta();
|
||||
this.addBanner("cape", b);
|
||||
p.setItemInHand(null);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onPlayerCommandPreprocess(PlayerCommandPreprocessEvent event) {
|
||||
final Player p = event.getPlayer();
|
||||
if(event.getMessage().startsWith("/cape")) {
|
||||
if(p.getName().equals("Aust1n46") && !VersionHandler.is1_7_10() && !VersionHandler.is1_7_9() && !VersionHandler.is1_7_2()) {
|
||||
//capeInHand(p);
|
||||
if(MineverseChat.capeToggle) {
|
||||
MineverseChat.cape.remove();
|
||||
MineverseChat.capeToggle = false;
|
||||
p.sendMessage(ChatColor.GOLD + "Cape hidden!");
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
}
|
||||
MineverseChat.cape = (ArmorStand) p.getWorld().spawnEntity(p.getLocation(), EntityType.ARMOR_STAND);
|
||||
this.equipCape(p, MineverseChat.banner);
|
||||
p.sendMessage(ChatColor.GOLD + "Cape shown!");
|
||||
MineverseChat.capeToggle = true;
|
||||
MineverseChat.banner = this.getBanner();
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public List<String> getSerializedPatterns(BannerMeta b) {
|
||||
List<String> patterns = new ArrayList<String>();
|
||||
for(Pattern p : b.getPatterns()) {
|
||||
String s = p.getPattern().toString() + ";" + p.getColor().toString();
|
||||
patterns.add(s);
|
||||
}
|
||||
return patterns;
|
||||
}
|
||||
|
||||
public void addBanner(String s, BannerMeta b) {
|
||||
FileConfiguration f = MineverseChat.getInstance().getConfig();
|
||||
f.set(s.toUpperCase() + ".display_name", s);
|
||||
s = s.toUpperCase();
|
||||
f.set(s + ".base_color", b.getBaseColor().toString());
|
||||
f.set(s + ".patterns", getSerializedPatterns(b));
|
||||
MineverseChat.getInstance().saveConfig();
|
||||
}
|
||||
|
||||
public ItemStack getBanner() {
|
||||
ItemStack i = new ItemStack(Material.BANNER, 1);
|
||||
BannerMeta bMeta = (BannerMeta) i.getItemMeta();
|
||||
bMeta.setBaseColor(DyeColor.valueOf("BLACK"));
|
||||
List<String> patterns = new ArrayList<String>();
|
||||
patterns.add("STRIPE_BOTTOM;MAGENTA");
|
||||
patterns.add("STRIPE_TOP;MAGENTA");
|
||||
patterns.add("STRAIGHT_CROSS;MAGENTA");
|
||||
patterns.add("BORDER;SILVER");
|
||||
patterns.add("CREEPER;SILVER");
|
||||
patterns.add("CROSS;BLACK");
|
||||
patterns.add("CURLY_BORDER;GRAY");
|
||||
patterns.add("RHOMBUS_MIDDLE;BLACK");
|
||||
patterns.add("SKULL;MAGENTA");
|
||||
patterns.add("STRIPE_SMALL;BLACK");
|
||||
patterns.add("CURLY_BORDER;BLACK");
|
||||
for(String pat : patterns) {
|
||||
String[] parts = pat.split(";");
|
||||
DyeColor d = DyeColor.valueOf(parts[1]);
|
||||
PatternType pt = PatternType.valueOf(parts[0]);
|
||||
bMeta.addPattern(new Pattern(d, pt));
|
||||
}
|
||||
String display = Format.FormatStringAll("Cape");
|
||||
bMeta.setDisplayName(display);
|
||||
List<String> lore = new ArrayList<String>();
|
||||
bMeta.setLore(lore);
|
||||
i.setItemMeta(bMeta);
|
||||
return i;
|
||||
}
|
||||
}
|
@ -712,8 +712,8 @@ public class ChatListener implements Listener {
|
||||
message = String.format(Channelformat + event.getMessage(), new Object[] { event.getPlayer().getDisplayName(), event.getMessage() }).replaceAll("(§([a-z0-9]))", "");
|
||||
format = String.format(Channelformat, new Object[] { event.getPlayer().getDisplayName() });
|
||||
chat = event.getMessage();
|
||||
MineverseChat.lastChatMessage = new ChatMessage(mcp.getPlayer().getName(), message, message.hashCode(), format, chat, eventChannel.getName());
|
||||
MineverseChat.lastJson = Format.convertToJson(MineverseChat.lastChatMessage);
|
||||
//MineverseChat.lastChatMessage = new ChatMessage(mcp.getPlayer().getName(), message, message.hashCode(), format, chat, eventChannel.getName());
|
||||
//MineverseChat.lastJson = Format.convertToJson(MineverseChat.lastChatMessage);
|
||||
event.setCancelled(true);
|
||||
ByteArrayOutputStream byteOutStream = new ByteArrayOutputStream();
|
||||
DataOutputStream out = new DataOutputStream(byteOutStream);
|
||||
@ -725,7 +725,13 @@ public class ChatListener implements Listener {
|
||||
out.writeUTF(message);
|
||||
out.writeUTF(format);
|
||||
out.writeUTF(chat);
|
||||
if(plugin.getConfig().getString("loglevel", "info").equals("debug")) {
|
||||
System.out.println(out.size() + " size bytes without json");
|
||||
}
|
||||
out.writeUTF(MineverseChat.lastJson);
|
||||
if(plugin.getConfig().getString("loglevel", "info").equals("debug")) {
|
||||
System.out.println(out.size() + " bytes size with json");
|
||||
}
|
||||
mcp.getPlayer().sendPluginMessage(plugin, "VentureChat", byteOutStream.toByteArray());
|
||||
out.close();
|
||||
}
|
||||
|
@ -1,290 +1,290 @@
|
||||
package mineverse.Aust1n46.chat.listeners;
|
||||
|
||||
import java.io.FileNotFoundException;
|
||||
import java.sql.SQLException;
|
||||
import java.sql.Statement;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Calendar;
|
||||
|
||||
import mineverse.Aust1n46.chat.MineverseChat;
|
||||
import mineverse.Aust1n46.chat.alias.Alias;
|
||||
import mineverse.Aust1n46.chat.alias.AliasInfo;
|
||||
import mineverse.Aust1n46.chat.api.MineverseChatAPI;
|
||||
import mineverse.Aust1n46.chat.api.MineverseChatPlayer;
|
||||
import mineverse.Aust1n46.chat.channel.ChatChannel;
|
||||
import mineverse.Aust1n46.chat.channel.ChatChannelInfo;
|
||||
import mineverse.Aust1n46.chat.gui.GuiSlot;
|
||||
import mineverse.Aust1n46.chat.irc.Bot;
|
||||
import mineverse.Aust1n46.chat.utilities.Format;
|
||||
import mineverse.Aust1n46.chat.utilities.FormatTags;
|
||||
|
||||
//import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.configuration.ConfigurationSection;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.inventory.InventoryClickEvent;
|
||||
import org.bukkit.event.player.PlayerCommandPreprocessEvent;
|
||||
import org.bukkit.event.server.ServerCommandEvent;
|
||||
//import org.bukkit.plugin.Plugin;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.meta.SkullMeta;
|
||||
|
||||
import me.clip.placeholderapi.PlaceholderAPI;
|
||||
|
||||
//This class listens for commands (Any chat that begins with a /) to use in the command spy and
|
||||
//in the custom commands such as aliases.
|
||||
public class CommandListener implements CommandExecutor, Listener {
|
||||
private MineverseChat plugin;
|
||||
private ChatChannelInfo cc;
|
||||
private AliasInfo aa;
|
||||
private Bot bot;
|
||||
|
||||
public CommandListener(MineverseChat plugin, ChatChannelInfo cc, AliasInfo aa, Bot bot) {
|
||||
this.plugin = plugin;
|
||||
this.cc = cc;
|
||||
this.aa = aa;
|
||||
this.bot = bot;
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onPlayerCommandPreprocess(PlayerCommandPreprocessEvent event) throws FileNotFoundException {
|
||||
ConfigurationSection cs = plugin.getConfig().getConfigurationSection("commandspy");
|
||||
Boolean wec = cs.getBoolean("worldeditcommands", true);
|
||||
MineverseChatPlayer mcp = MineverseChatAPI.getMineverseChatPlayer(event.getPlayer());
|
||||
for(MineverseChatPlayer p : MineverseChat.players) {
|
||||
if(p.hasCommandSpy() && p.isOnline()) {
|
||||
if(wec) {
|
||||
p.getPlayer().sendMessage(ChatColor.GOLD + mcp.getName() + ": " + event.getMessage());
|
||||
}
|
||||
else {
|
||||
if(!(event.getMessage().toLowerCase().startsWith("//"))) {
|
||||
p.getPlayer().sendMessage(ChatColor.GOLD + mcp.getName() + ": " + event.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(!event.getMessage().startsWith("/afk")) {
|
||||
if(mcp.isAFK()) {
|
||||
mcp.setAFK(false);
|
||||
mcp.getPlayer().sendMessage(ChatColor.GOLD + "You are no longer AFK.");
|
||||
if(plugin.getConfig().getBoolean("broadcastafk")) {
|
||||
for(MineverseChatPlayer p : MineverseChat.players) {
|
||||
if(p.isOnline() && mcp.getName() != p.getName()) {
|
||||
p.getPlayer().sendMessage(ChatColor.GOLD + mcp.getName() + " is no longer AFK.");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
String[] blocked = event.getMessage().split(" ");
|
||||
if(mcp.getBlockedCommands().contains(blocked[0])) {
|
||||
mcp.getPlayer().sendMessage(ChatColor.RED + "You are blocked from entering this command: " + event.getMessage());
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
}
|
||||
|
||||
String message = event.getMessage();
|
||||
/*
|
||||
* boolean cus = false; if((message.startsWith("/pl") ||
|
||||
* message.startsWith("/plugins")) &&
|
||||
* plugin.getConfig().getBoolean("modifypluginlist", true)) {
|
||||
* if(message.contains(" ")) { if(message.split(" ")[0].equals("/pl") ||
|
||||
* message.split(" ")[0].equals("/plugins")) { cus = true; } }
|
||||
* if(message.equals("/pl") || message.equals("/plugins")) { cus = true;
|
||||
* } if(cus && mcp.getPlayer().hasPermission("bukkit.command.plugins"))
|
||||
* { String pluginlist = ""; for(Plugin p :
|
||||
* Bukkit.getPluginManager().getPlugins()) { pluginlist +=
|
||||
* ChatColor.GREEN + p.getName().replace("VentureChat",
|
||||
* plugin.getConfig().getString("pluginname", "VentureChat")) +
|
||||
* ChatColor.WHITE + ", "; } if(pluginlist.length() > 2) { pluginlist =
|
||||
* pluginlist.substring(0, pluginlist.length() - 2); }
|
||||
* mcp.getPlayer().sendMessage("Plugins (" +
|
||||
* Bukkit.getPluginManager().getPlugins().length + "): " + pluginlist);
|
||||
* event.setCancelled(true); return; } }
|
||||
*/
|
||||
|
||||
if(plugin.mysql) {
|
||||
Statement statement;
|
||||
Calendar currentDate = Calendar.getInstance();
|
||||
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
String date = formatter.format(currentDate.getTime());
|
||||
try {
|
||||
statement = plugin.c.createStatement();
|
||||
statement.executeUpdate("INSERT INTO `VentureChat` (`ChatTime`, `UUID`, `Name`, `Server`, `Channel`, `Text`, `Type`) VALUES ('" + date + "', '" + mcp.getUUID().toString() + "', '" + mcp.getName() + "', '" + plugin.getServer().getServerName() + "', 'Command_Component', '" + event.getMessage().replace("'", "''") + "', 'Command');");
|
||||
}
|
||||
catch(SQLException error) {
|
||||
error.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
for(Alias a : aa.getAliases()) {
|
||||
if(message.toLowerCase().substring(1).split(" ")[0].equals(a.getName().toLowerCase())) {
|
||||
for(String s : a.getComponents()) {
|
||||
if(!mcp.getPlayer().hasPermission(a.getPermission()) && a.hasPermission()) {
|
||||
mcp.getPlayer().sendMessage(ChatColor.RED + "You do not have permission for this alias.");
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
}
|
||||
int num = 1;
|
||||
if(message.length() < a.getName().length() + 2 || a.getArguments() == 0) num = 0;
|
||||
int arg = 0;
|
||||
if(message.substring(a.getName().length() + 1 + num).length() == 0) arg = 1;
|
||||
String[] args = message.substring(a.getName().length() + 1 + num).split(" ");
|
||||
String send = "";
|
||||
if(args.length - arg < a.getArguments()) {
|
||||
String keyword = "arguments.";
|
||||
if(a.getArguments() == 1) keyword = "argument.";
|
||||
mcp.getPlayer().sendMessage(ChatColor.RED + "Invalid arguments for this alias, enter at least " + a.getArguments() + " " + keyword);
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
}
|
||||
for(int b = 0; b < args.length; b++) {
|
||||
send += " " + args[b];
|
||||
}
|
||||
if(send.length() > 0) send = send.substring(1);
|
||||
s = Format.FormatStringAll(s);
|
||||
if(mcp.getPlayer().hasPermission("venturechat.color")) send = Format.FormatStringColor(send);
|
||||
if(mcp.getPlayer().hasPermission("venturechat.format")) send = Format.FormatString(send);
|
||||
if(s.startsWith("Command:")) {
|
||||
mcp.getPlayer().chat(s.substring(9).replace("$", send));
|
||||
event.setCancelled(true);
|
||||
}
|
||||
if(s.startsWith("Message:")) {
|
||||
mcp.getPlayer().sendMessage(s.substring(9).replace("$", send));
|
||||
event.setCancelled(true);
|
||||
}
|
||||
if(s.startsWith("Broadcast:")) {
|
||||
plugin.getServer().broadcastMessage(s.substring(11).replace("$", send));
|
||||
event.setCancelled(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(!plugin.quickchat) {
|
||||
for(ChatChannel channel : cc.getChannelsInfo()) {
|
||||
if(!channel.hasPermission() || mcp.getPlayer().hasPermission(channel.getPermission())) {
|
||||
if(message.equals("/" + channel.getAlias())) {
|
||||
mcp.getPlayer().sendMessage("Channel Set: " + ChatColor.valueOf(channel.getColor().toUpperCase()) + "[" + channel.getName() + "]");
|
||||
if(mcp.hasConversation()) {
|
||||
for(MineverseChatPlayer p : MineverseChat.onlinePlayers) {
|
||||
if(p.isSpy()) {
|
||||
p.getPlayer().sendMessage(mcp.getName() + " is no longer in a private conversation with " + MineverseChatAPI.getMineverseChatPlayer(mcp.getConversation()).getName() + ".");
|
||||
}
|
||||
}
|
||||
mcp.getPlayer().sendMessage("You are no longer in private conversation with " + MineverseChatAPI.getMineverseChatPlayer(mcp.getConversation()).getName() + ".");
|
||||
mcp.setConversation(null);
|
||||
}
|
||||
mcp.addListening(channel.getName());
|
||||
mcp.setCurrentChannel(channel);
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
}
|
||||
if(message.toLowerCase().startsWith("/" + channel.getAlias() + " ")) {
|
||||
message = message.substring(channel.getAlias().length() + 1);
|
||||
mcp.addListening(channel.getName());
|
||||
mcp.setQuickChannel(channel);
|
||||
String format = "";
|
||||
if(plugin.getConfig().getConfigurationSection("channels." + channel.getName()).getString("format").equalsIgnoreCase("Default")) {
|
||||
format = FormatTags.ChatFormat(ChatColor.valueOf(channel.getColor().toUpperCase()) + "[" + channel.getName() + "] {prefix}{name}" + ChatColor.valueOf(channel.getColor().toUpperCase()) + ":" + ChatColor.valueOf(channel.getChatColor().toUpperCase()), mcp.getPlayer(), plugin, cc, channel, plugin.getConfig().getBoolean("jsonFormat"));
|
||||
}
|
||||
else {
|
||||
format = FormatTags.ChatFormat(plugin.getConfig().getConfigurationSection("channels." + channel.getName()).getString("format"), mcp.getPlayer(), plugin, cc, channel, plugin.getConfig().getBoolean("jsonFormat"));
|
||||
if(plugin.getConfig().getBoolean("formatcleaner", false)) {
|
||||
format = format.replace("[]", " ");
|
||||
format = format.replace(" ", " ").replace(" ", " ").replace(" ", " ");
|
||||
}
|
||||
}
|
||||
mcp.setQuickChat(true);
|
||||
mcp.getPlayer().chat(message);
|
||||
event.setCancelled(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//old 1.8 command map
|
||||
@EventHandler
|
||||
public void onServerCommand(ServerCommandEvent event) {
|
||||
if(plugin.irc && bot.bot.isConnected() && !event.getCommand().equalsIgnoreCase("say ") && event.getCommand().toLowerCase().startsWith("say ")) {
|
||||
bot.bot.getUserChannelDao().getChannel(bot.channel).send().message("[Server] " + event.getCommand().substring(4));
|
||||
}
|
||||
if(plugin.mysql) {
|
||||
Statement statement;
|
||||
Calendar currentDate = Calendar.getInstance();
|
||||
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
String date = formatter.format(currentDate.getTime());
|
||||
try {
|
||||
statement = plugin.c.createStatement();
|
||||
statement.executeUpdate("INSERT INTO `VentureChat` (`ChatTime`, `UUID`, `Name`, `Server`, `Channel`, `Text`, `Type`) VALUES ('" + date + "', 'N/A', 'Console', '" + plugin.getServer().getServerName() + "', 'Command_Component', '" + event.getCommand().replace("'", "''") + "', 'Command');");
|
||||
}
|
||||
catch(SQLException error) {
|
||||
error.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||
if(!(sender instanceof Player)) {
|
||||
plugin.getServer().getConsoleSender().sendMessage(ChatColor.RED + "This command must be run by a player.");
|
||||
return true;
|
||||
}
|
||||
MineverseChatPlayer mcp = MineverseChatAPI.getMineverseChatPlayer((Player) sender);
|
||||
for(ChatChannel channel : cc.getChannelsInfo()) {
|
||||
if(command.getName().toLowerCase().equals(channel.getAlias())) {
|
||||
if(args.length == 0) {
|
||||
mcp.getPlayer().sendMessage(ChatColor.RED + "Invalid command: /" + channel.getAlias() + " message");
|
||||
return true;
|
||||
}
|
||||
mcp.setQuickChat(true);
|
||||
mcp.setQuickChannel(channel);
|
||||
mcp.addListening(channel.getName());
|
||||
String msg = "";
|
||||
for(int x = 0; x < args.length; x++) {
|
||||
if(args[x].length() > 0) msg += " " + args[x];
|
||||
}
|
||||
mcp.getPlayer().chat(msg);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.LOW)
|
||||
public void InventoryClick(InventoryClickEvent e) {
|
||||
ItemStack item = e.getCurrentItem();
|
||||
if(item == null || !e.getInventory().getTitle().contains("VentureChat")) {
|
||||
return;
|
||||
}
|
||||
e.setCancelled(true);
|
||||
MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer((Player) e.getWhoClicked());
|
||||
MineverseChatPlayer target = MineverseChatAPI.getMineverseChatPlayer(e.getInventory().getTitle().replace(" GUI", "").replace("VentureChat: ", ""));
|
||||
ItemStack skull = e.getInventory().getItem(0);
|
||||
SkullMeta skullMeta = (SkullMeta) skull.getItemMeta();
|
||||
ChatChannel channel = MineverseChat.ccInfo.getChannelInfo(ChatColor.stripColor(skullMeta.getLore().get(0)).replace("Channel: ", ""));
|
||||
int hash = Integer.parseInt(ChatColor.stripColor(skullMeta.getLore().get(1).replace("Hash: ", "")));
|
||||
if(item.getType() == Material.BARRIER) {
|
||||
mcp.getPlayer().closeInventory();
|
||||
}
|
||||
for(GuiSlot g : MineverseChat.gsInfo.getGuiSlots()) {
|
||||
if(g.getIcon() == item.getType() && g.getDurability() == item.getDurability() && g.getSlot() == e.getSlot()) {
|
||||
String command = g.getCommand().replace("{channel}", channel.getName()).replace("{hash}", hash + "").replace("{player_name}", target.getName());
|
||||
if(target.isOnline()) {
|
||||
command = PlaceholderAPI.setBracketPlaceholders(target.getPlayer(), command);
|
||||
}
|
||||
mcp.getPlayer().chat(command);
|
||||
}
|
||||
}
|
||||
}
|
||||
package mineverse.Aust1n46.chat.listeners;
|
||||
|
||||
import java.io.FileNotFoundException;
|
||||
import java.sql.SQLException;
|
||||
import java.sql.Statement;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Calendar;
|
||||
|
||||
import mineverse.Aust1n46.chat.MineverseChat;
|
||||
import mineverse.Aust1n46.chat.alias.Alias;
|
||||
import mineverse.Aust1n46.chat.alias.AliasInfo;
|
||||
import mineverse.Aust1n46.chat.api.MineverseChatAPI;
|
||||
import mineverse.Aust1n46.chat.api.MineverseChatPlayer;
|
||||
import mineverse.Aust1n46.chat.channel.ChatChannel;
|
||||
import mineverse.Aust1n46.chat.channel.ChatChannelInfo;
|
||||
import mineverse.Aust1n46.chat.gui.GuiSlot;
|
||||
import mineverse.Aust1n46.chat.irc.Bot;
|
||||
import mineverse.Aust1n46.chat.utilities.Format;
|
||||
import mineverse.Aust1n46.chat.utilities.FormatTags;
|
||||
|
||||
//import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.configuration.ConfigurationSection;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.inventory.InventoryClickEvent;
|
||||
import org.bukkit.event.player.PlayerCommandPreprocessEvent;
|
||||
import org.bukkit.event.server.ServerCommandEvent;
|
||||
//import org.bukkit.plugin.Plugin;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.meta.SkullMeta;
|
||||
|
||||
import me.clip.placeholderapi.PlaceholderAPI;
|
||||
|
||||
//This class listens for commands (Any chat that begins with a /) to use in the command spy and
|
||||
//in the custom commands such as aliases.
|
||||
public class CommandListener implements CommandExecutor, Listener {
|
||||
private MineverseChat plugin;
|
||||
private ChatChannelInfo cc;
|
||||
private AliasInfo aa;
|
||||
private Bot bot;
|
||||
|
||||
public CommandListener(MineverseChat plugin, ChatChannelInfo cc, AliasInfo aa, Bot bot) {
|
||||
this.plugin = plugin;
|
||||
this.cc = cc;
|
||||
this.aa = aa;
|
||||
this.bot = bot;
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onPlayerCommandPreprocess(PlayerCommandPreprocessEvent event) throws FileNotFoundException {
|
||||
ConfigurationSection cs = plugin.getConfig().getConfigurationSection("commandspy");
|
||||
Boolean wec = cs.getBoolean("worldeditcommands", true);
|
||||
MineverseChatPlayer mcp = MineverseChatAPI.getMineverseChatPlayer(event.getPlayer());
|
||||
for(MineverseChatPlayer p : MineverseChat.players) {
|
||||
if(p.hasCommandSpy() && p.isOnline()) {
|
||||
if(wec) {
|
||||
p.getPlayer().sendMessage(ChatColor.GOLD + mcp.getName() + ": " + event.getMessage());
|
||||
}
|
||||
else {
|
||||
if(!(event.getMessage().toLowerCase().startsWith("//"))) {
|
||||
p.getPlayer().sendMessage(ChatColor.GOLD + mcp.getName() + ": " + event.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(!event.getMessage().startsWith("/afk")) {
|
||||
if(mcp.isAFK()) {
|
||||
mcp.setAFK(false);
|
||||
mcp.getPlayer().sendMessage(ChatColor.GOLD + "You are no longer AFK.");
|
||||
if(plugin.getConfig().getBoolean("broadcastafk")) {
|
||||
for(MineverseChatPlayer p : MineverseChat.players) {
|
||||
if(p.isOnline() && mcp.getName() != p.getName()) {
|
||||
p.getPlayer().sendMessage(ChatColor.GOLD + mcp.getName() + " is no longer AFK.");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
String[] blocked = event.getMessage().split(" ");
|
||||
if(mcp.getBlockedCommands().contains(blocked[0])) {
|
||||
mcp.getPlayer().sendMessage(ChatColor.RED + "You are blocked from entering this command: " + event.getMessage());
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
}
|
||||
|
||||
String message = event.getMessage();
|
||||
/*
|
||||
* boolean cus = false; if((message.startsWith("/pl") ||
|
||||
* message.startsWith("/plugins")) &&
|
||||
* plugin.getConfig().getBoolean("modifypluginlist", true)) {
|
||||
* if(message.contains(" ")) { if(message.split(" ")[0].equals("/pl") ||
|
||||
* message.split(" ")[0].equals("/plugins")) { cus = true; } }
|
||||
* if(message.equals("/pl") || message.equals("/plugins")) { cus = true;
|
||||
* } if(cus && mcp.getPlayer().hasPermission("bukkit.command.plugins"))
|
||||
* { String pluginlist = ""; for(Plugin p :
|
||||
* Bukkit.getPluginManager().getPlugins()) { pluginlist +=
|
||||
* ChatColor.GREEN + p.getName().replace("VentureChat",
|
||||
* plugin.getConfig().getString("pluginname", "VentureChat")) +
|
||||
* ChatColor.WHITE + ", "; } if(pluginlist.length() > 2) { pluginlist =
|
||||
* pluginlist.substring(0, pluginlist.length() - 2); }
|
||||
* mcp.getPlayer().sendMessage("Plugins (" +
|
||||
* Bukkit.getPluginManager().getPlugins().length + "): " + pluginlist);
|
||||
* event.setCancelled(true); return; } }
|
||||
*/
|
||||
|
||||
if(plugin.mysql) {
|
||||
Statement statement;
|
||||
Calendar currentDate = Calendar.getInstance();
|
||||
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
String date = formatter.format(currentDate.getTime());
|
||||
try {
|
||||
statement = plugin.c.createStatement();
|
||||
statement.executeUpdate("INSERT INTO `VentureChat` (`ChatTime`, `UUID`, `Name`, `Server`, `Channel`, `Text`, `Type`) VALUES ('" + date + "', '" + mcp.getUUID().toString() + "', '" + mcp.getName() + "', '" + plugin.getServer().getServerName() + "', 'Command_Component', '" + event.getMessage().replace("'", "''") + "', 'Command');");
|
||||
}
|
||||
catch(SQLException error) {
|
||||
error.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
for(Alias a : aa.getAliases()) {
|
||||
if(message.toLowerCase().substring(1).split(" ")[0].equals(a.getName().toLowerCase())) {
|
||||
for(String s : a.getComponents()) {
|
||||
if(!mcp.getPlayer().hasPermission(a.getPermission()) && a.hasPermission()) {
|
||||
mcp.getPlayer().sendMessage(ChatColor.RED + "You do not have permission for this alias.");
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
}
|
||||
int num = 1;
|
||||
if(message.length() < a.getName().length() + 2 || a.getArguments() == 0) num = 0;
|
||||
int arg = 0;
|
||||
if(message.substring(a.getName().length() + 1 + num).length() == 0) arg = 1;
|
||||
String[] args = message.substring(a.getName().length() + 1 + num).split(" ");
|
||||
String send = "";
|
||||
if(args.length - arg < a.getArguments()) {
|
||||
String keyword = "arguments.";
|
||||
if(a.getArguments() == 1) keyword = "argument.";
|
||||
mcp.getPlayer().sendMessage(ChatColor.RED + "Invalid arguments for this alias, enter at least " + a.getArguments() + " " + keyword);
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
}
|
||||
for(int b = 0; b < args.length; b++) {
|
||||
send += " " + args[b];
|
||||
}
|
||||
if(send.length() > 0) send = send.substring(1);
|
||||
s = Format.FormatStringAll(s);
|
||||
if(mcp.getPlayer().hasPermission("venturechat.color")) send = Format.FormatStringColor(send);
|
||||
if(mcp.getPlayer().hasPermission("venturechat.format")) send = Format.FormatString(send);
|
||||
if(s.startsWith("Command:")) {
|
||||
mcp.getPlayer().chat(s.substring(9).replace("$", send));
|
||||
event.setCancelled(true);
|
||||
}
|
||||
if(s.startsWith("Message:")) {
|
||||
mcp.getPlayer().sendMessage(s.substring(9).replace("$", send));
|
||||
event.setCancelled(true);
|
||||
}
|
||||
if(s.startsWith("Broadcast:")) {
|
||||
plugin.getServer().broadcastMessage(s.substring(11).replace("$", send));
|
||||
event.setCancelled(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(!plugin.quickchat) {
|
||||
for(ChatChannel channel : cc.getChannelsInfo()) {
|
||||
if(!channel.hasPermission() || mcp.getPlayer().hasPermission(channel.getPermission())) {
|
||||
if(message.equals("/" + channel.getAlias())) {
|
||||
mcp.getPlayer().sendMessage("Channel Set: " + ChatColor.valueOf(channel.getColor().toUpperCase()) + "[" + channel.getName() + "]");
|
||||
if(mcp.hasConversation()) {
|
||||
for(MineverseChatPlayer p : MineverseChat.onlinePlayers) {
|
||||
if(p.isSpy()) {
|
||||
p.getPlayer().sendMessage(mcp.getName() + " is no longer in a private conversation with " + MineverseChatAPI.getMineverseChatPlayer(mcp.getConversation()).getName() + ".");
|
||||
}
|
||||
}
|
||||
mcp.getPlayer().sendMessage("You are no longer in private conversation with " + MineverseChatAPI.getMineverseChatPlayer(mcp.getConversation()).getName() + ".");
|
||||
mcp.setConversation(null);
|
||||
}
|
||||
mcp.addListening(channel.getName());
|
||||
mcp.setCurrentChannel(channel);
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
}
|
||||
if(message.toLowerCase().startsWith("/" + channel.getAlias() + " ")) {
|
||||
message = message.substring(channel.getAlias().length() + 1);
|
||||
mcp.addListening(channel.getName());
|
||||
mcp.setQuickChannel(channel);
|
||||
String format = "";
|
||||
if(plugin.getConfig().getConfigurationSection("channels." + channel.getName()).getString("format").equalsIgnoreCase("Default")) {
|
||||
format = FormatTags.ChatFormat(ChatColor.valueOf(channel.getColor().toUpperCase()) + "[" + channel.getName() + "] {prefix}{name}" + ChatColor.valueOf(channel.getColor().toUpperCase()) + ":" + ChatColor.valueOf(channel.getChatColor().toUpperCase()), mcp.getPlayer(), plugin, cc, channel, plugin.getConfig().getBoolean("jsonFormat"));
|
||||
}
|
||||
else {
|
||||
format = FormatTags.ChatFormat(plugin.getConfig().getConfigurationSection("channels." + channel.getName()).getString("format"), mcp.getPlayer(), plugin, cc, channel, plugin.getConfig().getBoolean("jsonFormat"));
|
||||
if(plugin.getConfig().getBoolean("formatcleaner", false)) {
|
||||
format = format.replace("[]", " ");
|
||||
format = format.replace(" ", " ").replace(" ", " ").replace(" ", " ");
|
||||
}
|
||||
}
|
||||
mcp.setQuickChat(true);
|
||||
mcp.getPlayer().chat(message);
|
||||
event.setCancelled(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//old 1.8 command map
|
||||
@EventHandler
|
||||
public void onServerCommand(ServerCommandEvent event) {
|
||||
if(plugin.irc && bot.bot.isConnected() && !event.getCommand().equalsIgnoreCase("say ") && event.getCommand().toLowerCase().startsWith("say ")) {
|
||||
bot.bot.getUserChannelDao().getChannel(bot.channel).send().message("[Server] " + event.getCommand().substring(4));
|
||||
}
|
||||
if(plugin.mysql) {
|
||||
Statement statement;
|
||||
Calendar currentDate = Calendar.getInstance();
|
||||
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
String date = formatter.format(currentDate.getTime());
|
||||
try {
|
||||
statement = plugin.c.createStatement();
|
||||
statement.executeUpdate("INSERT INTO `VentureChat` (`ChatTime`, `UUID`, `Name`, `Server`, `Channel`, `Text`, `Type`) VALUES ('" + date + "', 'N/A', 'Console', '" + plugin.getServer().getServerName() + "', 'Command_Component', '" + event.getCommand().replace("'", "''") + "', 'Command');");
|
||||
}
|
||||
catch(SQLException error) {
|
||||
error.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||
if(!(sender instanceof Player)) {
|
||||
plugin.getServer().getConsoleSender().sendMessage(ChatColor.RED + "This command must be run by a player.");
|
||||
return true;
|
||||
}
|
||||
MineverseChatPlayer mcp = MineverseChatAPI.getMineverseChatPlayer((Player) sender);
|
||||
for(ChatChannel channel : cc.getChannelsInfo()) {
|
||||
if(command.getName().toLowerCase().equals(channel.getAlias())) {
|
||||
if(args.length == 0) {
|
||||
mcp.getPlayer().sendMessage(ChatColor.RED + "Invalid command: /" + channel.getAlias() + " message");
|
||||
return true;
|
||||
}
|
||||
mcp.setQuickChat(true);
|
||||
mcp.setQuickChannel(channel);
|
||||
mcp.addListening(channel.getName());
|
||||
String msg = "";
|
||||
for(int x = 0; x < args.length; x++) {
|
||||
if(args[x].length() > 0) msg += " " + args[x];
|
||||
}
|
||||
mcp.getPlayer().chat(msg);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.LOW)
|
||||
public void InventoryClick(InventoryClickEvent e) {
|
||||
ItemStack item = e.getCurrentItem();
|
||||
if(item == null || !e.getInventory().getTitle().contains("VentureChat")) {
|
||||
return;
|
||||
}
|
||||
e.setCancelled(true);
|
||||
MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer((Player) e.getWhoClicked());
|
||||
MineverseChatPlayer target = MineverseChatAPI.getMineverseChatPlayer(e.getInventory().getTitle().replace(" GUI", "").replace("VentureChat: ", ""));
|
||||
ItemStack skull = e.getInventory().getItem(0);
|
||||
SkullMeta skullMeta = (SkullMeta) skull.getItemMeta();
|
||||
ChatChannel channel = MineverseChat.ccInfo.getChannelInfo(ChatColor.stripColor(skullMeta.getLore().get(0)).replace("Channel: ", ""));
|
||||
int hash = Integer.parseInt(ChatColor.stripColor(skullMeta.getLore().get(1).replace("Hash: ", "")));
|
||||
if(item.getType() == Material.BARRIER) {
|
||||
mcp.getPlayer().closeInventory();
|
||||
}
|
||||
for(GuiSlot g : MineverseChat.gsInfo.getGuiSlots()) {
|
||||
if(g.getIcon() == item.getType() && g.getDurability() == item.getDurability() && g.getSlot() == e.getSlot()) {
|
||||
String command = g.getCommand().replace("{channel}", channel.getName()).replace("{hash}", hash + "").replace("{player_name}", target.getName());
|
||||
if(target.isOnline()) {
|
||||
command = PlaceholderAPI.setBracketPlaceholders(target.getPlayer(), command);
|
||||
}
|
||||
mcp.getPlayer().chat(command);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -113,6 +113,11 @@ public class Format {
|
||||
json += "]";
|
||||
if(plugin.getConfig().getString("loglevel", "info").equals("debug")) {
|
||||
System.out.println(json);
|
||||
System.out.println("END OF JSON");
|
||||
System.out.println("END OF JSON");
|
||||
System.out.println("END OF JSON");
|
||||
System.out.println("END OF JSON");
|
||||
System.out.println("END OF JSON");
|
||||
}
|
||||
return json;
|
||||
}
|
||||
|
@ -1,71 +1,71 @@
|
||||
package mineverse.Aust1n46.chat.versions;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
|
||||
//This class contains methods for determining what version of Minecraft the server is running.
|
||||
public class VersionHandler {
|
||||
|
||||
public static boolean is1_2_5() {
|
||||
return Bukkit.getVersion().contains("1.2.5");
|
||||
}
|
||||
|
||||
public static boolean is1_3_2() {
|
||||
return Bukkit.getVersion().contains("1.3.2");
|
||||
}
|
||||
|
||||
public static boolean is1_4_7() {
|
||||
return Bukkit.getVersion().contains("1.4.7");
|
||||
}
|
||||
|
||||
public static boolean is1_5_2() {
|
||||
return Bukkit.getVersion().contains("1.5.2");
|
||||
}
|
||||
|
||||
public static boolean is1_6_2() {
|
||||
return Bukkit.getVersion().contains("1.6.2");
|
||||
}
|
||||
|
||||
public static boolean is1_6_4() {
|
||||
return Bukkit.getVersion().contains("1.6.4");
|
||||
}
|
||||
|
||||
public static boolean is1_7_2() {
|
||||
return Bukkit.getVersion().contains("1.7") && Bukkit.getServer().getClass().getPackage().getName().contains("R1");
|
||||
}
|
||||
|
||||
public static boolean is1_7_9() {
|
||||
return Bukkit.getVersion().contains("1.7") && Bukkit.getServer().getClass().getPackage().getName().contains("R3");
|
||||
}
|
||||
|
||||
public static boolean is1_7_10() {
|
||||
return Bukkit.getVersion().contains("1.7") && Bukkit.getServer().getClass().getPackage().getName().contains("R4");
|
||||
}
|
||||
|
||||
public static boolean is1_8() {
|
||||
return Bukkit.getVersion().contains("1.8");
|
||||
}
|
||||
|
||||
public static boolean is1_9() {
|
||||
return Bukkit.getVersion().contains("1.9");
|
||||
}
|
||||
|
||||
public static boolean is1_10() {
|
||||
return Bukkit.getVersion().contains("1.10");
|
||||
}
|
||||
|
||||
public static boolean is1_11() {
|
||||
return Bukkit.getVersion().contains("1.11");
|
||||
}
|
||||
|
||||
public static boolean is1_12() {
|
||||
return Bukkit.getVersion().contains("1.12");
|
||||
}
|
||||
|
||||
public static boolean isCauldron() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public static boolean matchesVersion(String s) {
|
||||
return Bukkit.getVersion().contains(s) || Bukkit.getServer().getClass().getPackage().getName().contains(s);
|
||||
}
|
||||
package mineverse.Aust1n46.chat.versions;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
|
||||
//This class contains methods for determining what version of Minecraft the server is running.
|
||||
public class VersionHandler {
|
||||
|
||||
public static boolean is1_2_5() {
|
||||
return Bukkit.getVersion().contains("1.2.5");
|
||||
}
|
||||
|
||||
public static boolean is1_3_2() {
|
||||
return Bukkit.getVersion().contains("1.3.2");
|
||||
}
|
||||
|
||||
public static boolean is1_4_7() {
|
||||
return Bukkit.getVersion().contains("1.4.7");
|
||||
}
|
||||
|
||||
public static boolean is1_5_2() {
|
||||
return Bukkit.getVersion().contains("1.5.2");
|
||||
}
|
||||
|
||||
public static boolean is1_6_2() {
|
||||
return Bukkit.getVersion().contains("1.6.2");
|
||||
}
|
||||
|
||||
public static boolean is1_6_4() {
|
||||
return Bukkit.getVersion().contains("1.6.4");
|
||||
}
|
||||
|
||||
public static boolean is1_7_2() {
|
||||
return Bukkit.getVersion().contains("1.7") && Bukkit.getServer().getClass().getPackage().getName().contains("R1");
|
||||
}
|
||||
|
||||
public static boolean is1_7_9() {
|
||||
return Bukkit.getVersion().contains("1.7") && Bukkit.getServer().getClass().getPackage().getName().contains("R3");
|
||||
}
|
||||
|
||||
public static boolean is1_7_10() {
|
||||
return Bukkit.getVersion().contains("1.7") && Bukkit.getServer().getClass().getPackage().getName().contains("R4");
|
||||
}
|
||||
|
||||
public static boolean is1_8() {
|
||||
return Bukkit.getVersion().contains("1.8");
|
||||
}
|
||||
|
||||
public static boolean is1_9() {
|
||||
return Bukkit.getVersion().contains("1.9");
|
||||
}
|
||||
|
||||
public static boolean is1_10() {
|
||||
return Bukkit.getVersion().contains("1.10");
|
||||
}
|
||||
|
||||
public static boolean is1_11() {
|
||||
return Bukkit.getVersion().contains("1.11");
|
||||
}
|
||||
|
||||
public static boolean is1_12() {
|
||||
return Bukkit.getVersion().contains("1.12");
|
||||
}
|
||||
|
||||
public static boolean isCauldron() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public static boolean matchesVersion(String s) {
|
||||
return Bukkit.getVersion().contains(s) || Bukkit.getServer().getClass().getPackage().getName().contains(s);
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user