From 32f40af484bb7c8bf6b5f8eef7e074cdcf636f7c Mon Sep 17 00:00:00 2001 From: Govindas Date: Sun, 20 Mar 2022 11:57:25 +0200 Subject: [PATCH] Fix blob column types & Use Java 9 --- pom.xml | 6 +++--- .../skriptdb/skript/EffExecuteStatement.java | 17 +++++++++++++++++ src/main/resources/plugin.yml | 2 +- 3 files changed, 21 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index cd5d7d0..d87f72d 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ com.btk5h skript-db - 1.3.4 + 1.3.5 jar @@ -45,8 +45,8 @@ maven-compiler-plugin 3.6.1 - 8 - 8 + 9 + 9 UTF-8 diff --git a/src/main/java/com/btk5h/skriptdb/skript/EffExecuteStatement.java b/src/main/java/com/btk5h/skriptdb/skript/EffExecuteStatement.java index 53db2bc..fc10890 100644 --- a/src/main/java/com/btk5h/skriptdb/skript/EffExecuteStatement.java +++ b/src/main/java/com/btk5h/skriptdb/skript/EffExecuteStatement.java @@ -10,10 +10,14 @@ import com.btk5h.skriptdb.SkriptDB; import com.btk5h.skriptdb.SkriptUtil; import com.zaxxer.hikari.HikariDataSource; import org.bukkit.Bukkit; +import org.bukkit.entity.Player; import org.bukkit.event.Event; import javax.sql.DataSource; import javax.sql.rowset.CachedRowSet; +import javax.sql.rowset.serial.SerialBlob; +import javax.sql.rowset.serial.SerialException; +import java.io.IOException; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSetMetaData; @@ -299,6 +303,19 @@ public class EffExecuteStatement extends Effect { } private void setVariable(Event e, String name, Object obj) { + + //fix mediumblob and similar column types, so they return a String correctly + if (obj.getClass().getName().equals("[B")) { + obj = new String((byte[]) obj); + + //in some servers instead of being byte array, it appears as SerialBlob (depends on mc version, 1.12.2 is bvte array, 1.16.5 SerialBlob) + } else if (obj instanceof SerialBlob) { + try { + obj = new String(((SerialBlob) obj).getBinaryStream().readAllBytes()); + } catch (IOException | SerialException ex) { + ex.printStackTrace(); + } + } Variables.setVariable(name.toLowerCase(Locale.ENGLISH), obj, e, isLocal); } diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 25c3697..cc56b99 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -1,5 +1,5 @@ name: skript-db -version: 1.3.4 +version: 1.3.5 main: com.btk5h.skriptdb.SkriptDB depend: [Skript] authors: [btk5h, FranKusmiruk, Govindas, TPGamesNL]