package com.rsscripting.rswarehouse.dao; import com.rsscripting.rswarehouse.database.DatabaseManager; import com.rsscripting.rswarehouse.utils.ItemStackUtils; import org.bukkit.inventory.ItemStack; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.Statement; import java.time.LocalDate; public class InventoryCreationDAO { public static Integer createParentInventoryItem( ItemStack item, String discovererUuid, String discovererName ) { int inventoryId = createInventoryItem( item, 0, discovererUuid, discovererName ); if (inventoryId == -1) { return -1; } WarehouseReferenceDAO.createWarehouseItemReference( item, inventoryId ); return inventoryId; } public static int createInventoryItem( ItemStack item, long quantity, String discovererUuid, String discovererName ) { String serializedItem = ItemStackUtils.serialize( item ); try ( Connection connection = DatabaseManager.getConnection() ) { PreparedStatement statement = connection.prepareStatement( """ INSERT INTO warehouse_inventory ( serialized_item, quantity, discoverer_uuid, discoverer_name, discovered_date ) VALUES (?, ?, ?, ?, ?) """, Statement.RETURN_GENERATED_KEYS ); statement.setString( 1, serializedItem ); statement.setLong( 2, quantity ); statement.setString( 3, discovererUuid ); statement.setString( 4, discovererName ); statement.setString( 5, LocalDate.now().toString() ); statement.executeUpdate(); ResultSet resultSet = statement.getGeneratedKeys(); if (resultSet.next()) { return resultSet.getInt( 1 ); } } catch (Exception e) { e.printStackTrace(); } return -1; } }