From 7569536d562107b74fc02b7b60e2dea823c614e7 Mon Sep 17 00:00:00 2001
From: slawkens <slawkens@gmail.com>
Date: Sat, 25 Mar 2023 21:59:13 +0100
Subject: [PATCH] Fix when server uses another items serializer

---
 system/libs/CreateCharacter.php | 10 ++++++----
 system/pages/characters.php     |  3 +--
 2 files changed, 7 insertions(+), 6 deletions(-)

diff --git a/system/libs/CreateCharacter.php b/system/libs/CreateCharacter.php
index 09ee5d89..c81893e1 100644
--- a/system/libs/CreateCharacter.php
+++ b/system/libs/CreateCharacter.php
@@ -251,10 +251,12 @@ class CreateCharacter
 			}
 		}
 
-		$loaded_items_to_copy = $db->query("SELECT * FROM player_items WHERE player_id = ".$char_to_copy->getId()."");
-		foreach($loaded_items_to_copy as $save_item) {
-			$blob = $db->quote($save_item['attributes']);
-			$db->query("INSERT INTO `player_items` (`player_id` ,`pid` ,`sid` ,`itemtype`, `count`, `attributes`) VALUES ('".$player->getId()."', '".$save_item['pid']."', '".$save_item['sid']."', '".$save_item['itemtype']."', '".$save_item['count']."', $blob);");
+		if ($db->hasTable('player_items') && $db->hasColumn('player_items', 'pid') && $db->hasColumn('player_items', 'sid') && $db->hasColumn('player_items', 'itemtype')) {
+			$loaded_items_to_copy = $db->query("SELECT * FROM player_items WHERE player_id = ".$char_to_copy->getId()."");
+			foreach($loaded_items_to_copy as $save_item) {
+				$blob = $db->quote($save_item['attributes']);
+				$db->query("INSERT INTO `player_items` (`player_id` ,`pid` ,`sid` ,`itemtype`, `count`, `attributes`) VALUES ('".$player->getId()."', '".$save_item['pid']."', '".$save_item['sid']."', '".$save_item['itemtype']."', '".$save_item['count']."', $blob);");
+			}
 		}
 
 		global $twig;
diff --git a/system/pages/characters.php b/system/pages/characters.php
index 678e1875..253f5770 100644
--- a/system/pages/characters.php
+++ b/system/pages/characters.php
@@ -201,8 +201,7 @@ if($player->isLoaded() && !$player->isDeleted())
 		unset($storage);
 	}
 
-	if($config['characters']['equipment']) {
-		global $db;
+	if($config['characters']['equipment'] && $db->hasTable('player_items') && $db->hasColumn('player_items', 'pid') && $db->hasColumn('player_items', 'sid') && $db->hasColumn('player_items', 'itemtype')) {
 		$eq_sql = $db->query('SELECT `pid`, `itemtype` FROM player_items WHERE player_id = '.$player->getId().' AND (`pid` >= 1 and `pid` <= 10)');
 		$equipment = array();
 		foreach($eq_sql as $eq)