discord-bot/config/pmd/ruleset.xml
loki5512344 604d3e59a8
refactor: move classes to subpackages, add rating commands, remove R34
- Move image commands to booru/e621 subpackages
- Move economy services to game/ subpackage
- Move level commands/services to admin/tracker/cooldown subpackages
- Move moderation repos to sql/ subpackage
- Move radio/ticket/reactrole classes to subpackages
- Move VoiceHelper/ChoiceOptionParser to feature/utility
- Add 13 rating commands (fat, pp, aura, luck, etc.)
- Remove R34 command (requires API key)
- Add PMD ruleset config
- Add CommandCategories.MEASUREMENTS
- Fix all imports for moved classes
2026-07-29 15:18:57 +02:00

95 lines
4 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<ruleset name="LokiBot PMD Rules"
xmlns="http://pmd.sourceforge.net/ruleset/2.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://pmd.sourceforge.net/ruleset/2.0.0 https://pmd.sourceforge.io/ruleset_2_0_0.xsd">
<description>PMD rules for Loki Discord Bot</description>
<rule ref="category/java/bestpractices.xml">
<exclude name="AbstractClassWithoutAbstractMethod" />
<exclude name="AccessorMethodGeneration" />
<exclude name="ArrayIsStoredDirectly" />
<exclude name="GuardLogStatement" />
<exclude name="JUnitAssertionsShouldIncludeMessage" />
<exclude name="JUnitTestContainsTooManyAsserts" />
<exclude name="JUnitTestsShouldIncludeAssert" />
<exclude name="MethodReturnsInternalArray" />
<exclude name="PreserveStackTrace" />
<exclude name="SystemPrintln" />
<exclude name="UseVarargs" />
</rule>
<rule ref="category/java/codestyle.xml">
<exclude name="AtLeastOneConstructor" />
<exclude name="AvoidFinalLocalVariable" />
<exclude name="CallSuperInConstructor" />
<exclude name="ClassNamingConventions" />
<exclude name="CommentDefaultAccessModifier" />
<exclude name="DefaultPackage" />
<exclude name="FieldDeclarationsShouldBeAtStartOfClass" />
<exclude name="LinguisticNaming" />
<exclude name="LocalVariableCouldBeFinal" />
<exclude name="LongVariable" />
<exclude name="MethodNamingConventions" />
<exclude name="OnlyOneReturn" />
<exclude name="ShortClassName" />
<exclude name="ShortMethodName" />
<exclude name="ShortVariable" />
<exclude name="TooManyStaticImports" />
<exclude name="UnnecessaryAnnotationValueElement" />
<exclude name="UseExplicitTypes" />
</rule>
<rule ref="category/java/design.xml">
<exclude name="AvoidRethrowingException" />
<exclude name="AvoidThrowingNullPointerException" />
<exclude name="AvoidThrowingRawExceptionTypes" />
<exclude name="CouplingBetweenObjects" />
<exclude name="CyclomaticComplexity" />
<exclude name="DataClass" />
<exclude name="ExcessiveImports" />
<exclude name="ExcessivePublicCount" />
<exclude name="GodClass" />
<exclude name="LawOfDemeter" />
<exclude name="LoosePackageCoupling" />
<exclude name="NcssCount" />
<exclude name="NPathComplexity" />
<exclude name="SignatureDeclareThrowsException" />
<exclude name="SingularField" />
<exclude name="TooManyFields" />
<exclude name="TooManyMethods" />
</rule>
<rule ref="category/java/errorprone.xml">
<exclude name="AssignmentInOperand" />
<exclude name="AvoidAccessibilityAlteration" />
<exclude name="AvoidDuplicateLiterals" />
<exclude name="AvoidFieldNameMatchingMethodName" />
<exclude name="AvoidLiteralsInIfCondition" />
<exclude name="CloseResource" />
<exclude name="ConstructorCallsOverridableMethod" />
<exclude name="DataflowAnomalyAnalysis" />
<exclude name="DoNotTerminateVM" />
<exclude name="EmptyCatchBlock" />
<exclude name="MissingSerialVersionUID" />
<exclude name="NonStaticInitializer" />
<exclude name="NullAssignment" />
<exclude name="ReturnEmptyArrayRatherThanNull" />
</rule>
<rule ref="category/java/multithreading.xml">
<exclude name="AvoidSynchronizedAtMethodLevel" />
<exclude name="DoNotUseThreads" />
<exclude name="UseConcurrentHashMap" />
</rule>
<rule ref="category/java/performance.xml">
<exclude name="AvoidInstantiatingObjectsInLoops" />
<exclude name="AvoidFileStream" />
<exclude name="ConsecutiveLiteralAppends" />
<exclude name="InsufficientStringBufferDeclaration" />
<exclude name="StringInstantiation" />
<exclude name="TooFewBranchesForASwitchStatement" />
</rule>
</ruleset>