Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -373,7 +373,7 @@ public <T extends SyncHandler> T getOrCreateSyncHandler(String name, Class<T> cl
}

public <T extends SyncHandler> T getOrCreateSyncHandler(String name, int id, Class<T> clazz, Supplier<T> supplier) {
SyncHandler syncHandler = getSyncHandler(name);
SyncHandler syncHandler = findSyncHandlerNullable(name, id);
if (syncHandler == null) {
if (isLocked() && !this.allowSyncHandlerRegistration) {
// registration is locked, and we don't have permission to temporarily bypass lock
Expand All @@ -387,7 +387,7 @@ public <T extends SyncHandler> T getOrCreateSyncHandler(String name, int id, Cla
return t;
}
if (clazz.isAssignableFrom(syncHandler.getClass())) {
return (T) syncHandler;
return clazz.cast(syncHandler);
}
throw new IllegalStateException("SyncHandler for key " + makeSyncKey(name, id) + " is of type " + syncHandler.getClass() + ", but type " + clazz + " was expected!");
}
Expand Down Expand Up @@ -434,11 +434,10 @@ public Collection<SlotGroup> getSlotGroups() {
return findSyncHandler(name, 0);
}

@SuppressWarnings("unchecked")
public <T extends SyncHandler> @Nullable T findSyncHandlerNullable(String name, int id, Class<T> type) {
SyncHandler syncHandler = this.syncHandlers.get(makeSyncKey(name, id));
if (syncHandler != null && type.isAssignableFrom(syncHandler.getClass())) {
return (T) syncHandler;
return type.cast(syncHandler);
}
return null;
}
Expand All @@ -447,7 +446,6 @@ public Collection<SlotGroup> getSlotGroups() {
return findSyncHandlerNullable(name, 0, type);
}

@SuppressWarnings("unchecked")
public <T extends SyncHandler> @NotNull T findSyncHandler(String name, int id, Class<T> type) {
SyncHandler syncHandler = this.syncHandlers.get(makeSyncKey(name, id));
if (syncHandler == null) {
Expand All @@ -457,7 +455,7 @@ public Collection<SlotGroup> getSlotGroups() {
throw new ClassCastException("Expected to find sync handler with key '" + makeSyncKey(name, id) + "' of type '" + type.getName()
+ "', but found type '" + syncHandler.getClass().getName() + "'.");
}
return (T) syncHandler;
return type.cast(syncHandler);
}

public <T extends SyncHandler> @NotNull T findSyncHandler(String name, Class<T> type) {
Expand Down