65 lines
2.2 KiB
Markdown
65 lines
2.2 KiB
Markdown
# dbItemHandler Documentation
|
|||
|
|
|
||
|
|
## Overview
|
||
|
|
This document describes the database relationships and interactions for the `dbItemHandler` class. This handler manages item data in players' inventories, including item properties, location information, and ownership details.
|
||
|
|
|
||
|
|
## Handler Class
|
||
|
|
**File:** `src/engine/db/handlers/dbItemHandler.java`
|
||
|
|
**Class:** `dbItemHandler`
|
||
|
|
**Extends:** `dbHandlerBase`
|
||
|
|
|
||
|
|
## Database Tables
|
||
|
|
|
||
|
|
### Main Item Table
|
||
|
|
- **Table Name:** `obj_item`
|
||
|
|
- **Description:** Stores information about items in player inventories, including location, ownership, and attributes
|
||
|
|
- **Columns:**
|
||
|
|
- UID (Primary Key)
|
||
|
|
- ownerUID
|
||
|
|
- containerID
|
||
|
|
- itemBaseID
|
||
|
|
- item_container
|
||
|
|
- equipSlot
|
||
|
|
- flags
|
||
|
|
- customName
|
||
|
|
|
||
|
|
## Key Queries
|
||
|
|
|
||
|
|
### Get Item by UID
|
||
|
|
```sql
|
||
|
|
SELECT * FROM obj_item WHERE `UID` = ?
|
||
|
|
```
|
||
|
|
**File:** `dbItemHandler.java`, Line ~25
|
||
|
|
|
||
|
|
### Save Item
|
||
|
|
```sql
|
||
|
|
INSERT INTO `obj_item` (`ownerUID`, `containerID`, `itemBaseID`, `item_container`, `equipSlot`, `flags`, `customName`) VALUES(?,?,?,?,?,?,?)
|
||
|
|
```
|
||
|
|
**File:** `dbItemHandler.java`, Line ~40
|
||
|
|
|
||
|
|
### Get Items by Owner
|
||
|
|
```sql
|
||
|
|
SELECT * FROM obj_item WHERE `ownerUID` = ?
|
||
|
|
```
|
||
|
|
**File:** `dbItemHandler.java`, Line ~55
|
||
|
|
|
||
|
|
## Relationships
|
||
|
|
|
||
|
|
1. **Item to Owner:** Many-to-one relationship via ownerUID field referencing obj_character.UID
|
||
|
|
2. **Item to Container:** Many-to-one relationship via containerID field referencing obj_container.UID
|
||
|
|
3. **Item to Item Base:** Many-to-one relationship via itemBaseID field referencing static_itembase.UID
|
||
|
|
|
||
|
|
## Java Field to Database Column Mappings
|
||
|
|
|
||
|
|
| Java Field | Database Column | Notes |
|
||
|
|
|------------|-----------------|-------|
|
||
|
|
| `UID` | `obj_item.UID` | Unique identifier for the item |
|
||
|
|
| `ownerUID` | `obj_item.ownerUID` | UID of the character who owns this item |
|
||
|
|
| `containerID` | `obj_item.containerID` | Container ID where item is stored |
|
||
|
|
| `itemBaseID` | `obj_item.itemBaseID` | UID of the base item definition |
|
||
|
|
| `item_container` | `obj_item.item_container` | Container type (inventory, equip, bank, etc.) |
|
||
|
|
| `equipSlot` | `obj_item.equipSlot` | Slot where item is equipped |
|
||
|
|
| `flags` | `obj_item.flags` | Item flags for special properties |
|
||
|
|
| `customName` | `obj_item.customName` | Custom name of the item |
|
||
|
|
| `other fields...` | Various columns | Other item-specific properties |
|