Added some static analysis tools to the build, fix a few bugs found

This commit is contained in:
Avi Weinstock
2022-08-14 03:56:21 +00:00
committed by Ryan
parent 31734cb540
commit 644bdbfebd
9 changed files with 813 additions and 25 deletions
+10 -10
View File
@@ -130116,7 +130116,7 @@
"tradeable": "true",
"archery_ticket_price": "0",
"id": "13879",
"bonuses": "0,0,0,0,105,0,0,0,0,0,0,0,0,0,0"
"bonuses": "0,0,0,0,105,0,0,0,0,0,0,0,0,0,145"
},
{
"requirements": "{4,78}",
@@ -130138,7 +130138,7 @@
"tradeable": "true",
"archery_ticket_price": "0",
"id": "13880",
"bonuses": "0,0,0,0,105,0,0,0,0,0,0,0,0,0,0"
"bonuses": "0,0,0,0,105,0,0,0,0,0,0,0,0,0,145"
},
{
"requirements": "{4,78}",
@@ -130160,7 +130160,7 @@
"tradeable": "true",
"archery_ticket_price": "0",
"id": "13881",
"bonuses": "0,0,0,0,105,0,0,0,0,0,0,0,0,0,0"
"bonuses": "0,0,0,0,105,0,0,0,0,0,0,0,0,0,145"
},
{
"requirements": "{4,78}",
@@ -130182,7 +130182,7 @@
"tradeable": "true",
"archery_ticket_price": "0",
"id": "13882",
"bonuses": "0,0,0,0,105,0,0,0,0,0,0,0,0,0,0"
"bonuses": "0,0,0,0,105,0,0,0,0,0,0,0,0,0,145"
},
{
"requirements": "{4,78}",
@@ -130203,7 +130203,7 @@
"tradeable": "true",
"archery_ticket_price": "0",
"id": "13883",
"bonuses": "0,0,0,0,93,0,0,0,0,0,0,0,0,0,0"
"bonuses": "0,0,0,0,93,0,0,0,0,0,0,0,0,0,117"
},
{
"requirements": "{1,78}",
@@ -131553,7 +131553,7 @@
"name": "Corrupt morrigan's javelin",
"archery_ticket_price": "0",
"id": "13953",
"bonuses": "0,0,0,0,105,0,0,0,0,0,0,0,0,0,0"
"bonuses": "0,0,0,0,105,0,0,0,0,0,0,0,0,0,145"
},
{
"requirements": "{4,78}",
@@ -131573,7 +131573,7 @@
"name": "C. morrigan's javelin (p)",
"archery_ticket_price": "0",
"id": "13954",
"bonuses": "0,0,0,0,105,0,0,0,0,0,0,0,0,0,0"
"bonuses": "0,0,0,0,105,0,0,0,0,0,0,0,0,0,145"
},
{
"requirements": "{4,78}",
@@ -131593,7 +131593,7 @@
"name": "C. morrigan's javelin (p+)",
"archery_ticket_price": "0",
"id": "13955",
"bonuses": "0,0,0,0,105,0,0,0,0,0,0,0,0,0,0"
"bonuses": "0,0,0,0,105,0,0,0,0,0,0,0,0,0,145"
},
{
"requirements": "{4,78}",
@@ -131613,7 +131613,7 @@
"name": "C. morrigan's javelin (p++)",
"archery_ticket_price": "0",
"id": "13956",
"bonuses": "0,0,0,0,105,0,0,0,0,0,0,0,0,0,0"
"bonuses": "0,0,0,0,105,0,0,0,0,0,0,0,0,0,145"
},
{
"requirements": "{4,78}",
@@ -131632,7 +131632,7 @@
"name": "C. morrigan's throwing axe",
"archery_ticket_price": "0",
"id": "13957",
"bonuses": "0,0,0,0,93,0,0,0,0,0,0,0,0,0,0"
"bonuses": "0,0,0,0,93,0,0,0,0,0,0,0,0,0,117"
},
{
"requirements": "{0,78}-{4,78}",
+713
View File
@@ -0,0 +1,713 @@
build:
maxIssues: 0
excludeCorrectable: false
weights:
# complexity: 2
# LongParameterList: 1
# style: 1
# comments: 1
config:
validation: true
warningsAsErrors: false
# when writing own rules with new properties, exclude the property path e.g.: 'my_rule_set,.*>.*>[my_property]'
excludes: ''
processors:
active: true
exclude:
- 'DetektProgressListener'
# - 'KtFileCountProcessor'
# - 'PackageCountProcessor'
# - 'ClassCountProcessor'
# - 'FunctionCountProcessor'
# - 'PropertyCountProcessor'
# - 'ProjectComplexityProcessor'
# - 'ProjectCognitiveComplexityProcessor'
# - 'ProjectLLOCProcessor'
# - 'ProjectCLOCProcessor'
# - 'ProjectLOCProcessor'
# - 'ProjectSLOCProcessor'
# - 'LicenseHeaderLoaderExtension'
console-reports:
active: true
exclude:
- 'ProjectStatisticsReport'
- 'ComplexityReport'
- 'NotificationReport'
- 'FindingsReport'
- 'FileBasedFindingsReport'
# - 'LiteFindingsReport'
output-reports:
active: true
exclude:
# - 'TxtOutputReport'
# - 'XmlOutputReport'
# - 'HtmlOutputReport'
# - 'MdOutputReport'
comments:
active: true
AbsentOrWrongFileLicense:
active: false
licenseTemplateFile: 'license.template'
licenseTemplateIsRegex: false
CommentOverPrivateFunction:
active: false
CommentOverPrivateProperty:
active: false
DeprecatedBlockTag:
active: false
EndOfSentenceFormat:
active: false
endOfSentenceFormat: '([.?!][ \t\n\r\f<])|([.?!:]$)'
KDocReferencesNonPublicProperty:
active: false
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**']
OutdatedDocumentation:
active: false
matchTypeParameters: true
matchDeclarationsOrder: true
allowParamOnConstructorProperties: false
UndocumentedPublicClass:
active: false
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**']
searchInNestedClass: true
searchInInnerClass: true
searchInInnerObject: true
searchInInnerInterface: true
UndocumentedPublicFunction:
active: false
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**']
UndocumentedPublicProperty:
active: false
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**']
complexity:
active: true
ComplexCondition:
active: false
threshold: 4
ComplexInterface:
active: false
threshold: 10
includeStaticDeclarations: false
includePrivateDeclarations: false
ComplexMethod:
active: false
threshold: 15
ignoreSingleWhenExpression: false
ignoreSimpleWhenEntries: false
ignoreNestingFunctions: false
nestingFunctions:
- 'also'
- 'apply'
- 'forEach'
- 'isNotNull'
- 'ifNull'
- 'let'
- 'run'
- 'use'
- 'with'
LabeledExpression:
active: false
ignoredLabels: []
LargeClass:
active: false
threshold: 600
LongMethod:
active: false
threshold: 60
LongParameterList:
active: false
functionThreshold: 6
constructorThreshold: 7
ignoreDefaultParameters: false
ignoreDataClasses: true
ignoreAnnotatedParameter: []
MethodOverloading:
active: false
threshold: 6
NamedArguments:
active: false
threshold: 3
ignoreArgumentsMatchingNames: false
NestedBlockDepth:
active: false
threshold: 4
NestedScopeFunctions:
active: false
threshold: 1
functions:
- 'kotlin.apply'
- 'kotlin.run'
- 'kotlin.with'
- 'kotlin.let'
- 'kotlin.also'
ReplaceSafeCallChainWithRun:
active: false
StringLiteralDuplication:
active: false
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**']
threshold: 3
ignoreAnnotation: true
excludeStringsWithLessThan5Characters: true
ignoreStringsRegex: '$^'
TooManyFunctions:
active: false
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**']
thresholdInFiles: 11
thresholdInClasses: 11
thresholdInInterfaces: 11
thresholdInObjects: 11
thresholdInEnums: 11
ignoreDeprecated: false
ignorePrivate: false
ignoreOverridden: false
coroutines:
active: true
GlobalCoroutineUsage:
active: false
InjectDispatcher:
active: true
dispatcherNames:
- 'IO'
- 'Default'
- 'Unconfined'
RedundantSuspendModifier:
active: true
SleepInsteadOfDelay:
active: true
SuspendFunWithCoroutineScopeReceiver:
active: false
SuspendFunWithFlowReturnType:
active: true
empty-blocks:
active: false
EmptyCatchBlock:
active: true
allowedExceptionNameRegex: '_|(ignore|expected).*'
EmptyClassBlock:
active: true
EmptyDefaultConstructor:
active: true
EmptyDoWhileBlock:
active: true
EmptyElseBlock:
active: true
EmptyFinallyBlock:
active: true
EmptyForBlock:
active: true
EmptyFunctionBlock:
active: true
ignoreOverridden: false
EmptyIfBlock:
active: true
EmptyInitBlock:
active: true
EmptyKtFile:
active: true
EmptySecondaryConstructor:
active: true
EmptyTryBlock:
active: true
EmptyWhenBlock:
active: true
EmptyWhileBlock:
active: true
exceptions:
active: true
ExceptionRaisedInUnexpectedLocation:
active: true
methodNames:
- 'equals'
- 'finalize'
- 'hashCode'
- 'toString'
InstanceOfCheckForException:
active: false
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**']
NotImplementedDeclaration:
active: false
ObjectExtendsThrowable:
active: false
PrintStackTrace:
active: false
RethrowCaughtException:
active: true
ReturnFromFinally:
active: true
ignoreLabeled: false
SwallowedException:
active: false
ignoredExceptionTypes:
- 'InterruptedException'
- 'MalformedURLException'
- 'NumberFormatException'
- 'ParseException'
allowedExceptionNameRegex: '_|(ignore|expected).*'
ThrowingExceptionFromFinally:
active: true
ThrowingExceptionInMain:
active: false
ThrowingExceptionsWithoutMessageOrCause:
active: false
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**']
exceptions:
- 'ArrayIndexOutOfBoundsException'
- 'Exception'
- 'IllegalArgumentException'
- 'IllegalMonitorStateException'
- 'IllegalStateException'
- 'IndexOutOfBoundsException'
- 'NullPointerException'
- 'RuntimeException'
- 'Throwable'
ThrowingNewInstanceOfSameException:
active: true
TooGenericExceptionCaught:
active: false
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**']
exceptionNames:
- 'ArrayIndexOutOfBoundsException'
- 'Error'
- 'Exception'
- 'IllegalMonitorStateException'
- 'IndexOutOfBoundsException'
- 'NullPointerException'
- 'RuntimeException'
- 'Throwable'
allowedExceptionNameRegex: '_|(ignore|expected).*'
TooGenericExceptionThrown:
active: true
exceptionNames:
- 'Error'
- 'Exception'
- 'RuntimeException'
- 'Throwable'
naming:
active: true
BooleanPropertyNaming:
active: false
allowedPattern: '^(is|has|are)'
ignoreOverridden: true
ClassNaming:
active: false
classPattern: '[A-Z][a-zA-Z0-9]*'
ConstructorParameterNaming:
active: false
parameterPattern: '[a-z][A-Za-z0-9]*'
privateParameterPattern: '[a-z][A-Za-z0-9]*'
excludeClassPattern: '$^'
ignoreOverridden: true
EnumNaming:
active: true
enumEntryPattern: '[A-Z][_a-zA-Z0-9]*'
ForbiddenClassName:
active: false
forbiddenName: []
FunctionMaxLength:
active: false
maximumFunctionNameLength: 30
FunctionMinLength:
active: false
minimumFunctionNameLength: 3
FunctionNaming:
active: false
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**']
functionPattern: '[a-z][a-zA-Z0-9]*'
excludeClassPattern: '$^'
ignoreOverridden: true
FunctionParameterNaming:
active: false
parameterPattern: '[a-z][A-Za-z0-9]*'
excludeClassPattern: '$^'
ignoreOverridden: true
InvalidPackageDeclaration:
active: false
rootPackage: ''
requireRootInDeclaration: false
LambdaParameterNaming:
active: false
parameterPattern: '[a-z][A-Za-z0-9]*|_'
MatchingDeclarationName:
active: false
mustBeFirst: true
MemberNameEqualsClassName:
active: false
ignoreOverridden: true
NoNameShadowing:
active: true
NonBooleanPropertyPrefixedWithIs:
active: false
ObjectPropertyNaming:
active: true
constantPattern: '[A-Za-z][_A-Za-z0-9]*'
propertyPattern: '[A-Za-z][_A-Za-z0-9]*'
privatePropertyPattern: '(_)?[A-Za-z][_A-Za-z0-9]*'
PackageNaming:
active: false
packagePattern: '[a-z]+(\.[a-z][A-Za-z0-9]*)*'
TopLevelPropertyNaming:
active: false
constantPattern: '[A-Z][_A-Z0-9]*'
propertyPattern: '[A-Za-z][_A-Za-z0-9]*'
privatePropertyPattern: '_?[A-Za-z][_A-Za-z0-9]*'
VariableMaxLength:
active: false
maximumVariableNameLength: 64
VariableMinLength:
active: false
minimumVariableNameLength: 1
VariableNaming:
active: false
variablePattern: '[a-z][A-Za-z0-9]*'
privateVariablePattern: '(_)?[a-z][A-Za-z0-9]*'
excludeClassPattern: '$^'
ignoreOverridden: true
performance:
active: true
ArrayPrimitive:
active: false
CouldBeSequence:
active: false
threshold: 3
ForEachOnRange:
active: false
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**']
SpreadOperator:
active: false
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**']
UnnecessaryTemporaryInstantiation:
active: true
potential-bugs:
active: true
AvoidReferentialEquality:
active: true
forbiddenTypePatterns:
- 'kotlin.String'
CastToNullableType:
active: false
Deprecation:
active: false
DontDowncastCollectionTypes:
active: false
DoubleMutabilityForCollection:
active: true
mutableTypes:
- 'kotlin.collections.MutableList'
- 'kotlin.collections.MutableMap'
- 'kotlin.collections.MutableSet'
- 'java.util.ArrayList'
- 'java.util.LinkedHashSet'
- 'java.util.HashSet'
- 'java.util.LinkedHashMap'
- 'java.util.HashMap'
DuplicateCaseInWhenExpression:
active: true
ElseCaseInsteadOfExhaustiveWhen:
active: false
EqualsAlwaysReturnsTrueOrFalse:
active: true
EqualsWithHashCodeExist:
active: true
ExitOutsideMain:
active: false
ExplicitGarbageCollectionCall:
active: false
HasPlatformType:
active: true
IgnoredReturnValue:
active: true
restrictToAnnotatedMethods: true
returnValueAnnotations:
- '*.CheckResult'
- '*.CheckReturnValue'
- 'com.google.errorprone.annotations.CheckReturnValue'
ignoreReturnValueAnnotations:
- '*.CanIgnoreReturnValue'
ignoreFunctionCall: []
ImplicitDefaultLocale:
active: true
ImplicitUnitReturnType:
active: false
allowExplicitReturnType: true
InvalidRange:
active: true
IteratorHasNextCallsNextMethod:
active: true
IteratorNotThrowingNoSuchElementException:
active: true
LateinitUsage:
active: false
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**']
ignoreOnClassesPattern: ''
MapGetWithNotNullAssertionOperator:
active: true
MissingPackageDeclaration:
active: false
excludes: ['**/*.kts']
MissingWhenCase:
active: true
allowElseExpression: true
NullCheckOnMutableProperty:
active: false
NullableToStringCall:
active: false
RedundantElseInWhen:
active: true
UnconditionalJumpStatementInLoop:
active: false
UnnecessaryNotNullOperator:
active: true
UnnecessarySafeCall:
active: true
UnreachableCatchBlock:
active: true
UnreachableCode:
active: true
UnsafeCallOnNullableType:
active: true
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**']
UnsafeCast:
active: true
UnusedUnaryOperator:
active: true
UselessPostfixExpression:
active: false
WrongEqualsTypeParameter:
active: true
style:
active: true
CanBeNonNullable:
active: false
CascadingCallWrapping:
active: false
includeElvis: true
ClassOrdering:
active: false
CollapsibleIfStatements:
active: false
DataClassContainsFunctions:
active: false
conversionFunctionPrefix: 'to'
DataClassShouldBeImmutable:
active: false
DestructuringDeclarationWithTooManyEntries:
active: true
maxDestructuringEntries: 3
EqualsNullCall:
active: true
EqualsOnSignatureLine:
active: false
ExplicitCollectionElementAccessMethod:
active: false
ExplicitItLambdaParameter:
active: false
ExpressionBodySyntax:
active: false
includeLineWrapping: false
ForbiddenComment:
active: false
values:
- 'FIXME:'
- 'STOPSHIP:'
- 'TODO:'
allowedPatterns: ''
customMessage: ''
ForbiddenImport:
active: false
imports: []
forbiddenPatterns: ''
ForbiddenMethodCall:
active: false
methods:
- 'kotlin.io.print'
- 'kotlin.io.println'
ForbiddenPublicDataClass:
active: true
excludes: ['**']
ignorePackages:
- '*.internal'
- '*.internal.*'
ForbiddenSuppress:
active: false
rules: []
ForbiddenVoid:
active: true
ignoreOverridden: false
ignoreUsageInGenerics: false
FunctionOnlyReturningConstant:
active: false
ignoreOverridableFunction: true
ignoreActualFunction: true
excludedFunctions: ''
LibraryCodeMustSpecifyReturnType:
active: true
excludes: ['**']
LibraryEntitiesShouldNotBePublic:
active: true
excludes: ['**']
LoopWithTooManyJumpStatements:
active: false
maxJumpCount: 1
MagicNumber:
active: false
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**', '**/*.kts']
ignoreNumbers:
- '-1'
- '0'
- '1'
- '2'
ignoreHashCodeFunction: true
ignorePropertyDeclaration: false
ignoreLocalVariableDeclaration: false
ignoreConstantDeclaration: true
ignoreCompanionObjectPropertyDeclaration: true
ignoreAnnotation: false
ignoreNamedArgument: true
ignoreEnums: false
ignoreRanges: false
ignoreExtensionFunctions: true
MandatoryBracesIfStatements:
active: false
MandatoryBracesLoops:
active: false
MaxChainedCallsOnSameLine:
active: false
maxChainedCalls: 5
MaxLineLength:
active: false
maxLineLength: 120
excludePackageStatements: true
excludeImportStatements: true
excludeCommentStatements: false
MayBeConst:
active: false
ModifierOrder:
active: false
MultilineLambdaItParameter:
active: false
NestedClassesVisibility:
active: true
NewLineAtEndOfFile:
active: false
NoTabs:
active: false
NullableBooleanCheck:
active: false
ObjectLiteralToLambda:
active: true
OptionalAbstractKeyword:
active: true
OptionalUnit:
active: false
OptionalWhenBraces:
active: false
PreferToOverPairSyntax:
active: false
ProtectedMemberInFinalClass:
active: true
RedundantExplicitType:
active: false
RedundantHigherOrderMapUsage:
active: true
RedundantVisibilityModifierRule:
active: false
ReturnCount:
active: false
max: 2
excludedFunctions: 'equals'
excludeLabeled: false
excludeReturnFromLambda: true
excludeGuardClauses: false
SafeCast:
active: true
SerialVersionUIDInSerializableClass:
active: true
SpacingBetweenPackageAndImports:
active: false
ThrowsCount:
active: false
max: 2
excludeGuardClauses: false
TrailingWhitespace:
active: false
UnderscoresInNumericLiterals:
active: false
acceptableLength: 4
allowNonStandardGrouping: false
UnnecessaryAbstractClass:
active: true
UnnecessaryAnnotationUseSiteTarget:
active: false
UnnecessaryApply:
active: true
UnnecessaryBackticks:
active: false
UnnecessaryFilter:
active: true
UnnecessaryInheritance:
active: true
UnnecessaryInnerClass:
active: false
UnnecessaryLet:
active: false
UnnecessaryParentheses:
active: false
UntilInsteadOfRangeTo:
active: false
UnusedImports:
active: false
UnusedPrivateClass:
active: false
UnusedPrivateMember:
active: false
allowedNames: '(_|ignored|expected|serialVersionUID)'
UseAnyOrNoneInsteadOfFind:
active: true
UseArrayLiteralsInAnnotations:
active: true
UseCheckNotNull:
active: true
UseCheckOrError:
active: false
UseDataClass:
active: false
allowVars: false
UseEmptyCounterpart:
active: false
UseIfEmptyOrIfBlank:
active: false
UseIfInsteadOfWhen:
active: false
UseIsNullOrEmpty:
active: true
UseOrEmpty:
active: true
UseRequire:
active: true
UseRequireNotNull:
active: true
UselessCallOnNotNull:
active: true
UtilityClassWithPublicConstructor:
active: false
VarCouldBeVal:
active: true
ignoreLateinitVar: false
WildcardImport:
active: false
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**']
excludeImports:
- 'java.util.*'
+64
View File
@@ -84,6 +84,12 @@
<version>2.0.0-beta6</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.google.errorprone</groupId>
<artifactId>error_prone_annotations</artifactId>
<version>2.9.0</version>
<scope>compile</scope>
</dependency>
</dependencies>
<build>
@@ -190,6 +196,22 @@
<configuration>
<maxmem>1024m</maxmem>
<useIncrementalCompilation>false</useIncrementalCompilation>
<compilerArgs>
<arg>-XDcompilePolicy=simple</arg>
<!-- <arg>-Xplugin:ErrorProne</arg> uncomment when fixing java static analysis errors !-->
</compilerArgs>
<annotationProcessorPaths>
<path>
<groupId>com.google.errorprone</groupId>
<artifactId>error_prone_core</artifactId>
<version>2.9.0</version>
</path>
<!-- Other annotation processors go here.
If 'annotationProcessorPaths' is set, processors will no longer be
discovered on the regular -classpath; see also 'Using Error Prone
together with other annotation processors' below. -->
</annotationProcessorPaths>
</configuration>
<executions>
<!-- Replacing default-compile as it is treated specially by maven -->
@@ -235,6 +257,48 @@
<mainClass>rs09.Server</mainClass>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.8</version>
<executions>
<execution>
<!-- This can be run separately with mvn antrun:run@detekt -->
<id>detekt</id>
<phase>verify</phase>
<configuration>
<target name="detekt">
<java taskname="detekt" dir="${basedir}"
fork="true"
failonerror="true"
classname="io.gitlab.arturbosch.detekt.cli.Main"
classpathref="maven.plugin.classpath">
<arg value="--input"/>
<arg value="${basedir}/src/main/kotlin"/>
<arg value="--excludes"/>
<arg value="**/special/package/internal/**"/>
<arg value="--report"/>
<arg value="xml:${basedir}/reports/detekt.xml"/>
<arg value="--config"/>
<arg value="${basedir}/detekt.yml"/>
<!--
<arg value="-b" />
<arg value="${basedir}/reports/baseline.xml"/>
-->
</java>
</target>
</configuration>
<goals><goal>run</goal></goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>io.gitlab.arturbosch.detekt</groupId>
<artifactId>detekt-cli</artifactId>
<version>1.21.0</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
<repositories>
@@ -12,6 +12,9 @@ import java.nio.ByteBuffer;
import java.util.*;
import java.util.concurrent.atomic.AtomicInteger;
import com.google.errorprone.annotations.CheckReturnValue;
/**
* Represents a container which contains items.
*
@@ -277,6 +280,7 @@ public class Container {
* @param items The set of items.
* @return {@code True} if all items got successfully removed.
*/
@CheckReturnValue
public boolean remove(Item... items) {
boolean removedAll = true;
for (Item item : items) {
@@ -294,6 +298,7 @@ public class Container {
* @param item The item.
* @return {@code True} if the item got removed, {@code false} if not.
*/
@CheckReturnValue
public boolean remove(Item item) {
return remove(item, true);
}
@@ -305,6 +310,7 @@ public class Container {
* @param fireListener If the fire listener should be "notified".
* @return {@code True} if the item got removed, <br> {@code false} if not.
*/
@CheckReturnValue
public boolean remove(Item item, boolean fireListener) {
int slot = getSlot(item);
if (slot != -1) {
@@ -322,6 +328,7 @@ public class Container {
* @return {@code True} if the item got removed, <br> {@code false} if the
* item on the slot was null or the ids didn't match.
*/
@CheckReturnValue
public boolean remove(Item item, int slot, boolean fireListener) {
Item oldItem = items[slot];
if (oldItem == null || oldItem.getId() != item.getId()) {
@@ -415,12 +415,14 @@ class CombatBotAssembler {
skillAmt++
}
when (tier){
Tier.PURE -> bot.skills.setStaticLevel(Skills.DEFENCE,10)
Tier.PURE -> bot.skills.setStaticLevel(Skills.STRENGTH,99)
Tier.PURE -> bot.skills.setStaticLevel(Skills.ATTACK,90)
Tier.PURE -> bot.skills.setStaticLevel(Skills.PRAYER,43)
Tier.PURE -> bot.skills.setStaticLevel(Skills.RANGE,1)
Tier.PURE -> bot.skills.setStaticLevel(Skills.MAGIC,1)
Tier.PURE -> {
bot.skills.setStaticLevel(Skills.DEFENCE,10)
bot.skills.setStaticLevel(Skills.STRENGTH,99)
bot.skills.setStaticLevel(Skills.ATTACK,90)
bot.skills.setStaticLevel(Skills.PRAYER,43)
bot.skills.setStaticLevel(Skills.RANGE,1)
bot.skills.setStaticLevel(Skills.MAGIC,1)
}
}
bot.skills.addExperience(Skills.HITPOINTS, (totalXPAdd / skillAmt) * 0.2)
@@ -528,4 +530,4 @@ class CombatBotAssembler {
val RING_ARCH = arrayOf(6733)
val RICH_MELEE_HELMS = arrayOf(2587,2595,2605,2613,2619,2627,2657,2665,2673,3486,1149,10828,4716,4724,4753)
}
}
@@ -146,12 +146,12 @@ class AvanDialogue (player: Player? = null): DialoguePlugin(player) {
304 -> npc("Well, the last I heard of my brother Johnathon," ,
" he was studying the magical arts, " ,
"and trying to hunt some demon or other out in The Wilderness.").also{stage++}
304 -> npc("Unsurprisingly, I do not believe he is doing a particularly good job of things, ",
305 -> npc("Unsurprisingly, I do not believe he is doing a particularly good job of things, ",
"and spends most of his time recovering from his injuries " ,
"in some tavern or other near the eastern edge of The Wilderness. " ,
"You'll probably find him still there.").also{stage++}
305 -> player("Thanks Avan.").also { stage = 1000 }
306 -> player("Thanks Avan.").also { stage = 1000 }
400 -> player("I am still working on it.").also{stage++}
@@ -35,7 +35,8 @@ class LightSourceExtinguisher : OptionHandler(){
}
fun Container.replace(item: Item, with: Item){
remove(item)
add(with)
if(remove(item)) {
add(with)
}
}
}
}
@@ -73,8 +73,9 @@ class LightSourceLighter : UseWithHandler(590,36,38){
}
fun Container.replace(item: Item, with: Item){
remove(item)
add(with)
if(remove(item)) {
add(with)
}
}
fun light(player: Player, item: Item, lightSource: LightSources): Boolean{
@@ -13,7 +13,7 @@ import java.util.*
@Initializable
class AnimationCommandSet : CommandSet(Privilege.ADMIN) {
protected var npcs: List<NPC> = ArrayList()
private var npcs: List<NPC> = ArrayList()
override fun defineCommands() {