Skip to content

Commit 20034df

Browse files
committed
Move file locations, modernize api, hook with vault
1 parent a8c15b8 commit 20034df

49 files changed

Lines changed: 350 additions & 247 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

build.gradle

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -55,18 +55,20 @@ dependencies {
5555
implementation 'com.github.brcdev-minecraft:shopgui-api:2.1.1'
5656
implementation files('lib/BossShopPro.jar')
5757
implementation files('lib/MVdWPlaceholderAPI.jar')
58+
59+
compileOnly "com.github.MilkBowl:VaultAPI:1.7"
5860
compile 'com.zaxxer:HikariCP:3.4.5'
5961
compile 'org.slf4j:slf4j-site:2.0.0-alpha1'
6062

6163
}
6264

63-
publishing {
64-
publications {
65-
maven(MavenPublication) {
66-
from(components.java)
67-
}
68-
}
69-
}
65+
//publishing {
66+
// publications {
67+
// maven(MavenPublication) {
68+
// from(components.java)
69+
// }
70+
// }
71+
//}
7072

7173
processResources {
7274
from(sourceSets.main.resources.srcDirs) {

docs/constant-values.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ <h2 title="me.playernguyen">me.playernguyen.*</h2>
137137
</thead>
138138
<tbody>
139139
<tr class="altColor">
140-
<td class="colFirst"><a id="me.playernguyen.opteco.configuration.OptEcoLanguageLoader.COLOR_SYMBOL">
140+
<td class="colFirst"><a id="me.playernguyen.opteco.language.OptEcoLanguageLoader.COLOR_SYMBOL">
141141
<!-- -->
142142
</a><code>public&nbsp;static&nbsp;final&nbsp;char</code></td>
143143
<th class="colSecond" scope="row"><code><a href="me/playernguyen/opteco/configuration/OptEcoLanguageLoader.html#COLOR_SYMBOL">COLOR_SYMBOL</a></code></th>

docs/index-all.html

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -345,7 +345,7 @@ <h2 class="title">G</h2>
345345
</dd>
346346
<dt><span class="memberNameLink"><a href="me/playernguyen/opteco/account/SQLAccountDatabase.html#getBalance(java.util.UUID)">getBalance(UUID)</a></span> - Method in class me.playernguyen.opteco.account.<a href="me/playernguyen/opteco/account/SQLAccountDatabase.html" title="class in me.playernguyen.opteco.account">SQLAccountDatabase</a></dt>
347347
<dd>&nbsp;</dd>
348-
<dt><span class="memberNameLink"><a href="me/playernguyen/opteco/configuration/OptEcoLoaderAbstract.html#getBool(me.playernguyen.opteco.OptEcoConfiguration)">getBool(OptEcoConfiguration)</a></span> - Method in class me.playernguyen.opteco.configuration.<a href="me/playernguyen/opteco/configuration/OptEcoLoaderAbstract.html" title="class in me.playernguyen.opteco.configuration">OptEcoLoaderAbstract</a></dt>
348+
<dt><span class="memberNameLink"><a href="me/playernguyen/opteco/configuration/OptEcoLoaderAbstract.html#getBool(me.playernguyen.opteco.configuration.OptEcoConfiguration)">getBool(OptEcoConfiguration)</a></span> - Method in class me.playernguyen.opteco.configuration.<a href="me/playernguyen/opteco/configuration/OptEcoLoaderAbstract.html" title="class in me.playernguyen.opteco.configuration">OptEcoLoaderAbstract</a></dt>
349349
<dd>&nbsp;</dd>
350350
<dt><span class="memberNameLink"><a href="me/playernguyen/opteco/bStats/Metrics.AdvancedBarChart.html#getChartData()">getChartData()</a></span> - Method in class me.playernguyen.opteco.bStats.<a href="me/playernguyen/opteco/bStats/Metrics.AdvancedBarChart.html" title="class in me.playernguyen.opteco.bStats">Metrics.AdvancedBarChart</a></dt>
351351
<dd>&nbsp;</dd>
@@ -369,7 +369,7 @@ <h2 class="title">G</h2>
369369
<dd>&nbsp;</dd>
370370
<dt><span class="memberNameLink"><a href="me/playernguyen/opteco/OptEco.html#getCommandManager()">getCommandManager()</a></span> - Method in class me.playernguyen.opteco.<a href="me/playernguyen/opteco/OptEco.html" title="class in me.playernguyen.opteco">OptEco</a></dt>
371371
<dd>&nbsp;</dd>
372-
<dt><span class="memberNameLink"><a href="me/playernguyen/opteco/configuration/OptEcoConfigurationLoader.html#getConfig(me.playernguyen.opteco.OptEcoConfiguration)">getConfig(OptEcoConfiguration)</a></span> - Method in class me.playernguyen.opteco.configuration.<a href="me/playernguyen/opteco/configuration/OptEcoConfigurationLoader.html" title="class in me.playernguyen.opteco.configuration">OptEcoConfigurationLoader</a></dt>
372+
<dt><span class="memberNameLink"><a href="me/playernguyen/opteco/configuration/OptEcoConfigurationLoader.html#getConfig(me.playernguyen.opteco.configuration.OptEcoConfiguration)">getConfig(OptEcoConfiguration)</a></span> - Method in class me.playernguyen.opteco.configuration.<a href="me/playernguyen/opteco/configuration/OptEcoConfigurationLoader.html" title="class in me.playernguyen.opteco.configuration">OptEcoConfigurationLoader</a></dt>
373373
<dd>&nbsp;</dd>
374374
<dt><span class="memberNameLink"><a href="me/playernguyen/opteco/configuration/OptEcoLoaderAbstract.html#getConfiguration()">getConfiguration()</a></span> - Method in class me.playernguyen.opteco.configuration.<a href="me/playernguyen/opteco/configuration/OptEcoLoaderAbstract.html" title="class in me.playernguyen.opteco.configuration">OptEcoLoaderAbstract</a></dt>
375375
<dd>&nbsp;</dd>
@@ -411,7 +411,7 @@ <h2 class="title">G</h2>
411411
<dd>&nbsp;</dd>
412412
<dt><span class="memberNameLink"><a href="me/playernguyen/opteco/command/SubCommand.html#getDescription()">getDescription()</a></span> - Method in class me.playernguyen.opteco.command.<a href="me/playernguyen/opteco/command/SubCommand.html" title="class in me.playernguyen.opteco.command">SubCommand</a></dt>
413413
<dd>&nbsp;</dd>
414-
<dt><span class="memberNameLink"><a href="me/playernguyen/opteco/configuration/OptEcoLoaderAbstract.html#getDouble(me.playernguyen.opteco.OptEcoConfiguration)">getDouble(OptEcoConfiguration)</a></span> - Method in class me.playernguyen.opteco.configuration.<a href="me/playernguyen/opteco/configuration/OptEcoLoaderAbstract.html" title="class in me.playernguyen.opteco.configuration">OptEcoLoaderAbstract</a></dt>
414+
<dt><span class="memberNameLink"><a href="me/playernguyen/opteco/configuration/OptEcoLoaderAbstract.html#getDouble(me.playernguyen.opteco.configuration.OptEcoConfiguration)">getDouble(OptEcoConfiguration)</a></span> - Method in class me.playernguyen.opteco.configuration.<a href="me/playernguyen/opteco/configuration/OptEcoLoaderAbstract.html" title="class in me.playernguyen.opteco.configuration">OptEcoLoaderAbstract</a></dt>
415415
<dd>&nbsp;</dd>
416416
<dt><span class="memberNameLink"><a href="me/playernguyen/opteco/account/SQLAccountDatabase.html#getEstablish()">getEstablish()</a></span> - Method in class me.playernguyen.opteco.account.<a href="me/playernguyen/opteco/account/SQLAccountDatabase.html" title="class in me.playernguyen.opteco.account">SQLAccountDatabase</a></dt>
417417
<dd>
@@ -421,7 +421,7 @@ <h2 class="title">G</h2>
421421
<dd>&nbsp;</dd>
422422
<dt><span class="memberNameLink"><a href="me/playernguyen/opteco/configuration/OptEcoLoaderAbstract.html#getFile()">getFile()</a></span> - Method in class me.playernguyen.opteco.configuration.<a href="me/playernguyen/opteco/configuration/OptEcoLoaderAbstract.html" title="class in me.playernguyen.opteco.configuration">OptEcoLoaderAbstract</a></dt>
423423
<dd>&nbsp;</dd>
424-
<dt><span class="memberNameLink"><a href="me/playernguyen/opteco/configuration/OptEcoLoaderAbstract.html#getFloat(me.playernguyen.opteco.OptEcoConfiguration)">getFloat(OptEcoConfiguration)</a></span> - Method in class me.playernguyen.opteco.configuration.<a href="me/playernguyen/opteco/configuration/OptEcoLoaderAbstract.html" title="class in me.playernguyen.opteco.configuration">OptEcoLoaderAbstract</a></dt>
424+
<dt><span class="memberNameLink"><a href="me/playernguyen/opteco/configuration/OptEcoLoaderAbstract.html#getFloat(me.playernguyen.opteco.configuration.OptEcoConfiguration)">getFloat(OptEcoConfiguration)</a></span> - Method in class me.playernguyen.opteco.configuration.<a href="me/playernguyen/opteco/configuration/OptEcoLoaderAbstract.html" title="class in me.playernguyen.opteco.configuration">OptEcoLoaderAbstract</a></dt>
425425
<dd>&nbsp;</dd>
426426
<dt><span class="memberNameLink"><a href="me/playernguyen/opteco/event/OptEcoPlayerPendingEvent.html#getHandlerList()">getHandlerList()</a></span> - Static method in class me.playernguyen.opteco.event.<a href="me/playernguyen/opteco/event/OptEcoPlayerPendingEvent.html" title="class in me.playernguyen.opteco.event">OptEcoPlayerPendingEvent</a></dt>
427427
<dd>&nbsp;</dd>
@@ -451,9 +451,9 @@ <h2 class="title">G</h2>
451451
<dd>&nbsp;</dd>
452452
<dt><span class="memberNameLink"><a href="me/playernguyen/opteco/schedule/OptEcoRunnable.html#getInstance()">getInstance()</a></span> - Method in class me.playernguyen.opteco.schedule.<a href="me/playernguyen/opteco/schedule/OptEcoRunnable.html" title="class in me.playernguyen.opteco.schedule">OptEcoRunnable</a></dt>
453453
<dd>&nbsp;</dd>
454-
<dt><span class="memberNameLink"><a href="me/playernguyen/opteco/configuration/OptEcoLoaderAbstract.html#getInt(me.playernguyen.opteco.OptEcoConfiguration)">getInt(OptEcoConfiguration)</a></span> - Method in class me.playernguyen.opteco.configuration.<a href="me/playernguyen/opteco/configuration/OptEcoLoaderAbstract.html" title="class in me.playernguyen.opteco.configuration">OptEcoLoaderAbstract</a></dt>
454+
<dt><span class="memberNameLink"><a href="me/playernguyen/opteco/configuration/OptEcoLoaderAbstract.html#getInt(me.playernguyen.opteco.configuration.OptEcoConfiguration)">getInt(OptEcoConfiguration)</a></span> - Method in class me.playernguyen.opteco.configuration.<a href="me/playernguyen/opteco/configuration/OptEcoLoaderAbstract.html" title="class in me.playernguyen.opteco.configuration">OptEcoLoaderAbstract</a></dt>
455455
<dd>&nbsp;</dd>
456-
<dt><span class="memberNameLink"><a href="me/playernguyen/opteco/configuration/OptEcoLanguageLoader.html#getLanguage(me.playernguyen.opteco.OptEcoLanguage)">getLanguage(OptEcoLanguage)</a></span> - Method in class me.playernguyen.opteco.configuration.<a href="me/playernguyen/opteco/configuration/OptEcoLanguageLoader.html" title="class in me.playernguyen.opteco.configuration">OptEcoLanguageLoader</a></dt>
456+
<dt><span class="memberNameLink"><a href="me/playernguyen/opteco/configuration/OptEcoLanguageLoader.html#getLanguage(me.playernguyen.opteco.language.OptEcoLanguage)">getLanguage(OptEcoLanguage)</a></span> - Method in class me.playernguyen.opteco.configuration.<a href="me/playernguyen/opteco/configuration/OptEcoLanguageLoader.html" title="class in me.playernguyen.opteco.configuration">OptEcoLanguageLoader</a></dt>
457457
<dd>&nbsp;</dd>
458458
<dt><span class="memberNameLink"><a href="me/playernguyen/opteco/OptEco.html#getLanguageLoader()">getLanguageLoader()</a></span> - Method in class me.playernguyen.opteco.<a href="me/playernguyen/opteco/OptEco.html" title="class in me.playernguyen.opteco">OptEco</a></dt>
459459
<dd>&nbsp;</dd>
@@ -547,7 +547,7 @@ <h2 class="title">G</h2>
547547
</dd>
548548
<dt><span class="memberNameLink"><a href="me/playernguyen/opteco/bossshoppro/OptEcoBossShopPro.html#getPoints(org.bukkit.OfflinePlayer)">getPoints(OfflinePlayer)</a></span> - Method in class me.playernguyen.opteco.api.bossshoppro.<a href="me/playernguyen/opteco/bossshoppro/OptEcoBossShopPro.html" title="class in me.playernguyen.opteco.api.bossshoppro">OptEcoBossShopPro</a></dt>
549549
<dd>&nbsp;</dd>
550-
<dt><span class="memberNameLink"><a href="me/playernguyen/opteco/configuration/OptEcoLanguageLoader.html#getRawLanguage(me.playernguyen.opteco.OptEcoLanguage)">getRawLanguage(OptEcoLanguage)</a></span> - Method in class me.playernguyen.opteco.configuration.<a href="me/playernguyen/opteco/configuration/OptEcoLanguageLoader.html" title="class in me.playernguyen.opteco.configuration">OptEcoLanguageLoader</a></dt>
550+
<dt><span class="memberNameLink"><a href="me/playernguyen/opteco/configuration/OptEcoLanguageLoader.html#getRawLanguage(me.playernguyen.opteco.language.OptEcoLanguage)">getRawLanguage(OptEcoLanguage)</a></span> - Method in class me.playernguyen.opteco.configuration.<a href="me/playernguyen/opteco/configuration/OptEcoLanguageLoader.html" title="class in me.playernguyen.opteco.configuration">OptEcoLanguageLoader</a></dt>
551551
<dd>&nbsp;</dd>
552552
<dt><span class="memberNameLink"><a href="me/playernguyen/opteco/transaction/TransactionResult.html#getReceiver()">getReceiver()</a></span> - Method in class me.playernguyen.opteco.transaction.<a href="me/playernguyen/opteco/transaction/TransactionResult.html" title="class in me.playernguyen.opteco.transaction">TransactionResult</a></dt>
553553
<dd>&nbsp;</dd>
@@ -575,7 +575,7 @@ <h2 class="title">G</h2>
575575
<dd>
576576
<div class="block">Storage type of configuration</div>
577577
</dd>
578-
<dt><span class="memberNameLink"><a href="me/playernguyen/opteco/configuration/OptEcoLoaderAbstract.html#getString(me.playernguyen.opteco.OptEcoConfiguration)">getString(OptEcoConfiguration)</a></span> - Method in class me.playernguyen.opteco.configuration.<a href="me/playernguyen/opteco/configuration/OptEcoLoaderAbstract.html" title="class in me.playernguyen.opteco.configuration">OptEcoLoaderAbstract</a></dt>
578+
<dt><span class="memberNameLink"><a href="me/playernguyen/opteco/configuration/OptEcoLoaderAbstract.html#getString(me.playernguyen.opteco.configuration.OptEcoConfiguration)">getString(OptEcoConfiguration)</a></span> - Method in class me.playernguyen.opteco.configuration.<a href="me/playernguyen/opteco/configuration/OptEcoLoaderAbstract.html" title="class in me.playernguyen.opteco.configuration">OptEcoLoaderAbstract</a></dt>
579579
<dd>&nbsp;</dd>
580580
<dt><span class="memberNameLink"><a href="me/playernguyen/opteco/command/OptEcoAbstractCommand.html#getSubAsHelp(org.bukkit.command.CommandSender)">getSubAsHelp(CommandSender)</a></span> - Method in class me.playernguyen.opteco.command.<a href="me/playernguyen/opteco/command/OptEcoAbstractCommand.html" title="class in me.playernguyen.opteco.command">OptEcoAbstractCommand</a></dt>
581581
<dd>&nbsp;</dd>

docs/me/playernguyen/opteco/OptEcoConfiguration.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ <h1 title="Enum OptEcoConfiguration" class="title">Enum OptEcoConfiguration</h1>
8888
<div class="contentContainer">
8989
<div class="inheritance" title="Inheritance Tree">java.lang.Object
9090
<div class="inheritance">java.lang.Enum&lt;<a href="OptEcoConfiguration.html" title="enum in me.playernguyen.opteco">OptEcoConfiguration</a>&gt;
91-
<div class="inheritance">me.playernguyen.opteco.OptEcoConfiguration</div>
91+
<div class="inheritance">me.playernguyen.opteco.configuration.OptEcoConfiguration</div>
9292
</div>
9393
</div>
9494
<section class="description">

docs/me/playernguyen/opteco/OptEcoLanguage.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ <h1 title="Enum OptEcoLanguage" class="title">Enum OptEcoLanguage</h1>
8888
<div class="contentContainer">
8989
<div class="inheritance" title="Inheritance Tree">java.lang.Object
9090
<div class="inheritance">java.lang.Enum&lt;<a href="OptEcoLanguage.html" title="enum in me.playernguyen.opteco">OptEcoLanguage</a>&gt;
91-
<div class="inheritance">me.playernguyen.opteco.OptEcoLanguage</div>
91+
<div class="inheritance">me.playernguyen.opteco.language.OptEcoLanguage</div>
9292
</div>
9393
</div>
9494
<section class="description">

docs/me/playernguyen/opteco/api/OptEcoAPI.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ <h1 title="Class OptEcoAPI" class="title">Class OptEcoAPI</h1>
8787
</div>
8888
<div class="contentContainer">
8989
<div class="inheritance" title="Inheritance Tree">java.lang.Object
90-
<div class="inheritance">me.playernguyen.opteco.api.OptEcoAPI</div>
90+
<div class="inheritance">me.playernguyen.opteco.api.OptEcoAPIAbstract</div>
9191
</div>
9292
<section class="description">
9393
<dl>

docs/me/playernguyen/opteco/configuration/OptEcoConfigurationLoader.html

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ <h2>Method Summary</h2>
145145
<tbody>
146146
<tr class="altColor" id="i0">
147147
<td class="colFirst"><code>java.lang.Object</code></td>
148-
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getConfig(me.playernguyen.opteco.OptEcoConfiguration)">getConfig</a></span>&#8203;(<a href="../OptEcoConfiguration.html" title="enum in me.playernguyen.opteco">OptEcoConfiguration</a>&nbsp;configuration)</code></th>
148+
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getConfig(me.playernguyen.opteco.configuration.OptEcoConfiguration)">getConfig</a></span>&#8203;(<a href="../OptEcoConfiguration.html" title="enum in me.playernguyen.opteco">OptEcoConfiguration</a>&nbsp;configuration)</code></th>
149149
<td class="colLast">&nbsp;</td>
150150
</tr>
151151
<tr class="rowColor" id="i1">
@@ -161,7 +161,7 @@ <h2>Method Summary</h2>
161161
<h3>Methods inherited from class&nbsp;me.playernguyen.opteco.configuration.<a href="OptEcoLoaderAbstract.html" title="class in me.playernguyen.opteco.configuration">OptEcoLoaderAbstract</a></h3>
162162
<a id="methods.inherited.from.class.me.playernguyen.opteco.configuration.OptEcoLoaderAbstract">
163163
<!-- -->
164-
</a><code><a href="OptEcoLoaderAbstract.html#getBool(me.playernguyen.opteco.OptEcoConfiguration)">getBool</a>, <a href="OptEcoLoaderAbstract.html#getConfiguration()">getConfiguration</a>, <a href="OptEcoLoaderAbstract.html#getDouble(me.playernguyen.opteco.OptEcoConfiguration)">getDouble</a>, <a href="OptEcoLoaderAbstract.html#getFile()">getFile</a>, <a href="OptEcoLoaderAbstract.html#getFloat(me.playernguyen.opteco.OptEcoConfiguration)">getFloat</a>, <a href="OptEcoLoaderAbstract.html#getHeader()">getHeader</a>, <a href="OptEcoLoaderAbstract.html#getInt(me.playernguyen.opteco.OptEcoConfiguration)">getInt</a>, <a href="OptEcoLoaderAbstract.html#getString(me.playernguyen.opteco.OptEcoConfiguration)">getString</a>, <a href="OptEcoLoaderAbstract.html#reload()">reload</a>, <a href="OptEcoLoaderAbstract.html#save()">save</a>, <a href="OptEcoLoaderAbstract.html#setConfiguration(org.bukkit.configuration.file.YamlConfiguration)">setConfiguration</a>, <a href="OptEcoLoaderAbstract.html#setFile(java.io.File)">setFile</a>, <a href="OptEcoLoaderAbstract.html#setHeader(java.lang.String)">setHeader</a></code></div>
164+
</a><code><a href="OptEcoLoaderAbstract.html#getBool(me.playernguyen.opteco.configuration.OptEcoConfiguration)">getBool</a>, <a href="OptEcoLoaderAbstract.html#getConfiguration()">getConfiguration</a>, <a href="OptEcoLoaderAbstract.html#getDouble(me.playernguyen.opteco.configuration.OptEcoConfiguration)">getDouble</a>, <a href="OptEcoLoaderAbstract.html#getFile()">getFile</a>, <a href="OptEcoLoaderAbstract.html#getFloat(me.playernguyen.opteco.configuration.OptEcoConfiguration)">getFloat</a>, <a href="OptEcoLoaderAbstract.html#getHeader()">getHeader</a>, <a href="OptEcoLoaderAbstract.html#getInt(me.playernguyen.opteco.configuration.OptEcoConfiguration)">getInt</a>, <a href="OptEcoLoaderAbstract.html#getString(me.playernguyen.opteco.configuration.OptEcoConfiguration)">getString</a>, <a href="OptEcoLoaderAbstract.html#reload()">reload</a>, <a href="OptEcoLoaderAbstract.html#save()">save</a>, <a href="OptEcoLoaderAbstract.html#setConfiguration(org.bukkit.configuration.file.YamlConfiguration)">setConfiguration</a>, <a href="OptEcoLoaderAbstract.html#setFile(java.io.File)">setFile</a>, <a href="OptEcoLoaderAbstract.html#setHeader(java.lang.String)">setHeader</a></code></div>
165165
<div class="inheritedList">
166166
<h3>Methods inherited from class&nbsp;me.playernguyen.opteco.<a href="../OptEcoImplementation.html" title="class in me.playernguyen.opteco">OptEcoImplementation</a></h3>
167167
<a id="methods.inherited.from.class.me.playernguyen.opteco.OptEcoImplementation">
@@ -203,7 +203,7 @@ <h2>Method Details</h2>
203203
<ul class="blockList">
204204
<li class="blockList">
205205
<section class="detail">
206-
<h3><a id="getConfig(me.playernguyen.opteco.OptEcoConfiguration)">getConfig</a></h3>
206+
<h3><a id="getConfig(me.playernguyen.opteco.configuration.OptEcoConfiguration)">getConfig</a></h3>
207207
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType">java.lang.Object</span>&nbsp;<span class="memberName">getConfig</span>&#8203;(<span class="arguments"><a href="../OptEcoConfiguration.html" title="enum in me.playernguyen.opteco">OptEcoConfiguration</a>&nbsp;configuration)</span></div>
208208
</section>
209209
</li>

0 commit comments

Comments
 (0)