Commit v1.9.2

Added some small fixes that makes old commands work again and a request to increase safety on shulkers.
This commit is contained in:
William Bergh 2020-10-03 14:25:58 +02:00
parent c59cf5d3cb
commit 2beb32037b
14 changed files with 52 additions and 36 deletions

View file

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<module external.linked.project.id="VulnerabilityPatcher:main" external.linked.project.path="$MODULE_DIR$/../.." external.root.project.path="$MODULE_DIR$/../.." external.system.id="GRADLE" external.system.module.group="me.cooljwb.vulnerabilitypatcher" external.system.module.type="sourceSet" external.system.module.version="v1.9" type="JAVA_MODULE" version="4">
<module external.linked.project.id="VulnerabilityPatcher:main" external.linked.project.path="$MODULE_DIR$/../.." external.root.project.path="$MODULE_DIR$/../.." external.system.id="GRADLE" external.system.module.group="me.cooljwb.vulnerabilitypatcher" external.system.module.type="sourceSet" external.system.module.version="v1.9.1" type="JAVA_MODULE" version="4">
<component name="CheckStyle-IDEA-Module">
<option name="configuration">
<map />

View file

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<module external.linked.project.id="VulnerabilityPatcher:test" external.linked.project.path="$MODULE_DIR$/../.." external.root.project.path="$MODULE_DIR$/../.." external.system.id="GRADLE" external.system.module.group="me.cooljwb.vulnerabilitypatcher" external.system.module.type="sourceSet" external.system.module.version="v1.9" type="JAVA_MODULE" version="4">
<module external.linked.project.id="VulnerabilityPatcher:test" external.linked.project.path="$MODULE_DIR$/../.." external.root.project.path="$MODULE_DIR$/../.." external.system.id="GRADLE" external.system.module.group="me.cooljwb.vulnerabilitypatcher" external.system.module.type="sourceSet" external.system.module.version="v1.9.1" type="JAVA_MODULE" version="4">
<component name="FacetManager">
<facet type="minecraft" name="Minecraft">
<configuration>

View file

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<module external.linked.project.id="VulnerabilityPatcher" external.linked.project.path="$MODULE_DIR$/../.." external.root.project.path="$MODULE_DIR$/../.." external.system.id="GRADLE" external.system.module.group="me.cooljwb.vulnerabilitypatcher" external.system.module.version="v1.9" type="JAVA_MODULE" version="4">
<module external.linked.project.id="VulnerabilityPatcher" external.linked.project.path="$MODULE_DIR$/../.." external.root.project.path="$MODULE_DIR$/../.." external.system.id="GRADLE" external.system.module.group="me.cooljwb.vulnerabilitypatcher" external.system.module.version="v1.9.1" type="JAVA_MODULE" version="4">
<component name="CheckStyle-IDEA-Module">
<option name="configuration">
<map />

View file

