From 60fd5204f4ef75c31f800426bc9288bfb16d3bc4 Mon Sep 17 00:00:00 2001 From: cnaude Date: Fri, 15 Sep 2017 20:50:56 -0700 Subject: [PATCH] Merge from PurpleIRC-spigot source --- pom.xml | 84 ++++++++--------- .../cnaude/purpleirc/Commands/Nickserv.java | 89 +++++++++++++++++++ ...mePlayerPlayerAdvancementDoneListener.java | 53 +++++++++++ .../purpleirc/Utilities/NetPacket_112.java | 63 +++++++++++++ 4 files changed, 249 insertions(+), 40 deletions(-) create mode 100644 src/main/java/com/cnaude/purpleirc/Commands/Nickserv.java create mode 100644 src/main/java/com/cnaude/purpleirc/GameListeners/GamePlayerPlayerAdvancementDoneListener.java create mode 100644 src/main/java/com/cnaude/purpleirc/Utilities/NetPacket_112.java diff --git a/pom.xml b/pom.xml index 80cb1f1..3c8b2e3 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ UTF-8 - 1.11.1 + 1.12.1 SNAPSHOT @@ -36,24 +36,6 @@ false - - - - @@ -68,16 +50,17 @@ + + vault-repo + http://nexus.hc.to/content/repositories/pub_releases + + dmulloy2-repo http://repo.dmulloy2.net/content/groups/public/ + --> placeholderapi @@ -85,9 +68,9 @@ - Scarsz-Jenkins - http://scarsz.tech:8080/plugin/repository/everything/ - + dynmap + http://repo.mikeprimm.com/ + @@ -149,6 +132,14 @@ provided + + org.bukkit + spigot-112 + 1.12 + jar + provided + + com.cnaude.pircbotx @@ -215,8 +206,15 @@ net.milkbowl.vault - Vault - 1.5.6 + VaultAPI + 1.6 + provided + + + org.bukkit + bukkit + + @@ -349,7 +347,7 @@ com.cnaude.deathmessagesprime DeathMessagesPrime - 1.11.11 + 1.12.13 @@ -375,9 +373,15 @@ - com.cnaude.dynmap - DynmapAPI - 2.1 + us.dynmap + dynmap-api + 2.5 + + + org.bukkit + bukkit + + @@ -398,7 +402,7 @@ com.cnaude.supervanish SuperVanish - 5.6.2 + 5.9.1 @@ -419,7 +423,7 @@ me.clip placeholderapi - 2.5.1 + 2.8.0 provided @@ -427,7 +431,7 @@ com.scarsz.discordsrv DiscordSRV - 12.3 + 14.8 provided @@ -477,17 +481,17 @@ maven-compiler-plugin - 3.5.1 + 3.6.1 - 1.7 - 1.7 + 1.8 + 1.8 org.apache.maven.plugins maven-shade-plugin - 2.4.3 + 3.0.0 package diff --git a/src/main/java/com/cnaude/purpleirc/Commands/Nickserv.java b/src/main/java/com/cnaude/purpleirc/Commands/Nickserv.java new file mode 100644 index 0000000..9a162cf --- /dev/null +++ b/src/main/java/com/cnaude/purpleirc/Commands/Nickserv.java @@ -0,0 +1,89 @@ +/* + * Copyright (C) 2014 cnaude + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.cnaude.purpleirc.Commands; + +import com.cnaude.purpleirc.PurpleBot; +import com.cnaude.purpleirc.PurpleIRC; +import java.util.ArrayList; +import java.util.List; +import org.bukkit.ChatColor; +import org.bukkit.command.CommandSender; + +/** + * + * @author Chris Naude + */ +public class Nickserv implements IRCCommandInterface { + + private final PurpleIRC plugin; + private final String usage = "([bot]) [message]"; + private final String desc = "Send nickserv commands to the IRC server."; + private final String name = "nickserv"; + private final String fullUsage = ChatColor.WHITE + "Usage: " + ChatColor.GOLD + "/irc " + name + " " + usage; + + /** + * + * @param plugin the PurpleIRC plugin + */ + public Nickserv(PurpleIRC plugin) { + this.plugin = plugin; + } + + /** + * + * @param sender + * @param args + */ + @Override + public void dispatch(CommandSender sender, String[] args) { + if (args.length >= 2) { + int msgIdx = 1; + List myBots = new ArrayList<>(); + if (plugin.ircBots.containsKey(args[1])) { + myBots.add(plugin.ircBots.get(args[1])); + msgIdx = 2; + } else { + myBots.addAll(plugin.ircBots.values()); + } + for (PurpleBot ircBot : myBots) { + String msg = ""; + for (int i = msgIdx; i < args.length; i++) { + msg = msg + " " + args[i]; + } + plugin.logDebug("Sending nickserv message to the server: " + msg.substring(1)); + ircBot.asyncRawlineNow("nickserv " + msg.substring(1)); + } + } else { + sender.sendMessage(fullUsage); + } + } + + @Override + public String name() { + return name; + } + + @Override + public String desc() { + return desc; + } + + @Override + public String usage() { + return usage; + } +} diff --git a/src/main/java/com/cnaude/purpleirc/GameListeners/GamePlayerPlayerAdvancementDoneListener.java b/src/main/java/com/cnaude/purpleirc/GameListeners/GamePlayerPlayerAdvancementDoneListener.java new file mode 100644 index 0000000..d6a7669 --- /dev/null +++ b/src/main/java/com/cnaude/purpleirc/GameListeners/GamePlayerPlayerAdvancementDoneListener.java @@ -0,0 +1,53 @@ +/* + * Copyright (C) 2014 cnaude + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.cnaude.purpleirc.GameListeners; + +import com.cnaude.purpleirc.PurpleBot; +import com.cnaude.purpleirc.PurpleIRC; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; +import org.bukkit.event.player.PlayerAdvancementDoneEvent; + +/** + * + * @author Chris Naude + */ +public class GamePlayerPlayerAdvancementDoneListener implements Listener { + + private final PurpleIRC plugin; + + /** + * + * @param plugin the PurpleIRC plugin + */ + public GamePlayerPlayerAdvancementDoneListener(PurpleIRC plugin) { + this.plugin = plugin; + } + + /** + * + * @param event + */ + @EventHandler(priority = EventPriority.LOWEST) + public void onPlayerAchievementAwardedEvent(PlayerAdvancementDoneEvent event) { + plugin.logDebug("ACHIEVEMENT: " + event.getPlayer().getName() + " => " + event.getAdvancement()); + for (PurpleBot ircBot : plugin.ircBots.values()) { + ircBot.gameAdvancement(event.getPlayer(), event.getAdvancement()); + } + } +} diff --git a/src/main/java/com/cnaude/purpleirc/Utilities/NetPacket_112.java b/src/main/java/com/cnaude/purpleirc/Utilities/NetPacket_112.java new file mode 100644 index 0000000..be1b636 --- /dev/null +++ b/src/main/java/com/cnaude/purpleirc/Utilities/NetPacket_112.java @@ -0,0 +1,63 @@ +/* + * Copyright (C) 2015 cnaude + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.cnaude.purpleirc.Utilities; + +import com.comphenix.protocol.events.PacketContainer; +import com.comphenix.protocol.wrappers.WrappedGameProfile; +import com.google.common.base.Charsets; +import com.mojang.authlib.GameProfile; +import java.util.UUID; +import net.minecraft.server.v1_12_R1.EntityPlayer; +import net.minecraft.server.v1_12_R1.MinecraftServer; +import net.minecraft.server.v1_12_R1.PacketPlayOutPlayerInfo; +import net.minecraft.server.v1_12_R1.PlayerInteractManager; + +/** + * + * @author Chris Naude + */ +public class NetPacket_112 { + + public static PacketContainer add(String displayName) { + UUID uuid = UUID.nameUUIDFromBytes(("OfflinePlayer:" + displayName).getBytes(Charsets.UTF_8)); + EntityPlayer pl = new EntityPlayer( + MinecraftServer.getServer(), + MinecraftServer.getServer().getWorldServer(0), + (GameProfile) (new WrappedGameProfile(uuid, displayName)).getHandle(), + new PlayerInteractManager(MinecraftServer.getServer().getWorldServer(0)) + ); + PacketPlayOutPlayerInfo pi + = new PacketPlayOutPlayerInfo( + PacketPlayOutPlayerInfo.EnumPlayerInfoAction.ADD_PLAYER, pl); + return PacketContainer.fromPacket(pi); + } + + public static PacketContainer rem(String displayName) { + UUID uuid = UUID.nameUUIDFromBytes(("OfflinePlayer:" + displayName).getBytes(Charsets.UTF_8)); + EntityPlayer pl = new EntityPlayer( + MinecraftServer.getServer(), + MinecraftServer.getServer().getWorldServer(0), + (GameProfile) (new WrappedGameProfile(uuid, displayName)).getHandle(), + new PlayerInteractManager(MinecraftServer.getServer().getWorldServer(0)) + ); + PacketPlayOutPlayerInfo pi + = new PacketPlayOutPlayerInfo( + PacketPlayOutPlayerInfo.EnumPlayerInfoAction.REMOVE_PLAYER, pl); + return PacketContainer.fromPacket(pi); + } + +}