Code Patterns

Copy-paste examples for common plugin tasks. Commands, events, ECS, GUI, and more.

← Back to Patterns
util

Data Manager Singleton

Thread-safe singleton pattern for managing player data with ConcurrentHashMap.

Example Code

java
public class DataManager {
    private static final DataManager INSTANCE = new DataManager();
    private final Map<UUID, PlayerData> playerData = new ConcurrentHashMap<>();

    public static DataManager getInstance() {
        return INSTANCE;
    }

    public void setData(UUID playerId, PlayerData data) {
        playerData.put(playerId, data);
    }

    public PlayerData getData(UUID playerId) {
        return playerData.get(playerId);
    }

    public void removeData(UUID playerId) {
        playerData.remove(playerId);
    }
}

Thread Safety

ConcurrentHashMap is thread-safe for individual operations. For compound operations, use synchronization.

Common Mistakes

Using HashMap instead of ConcurrentHashMap in multi-threaded environment.