@ -2,13 +2,20 @@
<project version="4">
<component name="ChangeListManager">
<list default="true" id="4038a6e9-7d52-4dd0-91ef-d9a12aa1c1b2" name="Default Changelist" comment="Added a fix to the new item name exploit that makes it possible to make clickable text and, made the chest patch work for all containers and so that books are cleared properly...">
<change afterPath="$PROJECT_DIR$/.idea/discord.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/modules/VulnerabilityPatcher.main.iml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/modules/VulnerabilityPatcher.main.iml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/modules/VulnerabilityPatcher.test.iml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/modules/VulnerabilityPatcher.test.iml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/modules/me.cooljwb.vulnerabilitypatcher.VulnerabilityPatcher.iml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/modules/me.cooljwb.vulnerabilitypatcher.VulnerabilityPatcher.iml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/build.gradle" beforeDir="false" afterPath="$PROJECT_DIR$/build.gradle" afterDir="false" />
<change beforePath="$PROJECT_DIR$/gradle.properties" beforeDir="false" afterPath="$PROJECT_DIR$/gradle.properties" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/modifiers/NBTModifier.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/modifiers/NBTModifier.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/VulnerabilityPatcher.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/VulnerabilityPatcher.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/commands/CommandVulnerabilityPatcher.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/commands/CommandVulnerabilityPatcher.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/modifiers/NBTModifier_1_13_2.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/modifiers/NBTModifier_1_13_2.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/modifiers/NBTModifier_1_14.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/modifiers/NBTModifier_1_14.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/modifiers/NBTModifier_1_15.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/modifiers/NBTModifier_1_15.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/modifiers/NBTModifier_1_16.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/modifiers/NBTModifier_1_16.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/modifiers/NBTModifier_1_16_2.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/modifiers/NBTModifier_1_16_2.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/patches/Disconnect_Items.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/me/cooljwb/vulnerabilitypatcher/patches/Disconnect_Items.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/resources/plugin.yml" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/plugin.yml" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
@ -146,25 +153,29 @@
<option name="LAST_COMMIT_MESSAGE" value="Added a fix to the new item name exploit that makes it possible to make clickable text and, made the chest patch work for all containers and so that books are cleared properly..." />
</component>
<component name="WindowStateProjectService">
<state width="1877" height="234" key="GridCell.Tab.0.bottom" timestamp="1598297961156">
<state width="1877" height="234" key="GridCell.Tab.0.bottom" timestamp="1601727826130">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state width="1877" height="234" key="GridCell.Tab.0.bottom/0.0.1920.1040/1920.0.1920.1040@0.0.1920.1040" timestamp="1598297961156" />
<state width="1877" height="234" key="GridCell.Tab.0.bottom/0.0.1920.1040/1920.0.1920.1040@0.0.1920.1040" timestamp="1601727826130" />
<state width="1877" height="234" key="GridCell.Tab.0.bottom/0.0.1920.1040/1920.0.1920.1040@1920.0.1920.1040" timestamp="1597498022867" />
<state width="1877" height="234" key="GridCell.Tab.0.center" timestamp="1598297961156">
<state width="1877" height="234" key="GridCell.Tab.0.center" timestamp="1601727826130">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state width="1877" height="234" key="GridCell.Tab.0.center/0.0.1920.1040/1920.0.1920.1040@0.0.1920.1040" timestamp="1598297961156" />
<state width="1877" height="234" key="GridCell.Tab.0.center/0.0.1920.1040/1920.0.1920.1040@0.0.1920.1040" timestamp="1601727826130" />
<state width="1877" height="234" key="GridCell.Tab.0.center/0.0.1920.1040/1920.0.1920.1040@1920.0.1920.1040" timestamp="1597498022867" />
<state width="1877" height="234" key="GridCell.Tab.0.left" timestamp="1598297961156">
<state width="1877" height="234" key="GridCell.Tab.0.left" timestamp="1601727826130">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state width="1877" height="234" key="GridCell.Tab.0.left/0.0.1920.1040/1920.0.1920.1040@0.0.1920.1040" timestamp="1598297961156" />
<state width="1877" height="234" key="GridCell.Tab.0.left/0.0.1920.1040/1920.0.1920.1040@0.0.1920.1040" timestamp="1601727826130" />
<state width="1877" height="234" key="GridCell.Tab.0.left/0.0.1920.1040/1920.0.1920.1040@1920.0.1920.1040" timestamp="1597498022867" />
<state width="1877" height="234" key="GridCell.Tab.0.right" timestamp="1598297961156">
<state width="1877" height="234" key="GridCell.Tab.0.right" timestamp="1601727826130">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state width="1877" height="234" key="GridCell.Tab.0.right/0.0.1920.1040/1920.0.1920.1040@0.0.1920.1040" timestamp="1598297961156" />
<state width="1877" height="234" key="GridCell.Tab.0.right/0.0.1920.1040/1920.0.1920.1040@0.0.1920.1040" timestamp="1601727826130" />
<state width="1877" height="234" key="GridCell.Tab.0.right/0.0.1920.1040/1920.0.1920.1040@1920.0.1920.1040" timestamp="1597498022867" />
<state x="92" y="92" width="1736" height="856" key="com.intellij.history.integration.ui.views.FileHistoryDialog" timestamp="1601724203001">
<screen x="0" y="0" width="1920" height="1040" />
</state>
<state x="92" y="92" width="1736" height="856" key="com.intellij.history.integration.ui.views.FileHistoryDialog/0.0.1920.1040/1920.0.1920.1040@0.0.1920.1040" timestamp="1601724203001" />
</component>
</project>

View file

@ -1,2 +1,2 @@
pluginGroup=me.cooljwb.vulnerabilitypatcher
pluginVersion=v1.9.1
pluginVersion=v1.9.2

View file

