Skip to content

Commit 05b9914

Browse files
committed
Prevent overriding instance suppliers, constructor parameters and command dependencies
1 parent 4599952 commit 05b9914

File tree

1 file changed

+9
-0
lines changed

1 file changed

+9
-0
lines changed

src/main/java/com/freya02/botcommands/CommandsBuilder.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -238,6 +238,9 @@ public CommandsBuilder addPrefix(String prefix) {
238238
* @return This builder for chaining convenience
239239
*/
240240
public <T> CommandsBuilder registerConstructorParameter(Class<T> parameterType, ConstructorParameterSupplier<T> parameterSupplier) {
241+
if (context.getParameterSupplier(parameterType) != null)
242+
throw new IllegalStateException("Parameter supplier already exists for parameter of type " + parameterType.getName());
243+
241244
context.registerConstructorParameter(parameterType, parameterSupplier);
242245

243246
return this;
@@ -253,6 +256,9 @@ public <T> CommandsBuilder registerConstructorParameter(Class<T> parameterType,
253256
* @return This builder for chaining convenience
254257
*/
255258
public <T> CommandsBuilder registerInstanceSupplier(Class<T> classType, InstanceSupplier<T> instanceSupplier) {
259+
if (context.getInstanceSupplier(classType) != null)
260+
throw new IllegalStateException("Instance supplier already exists for class " + classType.getName());
261+
256262
context.registerInstanceSupplier(classType, instanceSupplier);
257263

258264
return this;
@@ -267,6 +273,9 @@ public <T> CommandsBuilder registerInstanceSupplier(Class<T> classType, Instance
267273
* @return This builder for chaining convenience
268274
*/
269275
public <T> CommandsBuilder registerCommandDependency(Class<T> fieldType, Supplier<T> supplier) {
276+
if (context.getCommandDependency(fieldType) != null)
277+
throw new IllegalStateException("Command dependency already exists for fields of type " + fieldType.getName());
278+
270279
context.registerCommandDependency(fieldType, supplier);
271280

272281
return this;

0 commit comments

Comments
 (0)