@ -92,6 +92,7 @@ public final class VulnerabilityPatcher extends JavaPlugin {
case "1.16":
case "1.16.1":
case "1.16.2":
case "1.16.3":
return true;
default:
log.log(Level.WARNING, String.format("[%s] Server version %s may not work fully or at all with %s-%s, try an earlier plugin version or a newer server version.", pluginName, version, pluginName, pluginVersion));
@ -103,9 +104,7 @@ public final class VulnerabilityPatcher extends JavaPlugin {
pluginVersion = this.getDescription().getVersion();
pluginAuthors = this.getDescription().getAuthors();
if(!version()) {
return false;
}
version();
this.patches = new Patches(this);
main = this;

View file

@ -70,7 +70,7 @@ public class CommandVulnerabilityPatcher extends Patches implements CommandExecu
else if(args[0].equalsIgnoreCase("delete") && args.length == 2) {
if(sender.hasPermission(main.getConfig().getString("Commands.Delete.Permission"))) {
if(removePlayerdata(sender.getName()))
if(removePlayerdata(args[1]))
msg(sender, String.format(SMG.REMOVED_DATA.msg, args[1]));
else
msg(sender, String.format(SMG.PLAYER_NOT_FOUND.msg, args[1]));

View file

@ -263,8 +263,9 @@ public class NBTModifier_1_13_2 {
NBTTagList patterns = item.getCompound("BlockEntityTag").getList("Patterns", 10);
for(int x = 0; x <= (patterns.size() - 1); x++) {
if(patterns.get(x).getTypeId() == 10) {
if(patterns.getCompound(x).hasKey("Color") && patterns.getCompound(x).getInt("Color") < 0)
if(patterns.getCompound(x).hasKey("Color") && patterns.getCompound(x).getInt("Color") < 0) {
return true;
}
}
}

View file

@ -282,8 +282,9 @@ public class NBTModifier_1_14 {
NBTTagList patterns = item.getCompound("BlockEntityTag").getList("Patterns", 10);
for(int x = 0; x <= (patterns.size() - 1); x++) {
if(patterns.get(x).getTypeId() == 10) {
if(patterns.getCompound(x).hasKey("Color") && patterns.getCompound(x).getInt("Color") < 0)
if(patterns.getCompound(x).hasKey("Color") && patterns.getCompound(x).getInt("Color") < 0) {
return true;
}
}
}

View file

@ -284,8 +284,9 @@ public class NBTModifier_1_15 {
NBTTagList patterns = item.getCompound("BlockEntityTag").getList("Patterns", 10);
for(int x = 0; x <= (patterns.size() - 1); x++) {
if(patterns.get(x).getTypeId() == 10) {
if(patterns.getCompound(x).hasKey("Color") && patterns.getCompound(x).getInt("Color") < 0)
if(patterns.getCompound(x).hasKey("Color") && patterns.getCompound(x).getInt("Color") < 0) {
return true;
}
}
}

View file

@ -287,8 +287,9 @@ public class NBTModifier_1_16 {
NBTTagList patterns = item.getCompound("BlockEntityTag").getList("Patterns", 10);
for(int x = 0; x <= (patterns.size() - 1); x++) {
if(patterns.get(x).getTypeId() == 10) {
if(patterns.getCompound(x).hasKey("Color") && patterns.getCompound(x).getInt("Color") < 0)
if(patterns.getCompound(x).hasKey("Color") && patterns.getCompound(x).getInt("Color") < 0) {
return true;
}
}
}

View file

@ -10,6 +10,7 @@ import net.minecraft.server.v1_16_R2.NBTTagCompound;
import net.minecraft.server.v1_16_R2.NBTTagList;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.World;
import org.bukkit.craftbukkit.v1_16_R2.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_16_R2.entity.CraftItem;
import org.bukkit.craftbukkit.v1_16_R2.entity.CraftPlayer;
@ -44,8 +45,6 @@ import java.util.regex.Pattern;
* limitations under the License.
*/
import org.bukkit.craftbukkit.v1_16_R2.inventory.CraftItemStack;
/**
* This class is a function port to 1.15
* Date: 2020-06-13
@ -104,15 +103,17 @@ public class NBTModifier_1_16_2 {
}
boolean removePlayerdata(String player) {
if(Bukkit.getPlayer(player) != null) {
((CraftEntity) Bukkit.getPlayer(player)).getHandle().save(new NBTTagCompound());
return true;
boolean success = false;
for(World world : Bukkit.getWorlds()) {
File localUUIDfile = new File(Bukkit.getServer().getWorldContainer() + "/" + world.getName() + "/playerdata/" + Bukkit.getOfflinePlayer(player).getUniqueId().toString() + ".dat");
if(localUUIDfile.exists()) {
if(localUUIDfile.delete()) {
success = true;
}
}
}
else if(Bukkit.getOfflinePlayer(player) != null) {
File file = new File(Bukkit.getServer().getWorldContainer() + "/world/playerdata/" + Bukkit.getOfflinePlayer(player).getUniqueId().toString() + ".dat");
return file.delete();
}
return false;
return success;
}
void resetMeta(Player player, ItemStack item, boolean mainhand) {
net.minecraft.server.v1_16_R2.ItemStack nmsItemStack = CraftItemStack.asNMSCopy(item);
@ -287,8 +288,9 @@ public class NBTModifier_1_16_2 {
NBTTagList patterns = item.getCompound("BlockEntityTag").getList("Patterns", 10);
for(int x = 0; x <= (patterns.size() - 1); x++) {
if(patterns.get(x).getTypeId() == 10) {
if(patterns.getCompound(x).hasKey("Color") && patterns.getCompound(x).getInt("Color") < 0)
if(patterns.getCompound(x).hasKey("Color") && patterns.getCompound(x).getInt("Color") < 0) {
return true;
}
}
}

View file

@ -223,7 +223,7 @@ public class Disconnect_Items extends Patches implements Listener {
StringBuilder inventoryString = new StringBuilder();
for (ItemStack item : container.getInventory().getContents()) {
if(isDisconnectItem(item) || itemToString(item).length() >= 65535) {
if(isDisconnectItem(item) || containsDisconnectItem(item) || itemToString(item).length() >= 65535) {
clearItemMeta(item);
}
inventoryString.append(itemToString(item));

View file

@ -1,5 +1,5 @@
name: VulnerabilityPatcher
version: "1.9"
version: "1.9.2"
api-version: 1.13
main: me.cooljwb.vulnerabilitypatcher.VulnerabilityPatcher
authors: [CoolJWB]