From 9760a1da4d6a80a9ba5161d8c8845265134a1c89 Mon Sep 17 00:00:00 2001 From: HurricanKai Date: Mon, 31 Jul 2017 12:12:56 +0200 Subject: [PATCH] Trying to find out why drop item isnt loading --- .classpath | 26 + .gitignore | 4 - .metadata/.lock | 0 .metadata/.log | 58 - .../.root/.indexes/history.version | 1 - .../.root/.indexes/properties.index | Bin 151 -> 0 bytes .../.root/.indexes/properties.version | 1 - .../org.eclipse.core.resources/.root/4.tree | Bin 260 -> 0 bytes .../.safetable/org.eclipse.core.resources | Bin 931 -> 0 bytes .../org.eclipse.core.resources.prefs | 2 - .../.settings/org.eclipse.debug.ui.prefs | 3 - .../.settings/org.eclipse.jdt.core.prefs | 8 - .../.settings/org.eclipse.jdt.launching.prefs | 2 - .../.settings/org.eclipse.jdt.ui.prefs | 18 - .../.settings/org.eclipse.search.prefs | 2 - .../.settings/org.eclipse.team.cvs.ui.prefs | 2 - .../.settings/org.eclipse.team.ui.prefs | 2 - .../.settings/org.eclipse.ui.editors.prefs | 2 - .../.settings/org.eclipse.ui.ide.prefs | 5 - .../.settings/org.eclipse.ui.prefs | 2 - .../.settings/org.eclipse.ui.workbench.prefs | 2 - .../org.eclipse.debug.ui/dialog_settings.xml | 8 - .../org.eclipse.e4.workbench/workbench.xmi | 1403 ----------------- .../dialog_settings.xml | 10 - .../externalLibsTimeStamps | Bin 4 -> 0 bytes .../org.eclipse.jdt.core/indexNamesMap.txt | 1 - .../org.eclipse.jdt.core/invalidArchivesCache | Bin 4 -> 0 bytes .../org.eclipse.jdt.core/javaLikeNames.txt | 1 - .../org.eclipse.jdt.core/nonChainingJarsCache | Bin 4 -> 0 bytes .../org.eclipse.jdt.core/savedIndexNames.txt | 1 - .../variablesAndContainers.dat | Bin 115 -> 0 bytes .../org.eclipse.jdt.launching/.install.xml | 4 - .../libraryInfos.xml | 22 - .../org.eclipse.jdt.ui/OpenTypeHistory.xml | 2 - .../QualifiedTypeNameHistory.xml | 4 - .../org.eclipse.jdt.ui/dialog_settings.xml | 32 - .../.workspace/2012/6/22/refactorings.history | 4 - .../.workspace/2012/6/22/refactorings.index | 1 - .../dialog_settings.xml | 7 - .../.cache/clean-cache.properties | 2 - .../org.eclipse.search/dialog_settings.xml | 11 - .../commentTemplates.xml | 2 - .../commitCommentHistory.xml | 2 - .../dialog_settings.xml | 5 - .../repositoriesView.xml | 3 - .../org.eclipse.ui.ide/dialog_settings.xml | 13 - .../org.eclipse.ui.intro/dialog_settings.xml | 4 - .../dialog_settings.xml | 28 - .../org.eclipse.ui.workbench/workingsets.xml | 7 - .metadata/version.ini | 1 - .project | 23 + .settings/org.eclipse.core.resources.prefs | 1 - .../net/apunch/blacksmith/Blacksmith.java | 271 ---- .../net/instinxx/blacksmith/Blacksmith.java | 271 ---- .../instinxx/blacksmith/BlacksmithPlugin.java | 149 -- .../instinxx/blacksmith/util/Settings.java | 100 -- src/main/resources/plugin.yml | 5 - .../apunch/blacksmith/BlacksmithPlugin.class | Bin 0 -> 33348 bytes .../BlacksmithTrait$ReforgeSession.class | Bin 0 -> 7018 bytes .../apunch/blacksmith/BlacksmithTrait.class | Bin 0 -> 11527 bytes .../blacksmith/util/Settings$Setting.class | Bin 0 -> 5661 bytes .../net/apunch/blacksmith/util/Settings.class | Bin 0 -> 2454 bytes 62 files changed, 49 insertions(+), 2489 deletions(-) create mode 100644 .classpath delete mode 100644 .gitignore delete mode 100644 .metadata/.lock delete mode 100644 .metadata/.log delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.root/.indexes/history.version delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.index delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.version delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.root/4.tree delete mode 100644 .metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources delete mode 100644 .metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.core.resources.prefs delete mode 100644 .metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.debug.ui.prefs delete mode 100644 .metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.core.prefs delete mode 100644 .metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.launching.prefs delete mode 100644 .metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.ui.prefs delete mode 100644 .metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.search.prefs delete mode 100644 .metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.team.cvs.ui.prefs delete mode 100644 .metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.team.ui.prefs delete mode 100644 .metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.editors.prefs delete mode 100644 .metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.ide.prefs delete mode 100644 .metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.prefs delete mode 100644 .metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.workbench.prefs delete mode 100644 .metadata/.plugins/org.eclipse.debug.ui/dialog_settings.xml delete mode 100644 .metadata/.plugins/org.eclipse.e4.workbench/workbench.xmi delete mode 100644 .metadata/.plugins/org.eclipse.equinox.p2.ui/dialog_settings.xml delete mode 100644 .metadata/.plugins/org.eclipse.jdt.core/externalLibsTimeStamps delete mode 100644 .metadata/.plugins/org.eclipse.jdt.core/indexNamesMap.txt delete mode 100644 .metadata/.plugins/org.eclipse.jdt.core/invalidArchivesCache delete mode 100644 .metadata/.plugins/org.eclipse.jdt.core/javaLikeNames.txt delete mode 100644 .metadata/.plugins/org.eclipse.jdt.core/nonChainingJarsCache delete mode 100644 .metadata/.plugins/org.eclipse.jdt.core/savedIndexNames.txt delete mode 100644 .metadata/.plugins/org.eclipse.jdt.core/variablesAndContainers.dat delete mode 100644 .metadata/.plugins/org.eclipse.jdt.launching/.install.xml delete mode 100644 .metadata/.plugins/org.eclipse.jdt.launching/libraryInfos.xml delete mode 100644 .metadata/.plugins/org.eclipse.jdt.ui/OpenTypeHistory.xml delete mode 100644 .metadata/.plugins/org.eclipse.jdt.ui/QualifiedTypeNameHistory.xml delete mode 100644 .metadata/.plugins/org.eclipse.jdt.ui/dialog_settings.xml delete mode 100644 .metadata/.plugins/org.eclipse.ltk.core.refactoring/.refactorings/.workspace/2012/6/22/refactorings.history delete mode 100644 .metadata/.plugins/org.eclipse.ltk.core.refactoring/.refactorings/.workspace/2012/6/22/refactorings.index delete mode 100644 .metadata/.plugins/org.eclipse.ltk.ui.refactoring/dialog_settings.xml delete mode 100644 .metadata/.plugins/org.eclipse.pde.core/.cache/clean-cache.properties delete mode 100644 .metadata/.plugins/org.eclipse.search/dialog_settings.xml delete mode 100644 .metadata/.plugins/org.eclipse.team.cvs.ui/commentTemplates.xml delete mode 100644 .metadata/.plugins/org.eclipse.team.cvs.ui/commitCommentHistory.xml delete mode 100644 .metadata/.plugins/org.eclipse.team.cvs.ui/dialog_settings.xml delete mode 100644 .metadata/.plugins/org.eclipse.team.cvs.ui/repositoriesView.xml delete mode 100644 .metadata/.plugins/org.eclipse.ui.ide/dialog_settings.xml delete mode 100644 .metadata/.plugins/org.eclipse.ui.intro/dialog_settings.xml delete mode 100644 .metadata/.plugins/org.eclipse.ui.workbench/dialog_settings.xml delete mode 100644 .metadata/.plugins/org.eclipse.ui.workbench/workingsets.xml delete mode 100644 .metadata/version.ini create mode 100644 .project delete mode 100644 src/main/java/net/apunch/blacksmith/Blacksmith.java delete mode 100644 src/main/java/net/instinxx/blacksmith/Blacksmith.java delete mode 100644 src/main/java/net/instinxx/blacksmith/BlacksmithPlugin.java delete mode 100644 src/main/java/net/instinxx/blacksmith/util/Settings.java delete mode 100644 src/main/resources/plugin.yml create mode 100644 target/classes/net/apunch/blacksmith/BlacksmithPlugin.class create mode 100644 target/classes/net/apunch/blacksmith/BlacksmithTrait$ReforgeSession.class create mode 100644 target/classes/net/apunch/blacksmith/BlacksmithTrait.class create mode 100644 target/classes/net/apunch/blacksmith/util/Settings$Setting.class create mode 100644 target/classes/net/apunch/blacksmith/util/Settings.class diff --git a/.classpath b/.classpath new file mode 100644 index 0000000..fd7ad7f --- /dev/null +++ b/.classpath @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/.gitignore b/.gitignore deleted file mode 100644 index b2a0e87..0000000 --- a/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -/bin -/target -.classpath -.project \ No newline at end of file diff --git a/.metadata/.lock b/.metadata/.lock deleted file mode 100644 index e69de29..0000000 diff --git a/.metadata/.log b/.metadata/.log deleted file mode 100644 index e921336..0000000 --- a/.metadata/.log +++ /dev/null @@ -1,58 +0,0 @@ -!SESSION 2012-06-01 20:37:35.859 ----------------------------------------------- -eclipse.buildId=I20120518-2145 -java.version=1.6.0_31 -java.vendor=Sun Microsystems Inc. -BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=en_US -Command-line arguments: -os win32 -ws win32 -arch x86 -data C:\Documents and Settings\Charles\.ssh\Blacksmith - -!ENTRY org.eclipse.help.base 4 0 2012-06-01 20:39:24.500 -!MESSAGE An error occured while pre-processing help XHTML document "/org.eclipse.platform.doc.user/whatsNew/platform_whatsnew.html" for search indexing -!STACK 0 -org.xml.sax.SAXParseException: Attribute name "allowfullscreen" associated with an element type "iframe" must be followed by the ' = ' character. - at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(Unknown Source) - at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(Unknown Source) - at org.eclipse.help.internal.dynamic.DocumentReader.read(DocumentReader.java:56) - at org.eclipse.help.internal.dynamic.XMLProcessor.process(XMLProcessor.java:49) - at org.eclipse.help.internal.xhtml.DynamicXHTMLProcessor.process(DynamicXHTMLProcessor.java:76) - at org.eclipse.help.internal.search.XHTMLSearchParticipant.preprocess(XHTMLSearchParticipant.java:106) - at org.eclipse.help.search.SearchParticipantXML.addDocument(SearchParticipantXML.java:296) - at org.eclipse.help.internal.search.HTMLSearchParticipant.addDocument(HTMLSearchParticipant.java:51) - at org.eclipse.help.internal.search.SearchIndex.addDocument(SearchIndex.java:231) - at org.eclipse.help.internal.search.IndexingOperation.addDocuments(IndexingOperation.java:252) - at org.eclipse.help.internal.search.IndexingOperation.addNewDocuments(IndexingOperation.java:159) - at org.eclipse.help.internal.search.IndexingOperation.execute(IndexingOperation.java:106) - at org.eclipse.help.internal.search.LocalSearchManager.updateIndex(LocalSearchManager.java:671) - at org.eclipse.help.internal.search.LocalSearchManager.ensureIndexUpdated(LocalSearchManager.java:645) - at org.eclipse.help.internal.search.federated.IndexerJob.run(IndexerJob.java:31) - at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54) - -!ENTRY org.eclipse.help.base 4 4 2012-06-01 20:39:24.593 -!MESSAGE Help documentation could not be indexed completely. -!SUBENTRY 1 org.eclipse.help.base 4 4 2012-06-01 20:39:24.593 -!MESSAGE Exception occurred while adding document /org.eclipse.platform.doc.user/whatsNew/platform_whatsnew.html to index. -!STACK 0 -org.xml.sax.SAXParseException: Premature end of file. - at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source) - at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(Unknown Source) - at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(Unknown Source) - at com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(Unknown Source) - at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(Unknown Source) - at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source) - at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source) - at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source) - at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source) - at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source) - at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source) - at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source) - at javax.xml.parsers.SAXParser.parse(Unknown Source) - at javax.xml.parsers.SAXParser.parse(Unknown Source) - at org.eclipse.help.search.SearchParticipantXML.addDocument(SearchParticipantXML.java:297) - at org.eclipse.help.internal.search.HTMLSearchParticipant.addDocument(HTMLSearchParticipant.java:51) - at org.eclipse.help.internal.search.SearchIndex.addDocument(SearchIndex.java:231) - at org.eclipse.help.internal.search.IndexingOperation.addDocuments(IndexingOperation.java:252) - at org.eclipse.help.internal.search.IndexingOperation.addNewDocuments(IndexingOperation.java:159) - at org.eclipse.help.internal.search.IndexingOperation.execute(IndexingOperation.java:106) - at org.eclipse.help.internal.search.LocalSearchManager.updateIndex(LocalSearchManager.java:671) - at org.eclipse.help.internal.search.LocalSearchManager.ensureIndexUpdated(LocalSearchManager.java:645) - at org.eclipse.help.internal.search.federated.IndexerJob.run(IndexerJob.java:31) - at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54) diff --git a/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/history.version b/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/history.version deleted file mode 100644 index 25cb955..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/history.version +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.index b/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.index deleted file mode 100644 index 3c42dfe0794e4ff53b734e42939df35b637b5658..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 151 zcmYj~u?_+u5CtDtTWGZLBQOZ@w6?d=*duN{jKF2t`+qN1SHGEg3V?#zW1+FD{5BN7 zX=r3(Wim{yjvT3B6>AYHatX1gn*<>!t0o!P&Zm3I)Fk8qOY7Xpb!Y3n^+%1(y#9H~ V{{ia>7J3l3RLgbDPh#jp_XBwMERg^J diff --git a/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.version b/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.version deleted file mode 100644 index 6b2aaa7..0000000 --- a/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.version +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/.metadata/.plugins/org.eclipse.core.resources/.root/4.tree b/.metadata/.plugins/org.eclipse.core.resources/.root/4.tree deleted file mode 100644 index 8f1b97f3bf3f3ceca4972872d907e54bd17c1f30..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 260 zcmaJ*K@P$&49nU{91thC^bzf!sx-i0BPi{V`Uf6OwgD0nS`LmSJC0jx49sJn%l_cT zDQm&8oC0Cr-7|$kaR~Ux0a*y#k^4mAQzxbRTw)=Q5zmy?u69D1M?vzr-f+#iedo`< j!@nM|7aCaKelxFBwRQtP_Dd>D<4H1&%9BOWDgk%_E{8}* diff --git a/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources b/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources deleted file mode 100644 index bc9467258a6edb0dbd9946117af4c536376cb4ef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 931 zcmZ?R*xjhShe1S2b=vdAllRFf=Oz}Hq!uZZBqrsg@^UG=6=f=TmF6iJ7%CVUSs9vG z85k?Lx`Zeg85kPzawX@aCKkD*=9DDH=NF~xr6%WO78IxIrKBd6rt2l=7p2;k6qN#v z!K3`mB@^B1|nwP0ZCxE-NNNDab&GW8sd#;Z%^yoW#<+|?cQm9&* L#3_Dv5Q\r\n\r\n -preferredTargets=default\:default| diff --git a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.core.prefs b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.core.prefs deleted file mode 100644 index 18669b6..0000000 --- a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.core.prefs +++ /dev/null @@ -1,8 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.jdt.core.codeComplete.visibilityCheck=enabled -org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 -org.eclipse.jdt.core.compiler.compliance=1.6 -org.eclipse.jdt.core.compiler.problem.assertIdentifier=error -org.eclipse.jdt.core.compiler.problem.enumIdentifier=error -org.eclipse.jdt.core.compiler.source=1.6 diff --git a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.launching.prefs b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.launching.prefs deleted file mode 100644 index 50d885d..0000000 --- a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.launching.prefs +++ /dev/null @@ -1,2 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.jdt.launching.PREF_VM_XML=\r\n\r\n\r\n\r\n\r\n\r\n diff --git a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.ui.prefs b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.ui.prefs deleted file mode 100644 index 63ff9b1..0000000 --- a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.ui.prefs +++ /dev/null @@ -1,18 +0,0 @@ -content_assist_number_of_computers=13 -content_assist_proposals_background=255,255,255 -content_assist_proposals_foreground=0,0,0 -eclipse.preferences.version=1 -fontPropagated=true -org.eclipse.jdt.ui.editor.tab.width= -org.eclipse.jdt.ui.formatterprofiles.version=12 -org.eclipse.jdt.ui.javadoclocations.migrated=true -org.eclipse.jdt.ui.text.code_templates_migrated=true -org.eclipse.jdt.ui.text.custom_code_templates= -org.eclipse.jdt.ui.text.custom_templates= -org.eclipse.jdt.ui.text.templates_migrated=true -org.eclipse.jface.textfont=1|Courier New|10.0|0|WINDOWS|1|0|0|0|0|0|0|0|0|1|0|0|0|0|Courier New; -proposalOrderMigrated=true -spelling_locale_initialized=true -tabWidthPropagated=true -useAnnotationsPrefPage=true -useQuickDiffPrefPage=true diff --git a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.search.prefs b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.search.prefs deleted file mode 100644 index cec65c4..0000000 --- a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.search.prefs +++ /dev/null @@ -1,2 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.search.defaultPerspective=org.eclipse.search.defaultPerspective.none diff --git a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.team.cvs.ui.prefs b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.team.cvs.ui.prefs deleted file mode 100644 index f9e585b..0000000 --- a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.team.cvs.ui.prefs +++ /dev/null @@ -1,2 +0,0 @@ -eclipse.preferences.version=1 -pref_first_startup=false diff --git a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.team.ui.prefs b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.team.ui.prefs deleted file mode 100644 index 56cd496..0000000 --- a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.team.ui.prefs +++ /dev/null @@ -1,2 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.team.ui.first_time=false diff --git a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.editors.prefs b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.editors.prefs deleted file mode 100644 index 61f3bb8..0000000 --- a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.editors.prefs +++ /dev/null @@ -1,2 +0,0 @@ -eclipse.preferences.version=1 -overviewRuler_migration=migrated_3.1 diff --git a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.ide.prefs b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.ide.prefs deleted file mode 100644 index dac418a..0000000 --- a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.ide.prefs +++ /dev/null @@ -1,5 +0,0 @@ -PROBLEMS_FILTERS_MIGRATE=true -eclipse.preferences.version=1 -platformState=1338379144146 -quickStart=false -tipsAndTricks=true diff --git a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.prefs b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.prefs deleted file mode 100644 index 08076f2..0000000 --- a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.prefs +++ /dev/null @@ -1,2 +0,0 @@ -eclipse.preferences.version=1 -showIntro=false diff --git a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.workbench.prefs b/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.workbench.prefs deleted file mode 100644 index 66379eb..0000000 --- a/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.workbench.prefs +++ /dev/null @@ -1,2 +0,0 @@ -ENABLED_DECORATORS=org.eclipse.jdt.ui.override.decorator\:true,org.eclipse.jdt.ui.interface.decorator\:false,org.eclipse.jdt.ui.buildpath.decorator\:true,org.eclipse.pde.ui.binaryProjectDecorator\:false,org.eclipse.team.cvs.ui.decorator\:true,org.eclipse.ui.LinkedResourceDecorator\:true,org.eclipse.ui.VirtualResourceDecorator\:true,org.eclipse.ui.ContentTypeDecorator\:true,org.eclipse.ui.ResourceFilterDecorator\:false, -eclipse.preferences.version=1 diff --git a/.metadata/.plugins/org.eclipse.debug.ui/dialog_settings.xml b/.metadata/.plugins/org.eclipse.debug.ui/dialog_settings.xml deleted file mode 100644 index bf74e15..0000000 --- a/.metadata/.plugins/org.eclipse.debug.ui/dialog_settings.xml +++ /dev/null @@ -1,8 +0,0 @@ - -
-
- - - -
-
diff --git a/.metadata/.plugins/org.eclipse.e4.workbench/workbench.xmi b/.metadata/.plugins/org.eclipse.e4.workbench/workbench.xmi deleted file mode 100644 index 05254dd..0000000 --- a/.metadata/.plugins/org.eclipse.e4.workbench/workbench.xmi +++ /dev/null @@ -1,1403 +0,0 @@ - - - activeSchemeId:org.eclipse.ui.defaultAcceleratorConfiguration - - topLevel - shellMaximized - - - - - persp.actionSet:org.eclipse.ui.cheatsheets.actionSet - persp.actionSet:org.eclipse.search.searchActionSet - persp.actionSet:org.eclipse.ui.edit.text.actionSet.annotationNavigation - persp.actionSet:org.eclipse.ui.edit.text.actionSet.navigation - persp.actionSet:org.eclipse.ui.edit.text.actionSet.convertLineDelimitersTo - persp.actionSet:org.eclipse.ui.externaltools.ExternalToolsSet - persp.actionSet:org.eclipse.ui.actionSet.keyBindings - persp.actionSet:org.eclipse.ui.actionSet.openFiles - persp.actionSet:org.eclipse.debug.ui.launchActionSet - persp.actionSet:org.eclipse.jdt.ui.JavaActionSet - persp.actionSet:org.eclipse.jdt.ui.JavaElementCreationActionSet - persp.actionSet:org.eclipse.ui.NavigateActionSet - persp.viewSC:org.eclipse.jdt.ui.PackageExplorer - persp.viewSC:org.eclipse.jdt.ui.TypeHierarchy - persp.viewSC:org.eclipse.jdt.ui.SourceView - persp.viewSC:org.eclipse.jdt.ui.JavadocView - persp.viewSC:org.eclipse.search.ui.views.SearchView - persp.viewSC:org.eclipse.ui.console.ConsoleView - persp.viewSC:org.eclipse.ui.views.ContentOutline - persp.viewSC:org.eclipse.ui.views.ProblemView - persp.viewSC:org.eclipse.ui.views.ResourceNavigator - persp.viewSC:org.eclipse.ui.views.TaskList - persp.viewSC:org.eclipse.ui.views.ProgressView - persp.viewSC:org.eclipse.ui.navigator.ProjectExplorer - persp.viewSC:org.eclipse.ui.texteditor.TemplatesView - persp.viewSC:org.eclipse.pde.runtime.LogView - persp.newWizSC:org.eclipse.jdt.ui.wizards.JavaProjectWizard - persp.newWizSC:org.eclipse.jdt.ui.wizards.NewPackageCreationWizard - persp.newWizSC:org.eclipse.jdt.ui.wizards.NewClassCreationWizard - persp.newWizSC:org.eclipse.jdt.ui.wizards.NewInterfaceCreationWizard - persp.newWizSC:org.eclipse.jdt.ui.wizards.NewEnumCreationWizard - persp.newWizSC:org.eclipse.jdt.ui.wizards.NewAnnotationCreationWizard - persp.newWizSC:org.eclipse.jdt.ui.wizards.NewSourceFolderCreationWizard - persp.newWizSC:org.eclipse.jdt.ui.wizards.NewSnippetFileCreationWizard - persp.newWizSC:org.eclipse.jdt.ui.wizards.NewJavaWorkingSetWizard - persp.newWizSC:org.eclipse.ui.wizards.new.folder - persp.newWizSC:org.eclipse.ui.wizards.new.file - persp.newWizSC:org.eclipse.ui.editors.wizards.UntitledTextFileWizard - persp.perspSC:org.eclipse.jdt.ui.JavaBrowsingPerspective - persp.perspSC:org.eclipse.debug.ui.DebugPerspective - persp.viewSC:org.eclipse.ant.ui.views.AntView - persp.actionSet:org.eclipse.debug.ui.breakpointActionSet - persp.actionSet:org.eclipse.jdt.debug.ui.JDTDebugActionSet - persp.newWizSC:org.eclipse.jdt.junit.wizards.NewTestCaseCreationWizard - persp.actionSet:org.eclipse.jdt.junit.JUnitActionSet - persp.showIn:org.eclipse.jdt.ui.PackageExplorer - persp.showIn:org.eclipse.team.ui.GenericHistoryView - persp.showIn:org.eclipse.ui.views.ResourceNavigator - persp.showIn:org.eclipse.ui.navigator.ProjectExplorer - - - newtablook - org.eclipse.e4.primaryNavigationStack - - - - - - - - - - - newtablook - org.eclipse.e4.secondaryNavigationStack - - - - - - - newtablook - org.eclipse.e4.secondaryDataStack - - - - - - - - - - - - - - - - - - - - View - categoryTag:Help - - - View - categoryTag:General - - ViewMenu - menuContribution:menu - - - - - View - categoryTag:Help - - - - newtablook - org.eclipse.e4.primaryDataStack - EditorStack - - - - - View - categoryTag:Java - - ViewMenu - menuContribution:menu - - - - - View - categoryTag:Java - - - View - categoryTag:General - - - View - categoryTag:General - - - - View - categoryTag:General - - ViewMenu - menuContribution:menu - - - - - - View - categoryTag:Java - - ViewMenu - menuContribution:menu - - - - - - View - categoryTag:Java - - ViewMenu - menuContribution:menu - - - - - - View - categoryTag:General - - ViewMenu - menuContribution:menu - - - - - View - categoryTag:General - - - View - categoryTag:General - - - View - categoryTag:General - - - - View - categoryTag:General - - ViewMenu - menuContribution:menu - - - - - View - categoryTag:General - - - View - categoryTag:Ant - - - View - categoryTag:Java - - - - - stretch - - - - - - - TrimStack - - - - - TrimStack - - - TrimStack - - - TrimStack - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - platform:win32 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Editor - - - View - categoryTag:Ant - - - View - categoryTag:Debug - - - View - categoryTag:Debug - - - View - categoryTag:Debug - - - View - categoryTag:Debug - - - View - categoryTag:Debug - - - View - categoryTag:Debug - - - View - categoryTag:Debug - - - View - categoryTag:Help - - - View - categoryTag:Debug - - - View - categoryTag:Java - - - View - categoryTag:Java - - - View - categoryTag:Java - - - View - categoryTag:Java Browsing - - - View - categoryTag:Java Browsing - - - View - categoryTag:Java Browsing - - - View - categoryTag:Java Browsing - - - View - categoryTag:Java - - - View - categoryTag:General - - - View - categoryTag:Java - - - View - categoryTag:Java - - - View - categoryTag:API Tools - - - View - categoryTag:Plug-in Development - - - View - categoryTag:Plug-in Development - - - View - categoryTag:Plug-in Development - - - View - categoryTag:Plug-in Development - - - View - categoryTag:General - - - View - categoryTag:General - - - View - categoryTag:CVS - - - View - categoryTag:CVS - - - View - categoryTag:Team - - - View - categoryTag:Team - - - View - categoryTag:General - - - View - categoryTag:General - - - View - categoryTag:Help - - - View - categoryTag:General - - - View - categoryTag:General - - - View - categoryTag:General - - - View - categoryTag:General - - - View - categoryTag:General - - - View - categoryTag:General - - - View - categoryTag:General - - - View - categoryTag:General - - - View - categoryTag:General - - - View - categoryTag:General - - - View - categoryTag:General - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/.metadata/.plugins/org.eclipse.equinox.p2.ui/dialog_settings.xml b/.metadata/.plugins/org.eclipse.equinox.p2.ui/dialog_settings.xml deleted file mode 100644 index ff34b52..0000000 --- a/.metadata/.plugins/org.eclipse.equinox.p2.ui/dialog_settings.xml +++ /dev/null @@ -1,10 +0,0 @@ - -
-
- - - - - -
-
diff --git a/.metadata/.plugins/org.eclipse.jdt.core/externalLibsTimeStamps b/.metadata/.plugins/org.eclipse.jdt.core/externalLibsTimeStamps deleted file mode 100644 index 593f4708db84ac8fd0f5cc47c634f38c013fe9e4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4 LcmZQzU|;|M00aO5 diff --git a/.metadata/.plugins/org.eclipse.jdt.core/indexNamesMap.txt b/.metadata/.plugins/org.eclipse.jdt.core/indexNamesMap.txt deleted file mode 100644 index 68a85ef..0000000 --- a/.metadata/.plugins/org.eclipse.jdt.core/indexNamesMap.txt +++ /dev/null @@ -1 +0,0 @@ -INDEX VERSION 1.126 diff --git a/.metadata/.plugins/org.eclipse.jdt.core/invalidArchivesCache b/.metadata/.plugins/org.eclipse.jdt.core/invalidArchivesCache deleted file mode 100644 index 593f4708db84ac8fd0f5cc47c634f38c013fe9e4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4 LcmZQzU|;|M00aO5 diff --git a/.metadata/.plugins/org.eclipse.jdt.core/javaLikeNames.txt b/.metadata/.plugins/org.eclipse.jdt.core/javaLikeNames.txt deleted file mode 100644 index 8586397..0000000 --- a/.metadata/.plugins/org.eclipse.jdt.core/javaLikeNames.txt +++ /dev/null @@ -1 +0,0 @@ -java \ No newline at end of file diff --git a/.metadata/.plugins/org.eclipse.jdt.core/nonChainingJarsCache b/.metadata/.plugins/org.eclipse.jdt.core/nonChainingJarsCache deleted file mode 100644 index 593f4708db84ac8fd0f5cc47c634f38c013fe9e4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4 LcmZQzU|;|M00aO5 diff --git a/.metadata/.plugins/org.eclipse.jdt.core/savedIndexNames.txt b/.metadata/.plugins/org.eclipse.jdt.core/savedIndexNames.txt deleted file mode 100644 index f063a00..0000000 --- a/.metadata/.plugins/org.eclipse.jdt.core/savedIndexNames.txt +++ /dev/null @@ -1 +0,0 @@ -INDEX VERSION 1.126+C:\Documents and Settings\Charles\.ssh\Blacksmith\.metadata\.plugins\org.eclipse.jdt.core diff --git a/.metadata/.plugins/org.eclipse.jdt.core/variablesAndContainers.dat b/.metadata/.plugins/org.eclipse.jdt.core/variablesAndContainers.dat deleted file mode 100644 index 46ba64d9130e8140814ad681109ca5fe45fb96df..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 115 zcmZQzU|?c^05&ki - - - diff --git a/.metadata/.plugins/org.eclipse.jdt.launching/libraryInfos.xml b/.metadata/.plugins/org.eclipse.jdt.launching/libraryInfos.xml deleted file mode 100644 index 2383218..0000000 --- a/.metadata/.plugins/org.eclipse.jdt.launching/libraryInfos.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - diff --git a/.metadata/.plugins/org.eclipse.jdt.ui/OpenTypeHistory.xml b/.metadata/.plugins/org.eclipse.jdt.ui/OpenTypeHistory.xml deleted file mode 100644 index a4ee3cb..0000000 --- a/.metadata/.plugins/org.eclipse.jdt.ui/OpenTypeHistory.xml +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/.metadata/.plugins/org.eclipse.jdt.ui/QualifiedTypeNameHistory.xml b/.metadata/.plugins/org.eclipse.jdt.ui/QualifiedTypeNameHistory.xml deleted file mode 100644 index 6290af8..0000000 --- a/.metadata/.plugins/org.eclipse.jdt.ui/QualifiedTypeNameHistory.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/.metadata/.plugins/org.eclipse.jdt.ui/dialog_settings.xml b/.metadata/.plugins/org.eclipse.jdt.ui/dialog_settings.xml deleted file mode 100644 index 94ff962..0000000 --- a/.metadata/.plugins/org.eclipse.jdt.ui/dialog_settings.xml +++ /dev/null @@ -1,32 +0,0 @@ - -
- - -
- -
-
- - - - - -
-
-
-
-
-
- -
-
- - - -
-
-
-
- -
-
diff --git a/.metadata/.plugins/org.eclipse.ltk.core.refactoring/.refactorings/.workspace/2012/6/22/refactorings.history b/.metadata/.plugins/org.eclipse.ltk.core.refactoring/.refactorings/.workspace/2012/6/22/refactorings.history deleted file mode 100644 index 0bd8b1e..0000000 --- a/.metadata/.plugins/org.eclipse.ltk.core.refactoring/.refactorings/.workspace/2012/6/22/refactorings.history +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/.metadata/.plugins/org.eclipse.ltk.core.refactoring/.refactorings/.workspace/2012/6/22/refactorings.index b/.metadata/.plugins/org.eclipse.ltk.core.refactoring/.refactorings/.workspace/2012/6/22/refactorings.index deleted file mode 100644 index 9d70283..0000000 --- a/.metadata/.plugins/org.eclipse.ltk.core.refactoring/.refactorings/.workspace/2012/6/22/refactorings.index +++ /dev/null @@ -1 +0,0 @@ -1338601019687 Delete resource 'Blacksmith' diff --git a/.metadata/.plugins/org.eclipse.ltk.ui.refactoring/dialog_settings.xml b/.metadata/.plugins/org.eclipse.ltk.ui.refactoring/dialog_settings.xml deleted file mode 100644 index 27eb404..0000000 --- a/.metadata/.plugins/org.eclipse.ltk.ui.refactoring/dialog_settings.xml +++ /dev/null @@ -1,7 +0,0 @@ - -
-
- - -
-
diff --git a/.metadata/.plugins/org.eclipse.pde.core/.cache/clean-cache.properties b/.metadata/.plugins/org.eclipse.pde.core/.cache/clean-cache.properties deleted file mode 100644 index 2f8cb9d..0000000 --- a/.metadata/.plugins/org.eclipse.pde.core/.cache/clean-cache.properties +++ /dev/null @@ -1,2 +0,0 @@ -#Cached timestamps -#Fri Jun 01 20:56:46 EDT 2012 diff --git a/.metadata/.plugins/org.eclipse.search/dialog_settings.xml b/.metadata/.plugins/org.eclipse.search/dialog_settings.xml deleted file mode 100644 index 6f4cc59..0000000 --- a/.metadata/.plugins/org.eclipse.search/dialog_settings.xml +++ /dev/null @@ -1,11 +0,0 @@ - -
-
- - -
-
- - -
-
diff --git a/.metadata/.plugins/org.eclipse.team.cvs.ui/commentTemplates.xml b/.metadata/.plugins/org.eclipse.team.cvs.ui/commentTemplates.xml deleted file mode 100644 index 193673b..0000000 --- a/.metadata/.plugins/org.eclipse.team.cvs.ui/commentTemplates.xml +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/.metadata/.plugins/org.eclipse.team.cvs.ui/commitCommentHistory.xml b/.metadata/.plugins/org.eclipse.team.cvs.ui/commitCommentHistory.xml deleted file mode 100644 index 891f130..0000000 --- a/.metadata/.plugins/org.eclipse.team.cvs.ui/commitCommentHistory.xml +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/.metadata/.plugins/org.eclipse.team.cvs.ui/dialog_settings.xml b/.metadata/.plugins/org.eclipse.team.cvs.ui/dialog_settings.xml deleted file mode 100644 index e49f42e..0000000 --- a/.metadata/.plugins/org.eclipse.team.cvs.ui/dialog_settings.xml +++ /dev/null @@ -1,5 +0,0 @@ - -
-
-
-
diff --git a/.metadata/.plugins/org.eclipse.team.cvs.ui/repositoriesView.xml b/.metadata/.plugins/org.eclipse.team.cvs.ui/repositoriesView.xml deleted file mode 100644 index 5bf8420..0000000 --- a/.metadata/.plugins/org.eclipse.team.cvs.ui/repositoriesView.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/.metadata/.plugins/org.eclipse.ui.ide/dialog_settings.xml b/.metadata/.plugins/org.eclipse.ui.ide/dialog_settings.xml deleted file mode 100644 index b438a7a..0000000 --- a/.metadata/.plugins/org.eclipse.ui.ide/dialog_settings.xml +++ /dev/null @@ -1,13 +0,0 @@ - -
-
- - -
-
-
-
- - -
-
diff --git a/.metadata/.plugins/org.eclipse.ui.intro/dialog_settings.xml b/.metadata/.plugins/org.eclipse.ui.intro/dialog_settings.xml deleted file mode 100644 index f118f02..0000000 --- a/.metadata/.plugins/org.eclipse.ui.intro/dialog_settings.xml +++ /dev/null @@ -1,4 +0,0 @@ - -
- -
diff --git a/.metadata/.plugins/org.eclipse.ui.workbench/dialog_settings.xml b/.metadata/.plugins/org.eclipse.ui.workbench/dialog_settings.xml deleted file mode 100644 index dc08839..0000000 --- a/.metadata/.plugins/org.eclipse.ui.workbench/dialog_settings.xml +++ /dev/null @@ -1,28 +0,0 @@ - -
-
- - - - - -
-
- - - - - - - - - - -
-
- - - - -
-
diff --git a/.metadata/.plugins/org.eclipse.ui.workbench/workingsets.xml b/.metadata/.plugins/org.eclipse.ui.workbench/workingsets.xml deleted file mode 100644 index cff8d99..0000000 --- a/.metadata/.plugins/org.eclipse.ui.workbench/workingsets.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/.metadata/version.ini b/.metadata/version.ini deleted file mode 100644 index c51ff74..0000000 --- a/.metadata/version.ini +++ /dev/null @@ -1 +0,0 @@ -org.eclipse.core.runtime=1 \ No newline at end of file diff --git a/.project b/.project new file mode 100644 index 0000000..32d2429 --- /dev/null +++ b/.project @@ -0,0 +1,23 @@ + + + Blacksmith + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.eclipse.jdt.core.javanature + org.eclipse.m2e.core.maven2Nature + + diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs index abdea9a..e9441bb 100644 --- a/.settings/org.eclipse.core.resources.prefs +++ b/.settings/org.eclipse.core.resources.prefs @@ -1,4 +1,3 @@ eclipse.preferences.version=1 encoding//src/main/java=UTF-8 -encoding//src/main/resources=UTF-8 encoding/=UTF-8 diff --git a/src/main/java/net/apunch/blacksmith/Blacksmith.java b/src/main/java/net/apunch/blacksmith/Blacksmith.java deleted file mode 100644 index c18871b..0000000 --- a/src/main/java/net/apunch/blacksmith/Blacksmith.java +++ /dev/null @@ -1,271 +0,0 @@ -package net.apunch.blacksmith; - -import java.util.ArrayList; -import java.util.Calendar; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Random; - -import org.bukkit.Bukkit; -import org.bukkit.Material; -import org.bukkit.enchantments.Enchantment; -import org.bukkit.entity.Player; -import org.bukkit.inventory.ItemStack; - -import net.apunch.blacksmith.util.Settings.Setting; - -import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.api.npc.character.Character; -import net.citizensnpcs.api.util.DataKey; - -public class Blacksmith extends Character { - private static final int[] enchantments = new int[Enchantment.values().length]; - - private final BlacksmithPlugin plugin; - private final List reforgeableItems = new ArrayList(); - private final Map cooldowns = new HashMap(); - private ReforgeSession session; - - // Defaults - private String busyWithPlayerMsg = Setting.BUSY_WITH_PLAYER_MESSAGE.asString(); - private String busyReforgingMsg = Setting.BUSY_WITH_REFORGE_MESSAGE.asString(); - private String costMsg = Setting.COST_MESSAGE.asString(); - private String invalidItemMsg = Setting.INVALID_ITEM_MESSAGE.asString(); - private String startReforgeMsg = Setting.START_REFORGE_MESSAGE.asString(); - private String successMsg = Setting.SUCCESS_MESSAGE.asString(); - private String failMsg = Setting.FAIL_MESSAGE.asString(); - private String insufficientFundsMsg = Setting.INSUFFICIENT_FUNDS_MESSAGE.asString(); - private String cooldownUnexpiredMsg = Setting.COOLDOWN_UNEXPIRED_MESSAGE.asString(); - private String itemChangedMsg = Setting.ITEM_UNEXPECTEDLY_CHANGED_MESSAGE.asString(); - private int minReforgeDelay = Setting.MIN_REFORGE_DELAY.asInt(); - private int maxReforgeDelay = Setting.MAX_REFORGE_DELAY.asInt(); - private int reforgeCooldown = Setting.REFORGE_COOLDOWN.asInt(); - private int failChance = Setting.FAIL_CHANCE.asInt(); - private int maxEnchantments = Setting.MAX_ENCHANTMENTS.asInt(); - private boolean dropItem = Setting.DROP_ITEM.asBoolean(); - - public Blacksmith() { - plugin = (BlacksmithPlugin) Bukkit.getServer().getPluginManager().getPlugin("Blacksmith"); - int i = 0; - for (Enchantment enchantment : Enchantment.values()) - enchantments[i++] = enchantment.getId(); - } - - @Override - public void load(DataKey key) { - for (DataKey sub : key.getRelative("reforgeable-items").getIntegerSubKeys()) - if (Material.getMaterial(sub.getString("").toUpperCase().replace('-', '_')) != null) - reforgeableItems.add(Material.getMaterial(sub.getString("").toUpperCase().replace('-', '_'))); - - // Override defaults if they exist - if (key.keyExists("messages.busy-with-player")) - busyWithPlayerMsg = key.getString("messages.busy-with-player"); - if (key.keyExists("messages.busy-with-reforge")) - busyReforgingMsg = key.getString("messages.busy-with-reforge"); - if (key.keyExists("messages.cost")) - costMsg = key.getString("messages.cost"); - if (key.keyExists("messages.invalid-item")) - invalidItemMsg = key.getString("messages.invalid-item"); - if (key.keyExists("messages.start-reforge")) - startReforgeMsg = key.getString("messages.start-reforge"); - if (key.keyExists("messages.successful-reforge")) - successMsg = key.getString("messages.successful-reforge"); - if (key.keyExists("messages.fail-reforge")) - failMsg = key.getString("messages.fail-reforge"); - if (key.keyExists("messages.insufficient-funds")) - insufficientFundsMsg = key.getString("messages.insufficient-funds"); - if (key.keyExists("messages.cooldown-not-expired")) - cooldownUnexpiredMsg = key.getString("messages.cooldown-not-expired"); - if (key.keyExists("messages.item-changed-during-reforge")) - itemChangedMsg = key.getString("messages.item-changed-during-reforge"); - if (key.keyExists("delays-in-seconds.minimum")) - minReforgeDelay = key.getInt("delays-in-seconds.minimum"); - if (key.keyExists("delays-in-seconds.maximum")) - maxReforgeDelay = key.getInt("delays-in-seconds.maximum"); - if (key.keyExists("delays-in-seconds.reforge-cooldown")) - reforgeCooldown = key.getInt("delays-in-seconds.reforge-cooldown"); - if (key.keyExists("percent-chance-to-fail-reforge")) - failChance = key.getInt("percent-chance-to-fail-reforge"); - if (key.keyExists("maximum-enchantments")) - maxEnchantments = key.getInt("maximum-enchantments"); - if (key.keyExists("drop-item")) - dropItem = key.getBoolean("drop-item"); - } - - @Override - public void onRightClick(NPC npc, Player player) { - if (!player.hasPermission("blacksmith.reforge")) - return; - - if (cooldowns.get(player.getName()) != null) { - if (!Calendar.getInstance().after(cooldowns.get(player.getName()))) { - npc.chat(player, cooldownUnexpiredMsg); - return; - } - cooldowns.remove(player.getName()); - } - - ItemStack hand = player.getItemInHand(); - if (session != null) { - if (!session.isInSession(player)) { - npc.chat(player, busyWithPlayerMsg); - return; - } - - if (session.isRunning()) { - npc.chat(player, busyReforgingMsg); - return; - } - if (session.handleClick()) - session = null; - else - reforge(npc, player); - } else { - if ((!plugin.isTool(hand) && !plugin.isArmor(hand)) - || (!reforgeableItems.isEmpty() && !reforgeableItems.contains(hand.getType()))) { - npc.chat(player, invalidItemMsg); - return; - } - session = new ReforgeSession(player, npc); - npc.chat( - player, - costMsg.replace("", plugin.formatCost(player)).replace("", - hand.getType().name().toLowerCase().replace('_', ' '))); - } - } - - @Override - public void save(DataKey key) { - for (int i = 0; i < reforgeableItems.size(); i++) - key.getRelative("reforgeable-items").setString(String.valueOf(i), - reforgeableItems.get(i).name().toLowerCase().replace('_', '-')); - - key.setString("messages.busy-with-player", busyWithPlayerMsg); - key.setString("messages.busy-with-reforge", busyReforgingMsg); - key.setString("messages.cost", costMsg); - key.setString("messages.invalid-item", invalidItemMsg); - key.setString("messages.start-reforge", startReforgeMsg); - key.setString("messages.successful-reforge", successMsg); - key.setString("messages.fail-reforge", failMsg); - key.setString("messages.insufficient-funds", insufficientFundsMsg); - key.setString("messages.cooldown-not-expired", cooldownUnexpiredMsg); - key.setString("messages.item-changed-during-reforge", itemChangedMsg); - key.setInt("delays-in-seconds.minimum", minReforgeDelay); - key.setInt("delays-in-seconds.maximum", maxReforgeDelay); - key.setInt("delays-in-seconds.reforge-cooldown", reforgeCooldown); - key.setInt("percent-chance-to-fail-reforge", failChance); - key.setInt("maximum-enchantments", maxEnchantments); - key.setBoolean("drop-item", dropItem); - } - - private void reforge(NPC npc, Player player) { - npc.chat(player, startReforgeMsg); - plugin.withdraw(player); - session.beginReforge(); - if (npc.getBukkitEntity() instanceof Player) - ((Player) npc.getBukkitEntity()).setItemInHand(player.getItemInHand()); - player.setItemInHand(null); - } - - private class ReforgeSession implements Runnable { - private final Player player; - private final NPC npc; - private final ItemStack reforge; - private int taskId; - - private ReforgeSession(Player player, NPC npc) { - this.player = player; - this.npc = npc; - reforge = player.getItemInHand(); - } - - @Override - public void run() { - npc.chat(player, reforgeItemInHand() ? successMsg : failMsg); - if (npc.getBukkitEntity() instanceof Player) - ((Player) npc.getBukkitEntity()).setItemInHand(null); - if (dropItem) - player.getWorld().dropItemNaturally(npc.getBukkitEntity().getLocation(), reforge); - else { - for (ItemStack stack : player.getInventory().addItem(reforge).values()) - player.getWorld().dropItemNaturally(npc.getBukkitEntity().getLocation(), stack); - } - session = null; - // Start cooldown - Calendar wait = Calendar.getInstance(); - wait.add(Calendar.SECOND, reforgeCooldown); - cooldowns.put(player.getName(), wait); - } - - private boolean reforgeItemInHand() { - Random random = new Random(); - if (random.nextInt(100) < failChance) { - for (Enchantment enchantment : reforge.getEnchantments().keySet()) { - // Remove or downgrade enchantments - if (random.nextBoolean()) - reforge.removeEnchantment(enchantment); - else { - if (reforge.getEnchantmentLevel(enchantment) > 1) { - reforge.removeEnchantment(enchantment); - reforge.addEnchantment(enchantment, 1); - } - } - } - // Damage the item - short durability = (short) (reforge.getDurability() + reforge.getDurability() * random.nextInt(8)); - short maxDurability = reforge.getType().getMaxDurability(); - if (durability <= 0) - durability = (short) (maxDurability / 3); - else if (reforge.getDurability() + durability > maxDurability) - durability = (short) (maxDurability - random.nextInt(maxDurability - 25)); - reforge.setDurability(durability); - return false; - } - // Add random enchantments - int chance = 10; - if (reforge.getDurability() == 0) - chance *= 4; - else - reforge.setDurability((short) 0); - for (int i = 0; i < chance; i++) { - if (reforge.getEnchantments().keySet().size() == maxEnchantments) - break; - Enchantment enchantment = Enchantment.getById(enchantments[random.nextInt(enchantments.length)]); - if (enchantment.canEnchantItem(reforge)) - reforge.addEnchantment(enchantment, random.nextInt(enchantment.getMaxLevel()) + 1); - } - return true; - } - - // Return if the session should end - private boolean handleClick() { - // Prevent player from switching items during session - if (!reforge.equals(player.getItemInHand())) { - npc.chat(player, itemChangedMsg); - return true; - } - if (!plugin.doesPlayerHaveEnough(player)) { - npc.chat(player, insufficientFundsMsg); - return true; - } - return false; - } - - private boolean isRunning() { - return plugin.getServer().getScheduler().isQueued(taskId); - } - - private boolean isInSession(Player other) { - return player.getName().equals(other.getName()); - } - - private void beginReforge() { - taskId = plugin - .getServer() - .getScheduler() - .scheduleAsyncDelayedTask(plugin, this, - (new Random().nextInt(maxReforgeDelay) + minReforgeDelay) * 20); - } - } -} \ No newline at end of file diff --git a/src/main/java/net/instinxx/blacksmith/Blacksmith.java b/src/main/java/net/instinxx/blacksmith/Blacksmith.java deleted file mode 100644 index bb42d0e..0000000 --- a/src/main/java/net/instinxx/blacksmith/Blacksmith.java +++ /dev/null @@ -1,271 +0,0 @@ -package net.instinxx.blacksmith; - -import java.util.ArrayList; -import java.util.Calendar; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Random; - -import org.bukkit.Bukkit; -import org.bukkit.Material; -import org.bukkit.enchantments.Enchantment; -import org.bukkit.entity.Player; -import org.bukkit.inventory.ItemStack; - - -import net.citizensnpcs.api.npc.NPC; -import net.citizensnpcs.api.npc.character.Character; -import net.citizensnpcs.api.util.DataKey; -import net.instinxx.blacksmith.util.Settings.Setting; - -public class Blacksmith extends Character { - private static final int[] enchantments = new int[Enchantment.values().length]; - - private final BlacksmithPlugin plugin; - private final List reforgeableItems = new ArrayList(); - private final Map cooldowns = new HashMap(); - private ReforgeSession session; - - // Defaults - private String busyWithPlayerMsg = Setting.BUSY_WITH_PLAYER_MESSAGE.asString(); - private String busyReforgingMsg = Setting.BUSY_WITH_REFORGE_MESSAGE.asString(); - private String costMsg = Setting.COST_MESSAGE.asString(); - private String invalidItemMsg = Setting.INVALID_ITEM_MESSAGE.asString(); - private String startReforgeMsg = Setting.START_REFORGE_MESSAGE.asString(); - private String successMsg = Setting.SUCCESS_MESSAGE.asString(); - private String failMsg = Setting.FAIL_MESSAGE.asString(); - private String insufficientFundsMsg = Setting.INSUFFICIENT_FUNDS_MESSAGE.asString(); - private String cooldownUnexpiredMsg = Setting.COOLDOWN_UNEXPIRED_MESSAGE.asString(); - private String itemChangedMsg = Setting.ITEM_UNEXPECTEDLY_CHANGED_MESSAGE.asString(); - private int minReforgeDelay = Setting.MIN_REFORGE_DELAY.asInt(); - private int maxReforgeDelay = Setting.MAX_REFORGE_DELAY.asInt(); - private int reforgeCooldown = Setting.REFORGE_COOLDOWN.asInt(); - private int failChance = Setting.FAIL_CHANCE.asInt(); - private int maxEnchantments = Setting.MAX_ENCHANTMENTS.asInt(); - private boolean dropItem = Setting.DROP_ITEM.asBoolean(); - - public Blacksmith() { - plugin = (BlacksmithPlugin) Bukkit.getServer().getPluginManager().getPlugin("Blacksmith"); - int i = 0; - for (Enchantment enchantment : Enchantment.values()) - enchantments[i++] = enchantment.getId(); - } - - @Override - public void load(DataKey key) { - for (DataKey sub : key.getRelative("reforgeable-items").getIntegerSubKeys()) - if (Material.getMaterial(sub.getString("").toUpperCase().replace('-', '_')) != null) - reforgeableItems.add(Material.getMaterial(sub.getString("").toUpperCase().replace('-', '_'))); - - // Override defaults if they exist - if (key.keyExists("messages.busy-with-player")) - busyWithPlayerMsg = key.getString("messages.busy-with-player"); - if (key.keyExists("messages.busy-with-reforge")) - busyReforgingMsg = key.getString("messages.busy-with-reforge"); - if (key.keyExists("messages.cost")) - costMsg = key.getString("messages.cost"); - if (key.keyExists("messages.invalid-item")) - invalidItemMsg = key.getString("messages.invalid-item"); - if (key.keyExists("messages.start-reforge")) - startReforgeMsg = key.getString("messages.start-reforge"); - if (key.keyExists("messages.successful-reforge")) - successMsg = key.getString("messages.successful-reforge"); - if (key.keyExists("messages.fail-reforge")) - failMsg = key.getString("messages.fail-reforge"); - if (key.keyExists("messages.insufficient-funds")) - insufficientFundsMsg = key.getString("messages.insufficient-funds"); - if (key.keyExists("messages.cooldown-not-expired")) - cooldownUnexpiredMsg = key.getString("messages.cooldown-not-expired"); - if (key.keyExists("messages.item-changed-during-reforge")) - itemChangedMsg = key.getString("messages.item-changed-during-reforge"); - if (key.keyExists("delays-in-seconds.minimum")) - minReforgeDelay = key.getInt("delays-in-seconds.minimum"); - if (key.keyExists("delays-in-seconds.maximum")) - maxReforgeDelay = key.getInt("delays-in-seconds.maximum"); - if (key.keyExists("delays-in-seconds.reforge-cooldown")) - reforgeCooldown = key.getInt("delays-in-seconds.reforge-cooldown"); - if (key.keyExists("percent-chance-to-fail-reforge")) - failChance = key.getInt("percent-chance-to-fail-reforge"); - if (key.keyExists("maximum-enchantments")) - maxEnchantments = key.getInt("maximum-enchantments"); - if (key.keyExists("drop-item")) - dropItem = key.getBoolean("drop-item"); - } - - @Override - public void onRightClick(NPC npc, Player player) { - if (!player.hasPermission("blacksmith.reforge")) - return; - - if (cooldowns.get(player.getName()) != null) { - if (!Calendar.getInstance().after(cooldowns.get(player.getName()))) { - npc.chat(player, cooldownUnexpiredMsg); - return; - } - cooldowns.remove(player.getName()); - } - - ItemStack hand = player.getItemInHand(); - if (session != null) { - if (!session.isInSession(player)) { - npc.chat(player, busyWithPlayerMsg); - return; - } - - if (session.isRunning()) { - npc.chat(player, busyReforgingMsg); - return; - } - if (session.handleClick()) - session = null; - else - reforge(npc, player); - } else { - if ((!plugin.isTool(hand) && !plugin.isArmor(hand)) - || (!reforgeableItems.isEmpty() && !reforgeableItems.contains(hand.getType()))) { - npc.chat(player, invalidItemMsg); - return; - } - session = new ReforgeSession(player, npc); - npc.chat( - player, - costMsg.replace("", plugin.formatCost(player)).replace("", - hand.getType().name().toLowerCase().replace('_', ' '))); - } - } - - @Override - public void save(DataKey key) { - for (int i = 0; i < reforgeableItems.size(); i++) - key.getRelative("reforgeable-items").setString(String.valueOf(i), - reforgeableItems.get(i).name().toLowerCase().replace('_', '-')); - - key.setString("messages.busy-with-player", busyWithPlayerMsg); - key.setString("messages.busy-with-reforge", busyReforgingMsg); - key.setString("messages.cost", costMsg); - key.setString("messages.invalid-item", invalidItemMsg); - key.setString("messages.start-reforge", startReforgeMsg); - key.setString("messages.successful-reforge", successMsg); - key.setString("messages.fail-reforge", failMsg); - key.setString("messages.insufficient-funds", insufficientFundsMsg); - key.setString("messages.cooldown-not-expired", cooldownUnexpiredMsg); - key.setString("messages.item-changed-during-reforge", itemChangedMsg); - key.setInt("delays-in-seconds.minimum", minReforgeDelay); - key.setInt("delays-in-seconds.maximum", maxReforgeDelay); - key.setInt("delays-in-seconds.reforge-cooldown", reforgeCooldown); - key.setInt("percent-chance-to-fail-reforge", failChance); - key.setInt("maximum-enchantments", maxEnchantments); - key.setBoolean("drop-item", dropItem); - } - - private void reforge(NPC npc, Player player) { - npc.chat(player, startReforgeMsg); - plugin.withdraw(player); - session.beginReforge(); - if (npc.getBukkitEntity() instanceof Player) - ((Player) npc.getBukkitEntity()).setItemInHand(player.getItemInHand()); - player.setItemInHand(null); - } - - private class ReforgeSession implements Runnable { - private final Player player; - private final NPC npc; - private final ItemStack reforge; - private int taskId; - - private ReforgeSession(Player player, NPC npc) { - this.player = player; - this.npc = npc; - reforge = player.getItemInHand(); - } - - @Override - public void run() { - npc.chat(player, reforgeItemInHand() ? successMsg : failMsg); - if (npc.getBukkitEntity() instanceof Player) - ((Player) npc.getBukkitEntity()).setItemInHand(null); - if (dropItem) - player.getWorld().dropItemNaturally(npc.getBukkitEntity().getLocation(), reforge); - else { - for (ItemStack stack : player.getInventory().addItem(reforge).values()) - player.getWorld().dropItemNaturally(npc.getBukkitEntity().getLocation(), stack); - } - session = null; - // Start cooldown - Calendar wait = Calendar.getInstance(); - wait.add(Calendar.SECOND, reforgeCooldown); - cooldowns.put(player.getName(), wait); - } - - private boolean reforgeItemInHand() { - Random random = new Random(); - if (random.nextInt(100) < failChance) { - for (Enchantment enchantment : reforge.getEnchantments().keySet()) { - // Remove or downgrade enchantments - if (random.nextBoolean()) - reforge.removeEnchantment(enchantment); - else { - if (reforge.getEnchantmentLevel(enchantment) > 1) { - reforge.removeEnchantment(enchantment); - reforge.addEnchantment(enchantment, 1); - } - } - } - // Damage the item - short durability = (short) (reforge.getDurability() + reforge.getDurability() * random.nextInt(8)); - short maxDurability = reforge.getType().getMaxDurability(); - if (durability <= 0) - durability = (short) (maxDurability / 3); - else if (reforge.getDurability() + durability > maxDurability) - durability = (short) (maxDurability - random.nextInt(maxDurability - 25)); - reforge.setDurability(durability); - return false; - } - // Add random enchantments - int chance = 1; - if (reforge.getDurability() == 0) - chance *= 4; - else - reforge.setDurability((short) 0); - for (int i = 0; i < chance; i++) { - if (reforge.getEnchantments().keySet().size() == maxEnchantments) - break; - Enchantment enchantment = Enchantment.getById(enchantments[random.nextInt(enchantments.length)]); - if (enchantment.canEnchantItem(reforge)) - reforge.addEnchantment(enchantment, random.nextInt(enchantment.getMaxLevel()) + 1); - } - return true; - } - - // Return if the session should end - private boolean handleClick() { - // Prevent player from switching items during session - if (!reforge.equals(player.getItemInHand())) { - npc.chat(player, itemChangedMsg); - return true; - } - if (!plugin.doesPlayerHaveEnough(player)) { - npc.chat(player, insufficientFundsMsg); - return true; - } - return false; - } - - private boolean isRunning() { - return plugin.getServer().getScheduler().isQueued(taskId); - } - - private boolean isInSession(Player other) { - return player.getName().equals(other.getName()); - } - - private void beginReforge() { - taskId = plugin - .getServer() - .getScheduler() - .scheduleAsyncDelayedTask(plugin, this, - (new Random().nextInt(maxReforgeDelay) + minReforgeDelay) * 20); - } - } -} \ No newline at end of file diff --git a/src/main/java/net/instinxx/blacksmith/BlacksmithPlugin.java b/src/main/java/net/instinxx/blacksmith/BlacksmithPlugin.java deleted file mode 100644 index 3c09974..0000000 --- a/src/main/java/net/instinxx/blacksmith/BlacksmithPlugin.java +++ /dev/null @@ -1,149 +0,0 @@ -package net.instinxx.blacksmith; - -import java.util.logging.Level; - - -import net.citizensnpcs.api.CitizensAPI; -import net.citizensnpcs.api.npc.character.CharacterFactory; -import net.citizensnpcs.api.util.DataKey; - -import net.instinxx.blacksmith.util.Settings; -import net.instinxx.blacksmith.util.Settings.Setting; -import net.milkbowl.vault.economy.Economy; - -import org.bukkit.enchantments.Enchantment; -import org.bukkit.entity.Player; -import org.bukkit.inventory.ItemStack; -import org.bukkit.plugin.RegisteredServiceProvider; -import org.bukkit.plugin.java.JavaPlugin; - -public class BlacksmithPlugin extends JavaPlugin { - private Settings config; - private Economy economy; - - @Override - public void onDisable() { - config.save(); - - getLogger().log(Level.INFO, " v" + getDescription().getVersion() + " disabled."); - } - - @Override - public void onEnable() { - config = new Settings(this); - config.load(); - - // Setup Vault - RegisteredServiceProvider economyProvider = getServer().getServicesManager().getRegistration( - Economy.class); - if (economyProvider != null) - economy = economyProvider.getProvider(); - else { - // Disable if no economy plugin was found - getServer().getLogger().log(Level.SEVERE, "Failed to load an economy plugin. Disabling..."); - getServer().getPluginManager().disablePlugin(this); - return; - } - - CitizensAPI.getCharacterManager().registerCharacter( - new CharacterFactory(Blacksmith.class).withName("blacksmith")); - - getLogger().log(Level.INFO, " v" + getDescription().getVersion() + " enabled."); - } - - public boolean isTool(ItemStack item) { - switch (item.getType()) { - case WOOD_PICKAXE: - case WOOD_SPADE: - case WOOD_HOE: - case WOOD_SWORD: - case WOOD_AXE: - case STONE_PICKAXE: - case STONE_SPADE: - case STONE_HOE: - case STONE_SWORD: - case STONE_AXE: - case GOLD_PICKAXE: - case GOLD_SPADE: - case GOLD_HOE: - case GOLD_SWORD: - case GOLD_AXE: - case IRON_PICKAXE: - case IRON_SPADE: - case IRON_HOE: - case IRON_SWORD: - case IRON_AXE: - case DIAMOND_PICKAXE: - case DIAMOND_SPADE: - case DIAMOND_HOE: - case DIAMOND_SWORD: - case DIAMOND_AXE: - case BOW: - case FLINT_AND_STEEL: - case FISHING_ROD: - case SHEARS: - return true; - default: - return false; - } - } - - public boolean isArmor(ItemStack item) { - switch (item.getType()) { - case LEATHER_HELMET: - case LEATHER_CHESTPLATE: - case LEATHER_LEGGINGS: - case LEATHER_BOOTS: - case CHAINMAIL_HELMET: - case CHAINMAIL_CHESTPLATE: - case CHAINMAIL_LEGGINGS: - case CHAINMAIL_BOOTS: - case GOLD_HELMET: - case GOLD_CHESTPLATE: - case GOLD_LEGGINGS: - case GOLD_BOOTS: - case IRON_HELMET: - case IRON_CHESTPLATE: - case IRON_LEGGINGS: - case IRON_BOOTS: - case DIAMOND_HELMET: - case DIAMOND_CHESTPLATE: - case DIAMOND_LEGGINGS: - case DIAMOND_BOOTS: - return true; - default: - return false; - } - } - - public boolean doesPlayerHaveEnough(Player player) { - return economy.getBalance(player.getName()) - getCost(player.getItemInHand()) >= 0; - } - - public String formatCost(Player player) { - return economy.format(getCost(player.getItemInHand())); - } - - public void withdraw(Player player) { - economy.withdrawPlayer(player.getName(), getCost(player.getItemInHand())); - } - - private double getCost(ItemStack item) { - DataKey root = config.getConfig().getKey(""); - double price = Setting.BASE_PRICE.asDouble(); - if (root.keyExists("base-prices." + item.getType().name().toLowerCase().replace('_', '-'))) - price = root.getDouble("base-prices." + item.getType().name().toLowerCase().replace('_', '-')); - - // Adjust price based on durability and enchantments - price += (item.getType().getMaxDurability() * item.getDurability()); - - double enchantmentModifier = Setting.ENCHANTMENT_MODIFIER.asDouble(); - for (Enchantment enchantment : item.getEnchantments().keySet()) { - if (root.keyExists("enchantment-modifiers." + enchantment.getName().toLowerCase().replace('_', '-'))) - enchantmentModifier = root.getDouble("enchantment-modifiers." - + enchantment.getName().toLowerCase().replace('_', '-')); - price += enchantmentModifier * item.getEnchantmentLevel(enchantment); - } - return price; - } -} \ No newline at end of file diff --git a/src/main/java/net/instinxx/blacksmith/util/Settings.java b/src/main/java/net/instinxx/blacksmith/util/Settings.java deleted file mode 100644 index 94c7411..0000000 --- a/src/main/java/net/instinxx/blacksmith/util/Settings.java +++ /dev/null @@ -1,100 +0,0 @@ -package net.instinxx.blacksmith.util; - -import java.io.File; - - -import net.citizensnpcs.api.util.DataKey; -import net.citizensnpcs.api.util.YamlStorage; -import net.instinxx.blacksmith.BlacksmithPlugin; - -public class Settings { - private final YamlStorage config; - - public Settings(BlacksmithPlugin plugin) { - config = new YamlStorage(plugin.getDataFolder() + File.separator + "config.yml", "Blacksmith Configuration"); - } - - public void load() { - DataKey root = config.getKey(""); - for (Setting setting : Setting.values()) - if (!root.keyExists(setting.path)) - root.setRaw(setting.path, setting.get()); - else - setting.set(root.getRaw(setting.path)); - - save(); - } - - public void save() { - config.save(); - } - - public YamlStorage getConfig() { - return config; - } - - public enum Setting { - BASE_PRICE("base-prices.default", 10), - BUSY_WITH_PLAYER_MESSAGE("defaults.messages.busy-with-player", "I'm busy at the moment. Come back later!"), - BUSY_WITH_REFORGE_MESSAGE("defaults.messages.busy-with-reforge", "I'm working on it. Be patient!"), - COOLDOWN_UNEXPIRED_MESSAGE( - "defaults.messages.cooldown-not-expired", - "You've already had your chance! Give me a break!"), - COST_MESSAGE( - "defaults.messages.cost", - "It will cost to reforge that ! Click again to reforge!"), - DROP_ITEM("defaults.drop-item", true), - ENCHANTMENT_MODIFIER("enchantment-modifiers.default", 5), - FAIL_CHANCE("defaults.percent-chance-to-fail-reforge", 10), - FAIL_MESSAGE("defaults.messages.fail-reforge", "Whoops! Didn't mean to do that! Maybe next time?"), - INSUFFICIENT_FUNDS_MESSAGE( - "defaults.messages.insufficient-funds", - "You don't have enough money to reforge that item!"), - INVALID_ITEM_MESSAGE("defaults.messages.invalid-item", "I'm sorry, but I don't know how to reforge that!"), - ITEM_UNEXPECTEDLY_CHANGED_MESSAGE( - "defaults.messages.item-changed-during-reforge", - "That's not the item you wanted to reforge before!"), - MAX_ENCHANTMENTS("defaults.maximum-enchantments", 1), - MAX_REFORGE_DELAY("defaults.delays-in-seconds.maximum", 30), - MIN_REFORGE_DELAY("defaults.delays-in-seconds.minimum", 5), - REFORGE_COOLDOWN("defaults.delays-in-seconds.reforge-cooldown", 60), - START_REFORGE_MESSAGE("defaults.messages.start-reforge", "Ok, let's see what I can do..."), - SUCCESS_MESSAGE("defaults.messages.successful-reforge", "There you go! All better!"); - - private String path; - private Object value; - - Setting(String path, Object value) { - this.path = path; - this.value = value; - } - - public boolean asBoolean() { - return (Boolean) value; - } - - public double asDouble() { - if (value instanceof String) - return Double.valueOf((String) value); - if (value instanceof Integer) - return (Integer) value; - return (Double) value; - } - - public int asInt() { - return (Integer) value; - } - - public String asString() { - return value.toString(); - } - - private Object get() { - return value; - } - - private void set(Object value) { - this.value = value; - } - } -} \ No newline at end of file diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml deleted file mode 100644 index 87b9145..0000000 --- a/src/main/resources/plugin.yml +++ /dev/null @@ -1,5 +0,0 @@ -name: Blacksmith -author: aPunch -version: 1.0 -main: net.instinxx.blacksmith.BlacksmithPlugin -depend: [Citizens, Vault] \ No newline at end of file diff --git a/target/classes/net/apunch/blacksmith/BlacksmithPlugin.class b/target/classes/net/apunch/blacksmith/BlacksmithPlugin.class new file mode 100644 index 0000000000000000000000000000000000000000..907f0713fefaf1c8768a86a141f9fc3d80388fa4 GIT binary patch literal 33348 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
n0bh4pRO*@9!iIbDV+6XReOQ!R&StXTB z<&l%0qHx%$Y~pu&91)#CF(#)SZ#!jAD{JQfFh%7;-jeB0H1NhaG1eIpdj)d2HXq zjTe-F3t$8)Zz`G=HwjpN%6JeeeCiKmgvn@H>xiw}oxVTWMfHRq#DNJXfU^Tyk zz;t;ZZg6%WXGhKPIi#p|CLCNHlAN8%DPk^)a++(zttp2?r-YnRCM|4Ce2MH#C8vxP zwtlVZRFE^x)8I0VZ7RvBVokt}z3zJhCrM5XYsrhq`kj?iOHN&exqAuaG>|icwHOD! zqf4Kwon6V9$xO&&ypIz)v&q>lL$5FIoju5D%G7(WE1YI>=49%N>7m~AxRTy}Dj-bAwHk~p%i^=I=E|TVEBr7;*IZMddiz&OV zp-iPWPB%F{tO+VjQ;9dR%g9;I>S$V>N?M#1b0g!o-Xw!M9?KFD=PV| zw{sOaSF_q|OmK?nTuaV%ZjFfee6#J`K+cVF-jdLqGy{z}E z5a6wb+sIjyGDdg27r4$HnfHKxq+)d6stc`kF^-@bO$@|E;KV84Kd>$m{Ay$$q zk+FInA?Hyhf-a#K&*S7gkyh(lDd#D2o@TXrru6pdJWI}VtarPqd-4J~FJ@Gt7u3t- zyuxZ8DSlVryhhIJUg_HD#r)2RwQrL17Hg@ownF6q-rFhX9dh1fB0MuuiK}_<;}1UP zJ-qr=9|Kfh&Z+LKTiUW?UFebmUr#4OH9s#!;%Kdh~~D8Zo+8Y_v)YyF-ke8AGj`1CQ?& zTlb1du^sSFuh^+q6sKDWq6b23AvVQNjig%`k!qn_w;<=C1%CD?M&BVSW}@opw~Fe~ zw}|RqQFEK9i_KgkW*g#RkwA;hYXqhS-H0tfYojeZn5$igz0)IHR5GMSlmNH_0Vhl_W_yUHzxi?!lCJg*e*ix0fM%z+IL--Z~i!DC`8*N6`dahAwZe|~O= zd&SBd<&7|KoxttH-uU^U73jcz8AGyRsuLTEuf;d0o+r%|atQwXR($8SC(GUTB!=XB z%*{`|;*W9H!0>zS1O9&#|9^}B-}29@ zVDX2zK>Q^xN)IWjaDy0zP8t$JsfN_yb?^sN($b?UZt-TZJ!4dP_?yr&La-c!zjyz? z{C|KaxLhp2j~Of!ccq^IUg|x8Xz%|7_|}$`HhSl-iQVAIJXS-oChi)uM*0w+AVT=K z{c4##KXS%7!tT>37Zl?DjK+qh8XGEeWu7-&7`6@3QobzkTAB%``O5PA5K0p4ER2=n)54F1BfTe-6};#3@~t5ii0xoKRE>Xl=vSII4V<+hWou^dq1 zatih~wZ`NQy>jPhQ*>;vOn8x9R-7e9{};RDBnyocoF&&rCOPi~<&=q3*pwJqL?|t7Z_nI6ma0Ugl*2r#Cv`lga1qKDz zNPH={SMGb8Jg8S5(a5&PNOAVMr|yvRXRemVPYwAW1(7K z4Pj*-*5-ID!eia49_tDb)@YJb;J6cT+mW4r?4lko2A9-gbLL4jU* z{~GzQ#7~Dji65DXT_F|@ig`nJ@Z@Z7j-J6>4$AJ8&kZ<}BmdnhIVr2aDnN5w%kxKa z7q}TU+9wxSH+VI?^e;X$(R+yhVxHtit`Iq1kyY{)JaNXeV{H07df*DtHYkvKbbsbU z`Tx_S4{VjhJXn~CL7=@SM=R>dPr;L8&AB&R=~5Uton+p%kQ zV$VDnyXJBD&4(Mr$Kp=$34ZnCBUpY8_6z*`rT9U7h2KK>8Zqr#84%ye!Qy*4QT&82 zH2*9s@RJLT;#aww_)YGOA67U5UpP5MtdplB3|@%Xc%3xy9WYzoFCFPiqb~N6HP%ZDj#I zuDFqkD7~DynWZ{#;lqmVZUUVOVTOp96Xomj4FtG6bDVq=6U ziSy(qs4pz<$In)Miodd8FU&^w|CzeoIZM${1G`>ws_#U}&~O|>@vMehDt4uY+bDRVhTAIR2Q-|l z*rPPWITKagt>MlJuF8shj2 znDU9URnZpBo~PhK4KD?iS1sL5{qg$C2 zk7;4;jisH2g%dFKGC=Vkc<$m4f9OeyiX# z4S!H@vW7n^c$kL2DY&=bd;?QIA%bx_iC0DyhFn*1uxSu zrl4MeX0C!aYqkI|s$JR~!e~RyZKO;;&~Re~zt?a$LwTTvn{iS7=q4^kK;~+4tb%b3 zw@@&qA@0dwEH#{{V2*~kJ^Ld%Nu%wV6yIrxdo{psH7r)}8x0c-<<1(G14eZOF{d+X z(i|?-{_ttA3sVIe)dOXV8#QcXQai9YOOd^r+?}C3Ny9zac3+KJliVf-^O|Se5-l!^;4p zGc>xAQM*RhsFL*>Ue9D|fNxTyj>6_G3hGdAu2!%^7rkAaiv2~y90h;YFdxv-V6ftz({Mw;Xhfqz zCgu4WZld4@8jes!uhVdpg4bxcxq>=Nvc{{jJ(}GLFgjPG35;~EX>G@-MsrhC!6_Q< z$WXkkVUc3@*RYg}j?t)0k$S(hrYV>j(JBQ;XyY0#sy8yLj?p~L%}}PPVVS9*(Clsu z#fKU;DK@I%9KdJ_wJO`UG`T>*(==S9;F}tDDEP64dntIOhCK{rvxdt7qdH_*`!H(I z-2STMgBl*BN*=A@p^Cjn!y^>DUBjalOc@^s7%kT1N=DlGt&#8n-aa8ZD)}>rjT&&3}n4GH7 z)vDgq=wHXA-h{0iRmn@V?afRUYSgR9mo;3&P|ncsP6bngbdQ3in!O(|szZG(7&e7;~Mq6t17MqHnG<;W;)El7nKHGL` z@*_natl_6j?yAujjP}y#Yh{{(-!ZATH0wu3UE1^)Wtv*!zbm*%vwyLz4i&a!QoQ1k zw#B60cx)e|tuz-@rZ;F9W+*q*Fsk5q4dYyNm_~Vww0qiv7;UP#4H)UY!yXEhEp=?L zhbcHj+iuFXdKT=FOp2A79HVS?*t5qexQk}DRB&qzw*idmU~6y7q_|3xla=i<4R=s* zsfIgq(MF9*6sdCpd#Zv7%~r5&n?{vPipMofD)^L!wF*9=VS|ECYq+a|Pii=uq101u z@1fXpHQTJ<*&5DOP;X%Nd{uV2W)~{BkA{mC+*iXT3hJ!P?gqpc>)pE*dzm83G+d!z zg@*enI7!0;6}()-LlnG1!^0KS@z*{|L7lzY$0~TCHg-eUMH-%@SRIG#Qx(*~#Xdv9 zOSSRY3SOq+c?xc(;e`yvSsGrV*d-cXuGrHxyh_0{G`totx}QcjFw%Rcy^7H^&E3jK zXTkPujH)zu2P2(Y*>^JyIe%7EL~`;H?@y#ZXSy@L2^@i|_@& zXjqdkGa97PYiufXkh0%o(x=IH6nV9V?=h67h94@Ja+gmOOby@X3J%rAUjasU*63R% z#Yr0eplnks>1PGE)a-A{IOSS@0!CXr(h-b0G%^__HFCJ19I0V|NgXmAVzh(ivKYAjW%Xd+^^wqWqYKCn<@4#4M!_@n}%Z*Oc`&X zpk5`;)_~DHwe3Vj>NVp`Qt&3tZqK%)(N2tl8Wl4dt5HG~{6WKVKwE?9iu+o_YA#r< z(JqQyr(wN55#X$+MVDXml=)bMtOvQWdjxTrn`I`=Buzcl%Pf}d&lFx%>V z#d%DTpK9_+CMRn245I@zdS01+qTx$S4%g^aMpHC;gH2_VhHo=D!bLN0mS5i}uf#`r zhKP-vwPL6kEyhBQ6O+XDkUNNSF&(lJAO4vIIU6r-+8`I=BS6a_m*dkuheIAAP7M*HEhHH zdGbQYi{!QP2FM%n3ypU}-h*FDdgZ$lajDWM&2pYLY z0puWKxUm`JNMmbbBILG4v5|nBYSb8Yko88BF$c26=rHzz>@xN@4uU+`IL=rJd7^Q) zaUSIP##P3(kk=WjjoTsbFdi}+YfIoibhnB&YzCg#W7!7Mj1KW3%bXkvcM*=DP`0J6>OF_%N`Z60bK0ePf( zvUwWh>E=b|rI44IH<~v?-eTTu-UoTV`IL$IF`qNvG%-KsyXNO6=EwZn{LRGtn15M* z3-e=)P)ds+Kg2SOfX z9c!Hcxzak@!nj!HTUS{a7wbCfHtP<^JFQ2o$047vUbbF?eBJuc`ULV*>j&#+$X{&J zcAT}g&yLx-ka_mT_Hf8e?JexBA-A!2w2L5%?JBzlau<6yy9shndy(A%*=g@%?+_DLtbOwYTpLA#(uzl81fPOdHW^Em+iIo2aq4y-`JQR`v?0k z2lL|?PT0ZxIN8ny&QQogXN)rra=bIy*#UA#r^2a(ta2J1%#SnMnde~rI18Pn&fbtK zoWqTjy!#H3xp{yyblCdI33%(p4z2;Y{zZ6GK3cJ`G(mim&uTF5%z9=>MCIljd{ z%#Uv`-+n&KkMAJgu|CX?Z>8@n-?@O{$Z}h`&{kQn<@!t>m zfd6U#bCA#b-}1i;xz_)M|7*x^{J;DEf?O8}2ExwTKqN3IumR+Tfz1M=A;$zJ1|~sH z4wMGqw}J9NU0?=eW1u-O7qT_b8R&xS4jd3T81j(7@qrT|PYRqHxB&9Pz%_yEA#VuW z9=Hqg?!cpgCm^2;yb^dF@{Pbpflnbn3;Y=P1@hOR74$i4gZ^MVi1`WT2ZseQKfw{f zErXb!;Dq2#!D7ggV0Ca8$lBoU!95|HgYCgi$R)vjg9kt!7(6C;Jmd+%GlFMBo)f%0 zcopQ;!CQi>A#V#l5QN_b9|=Amgx>~V4z3Mieu5tczX@V~fHmxF5PSbbaV1$W@^`L-58n7*YSAb+HFVT?=I3`fEk zmvAh+VHkcJ-Z;E@7=9bxB0MDwzYXsco)(7RhO5If!|>bi?%@UDMUd^`W#JW&`-Be< z9|d`I_>}PJkY|K14qpa&dHBXK{5E_`_?|HQHvB;NsqnLq&xPL%zXSPh`19~rkY9&? z3;zlES0oT2XKf@L$&U<%91u$(nQ8js1?OJiu$ARXdYyKbXas#$Pv*k zquW4Ei0%|EhAfFzM|Xj&jqV=BI*K+&+oM=V(IwG+qWeQ05Is729OUuQGo$A~o*TV9 ziggsdI(lpLHpn&62cwTbJ{o-?`ZDAz(f6Vlm*_{)Z=)EO=#SYV+jQ1uTiIFJG01rK zM%f!f4$B^!y#?f!+1qFD1i5qe^z3TLWcIA=-68kLZp&_mT%5f;dmqSsvyaF=8uFOz z)3VQmJS+Rs>?{n-yeKAinr_KT1&Wxt#KKI8}4UuS;@`F-|ZG3-Mz zBNmQfeq!0N4Puy|SYd2T4D%BkADbN80dmJ!MXVCCDzo)Nn!hIkvhEOtX|739sayJGi3-WPi!_B7-(vDad6LcSIIIEML& zeIENM_ABIXaVw7biTmU6IOZpwA0HOS{KQAZw~S+c;uGRK$4ekf4j{*rrT?#;RIm)zC4_vgZ2av#opHunX{7jxgqeGl^e+^=%Kh5Rn}&phF* z&69bQmjxNk8*Ew3kU zIpp4XhvXd&c|_hxd8b02mUlrO)^pw^dDrD(T=H(pyEE?|$b0i1&%?OnJ)QSj9>yi_ zt-Me2FfMstWJmtq`TIidmw!Y))=~a3`KRS$9p#^ue`!9(CI8C&oAWU) z`K$Bq%YP8^q5Nm_F)sNp=D(AVamjx_|I7SuAivH3BY&NYL?I0%=loTND7L*m#79j2x%qZBipatg__XFeZC!gJKyYNS*@u4_>qq$4D z&v}0xzF#0A`Jc6-YJLAqUmvmF5|vy+{j*+^|3hNE4W)^6hX&HAzNCqMU0W~l|FM{= zPmSq6*W9lg>xKWd7G*b(@j$wCYwKmx_4Rw0ekJ(vcJr0W}~&uLw{$+WKDUul!{ zU;Ru5g6UrU^I!eS4rHuM`VndP&#bchug2-Vq>H8h>c^&G`mcTsDWadQA5541pZ@y4 zsb#%Qs_OswpMjn&U0=HFKimB?o32Iul{QWj=_b>ErH#|Net-2dN!OPq*1L4mCjBa1 zFHD!{_g6odu3#XdpKiTypjwn}y(JXUj}?aV0a6UZ`Ox_YGA0bUm8ft&-g%JoiQL@z HOvwKS0xQIx literal 0 HcmV?d00001 diff --git a/target/classes/net/apunch/blacksmith/BlacksmithTrait$ReforgeSession.class b/target/classes/net/apunch/blacksmith/BlacksmithTrait$ReforgeSession.class new file mode 100644 index 0000000000000000000000000000000000000000..085b919a733d77794988a4d8dc54adaf1a6c7700 GIT binary patch literal 7018 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 literal 0 HcmV?d00001 diff --git a/target/classes/net/apunch/blacksmith/BlacksmithTrait.class b/target/classes/net/apunch/blacksmith/BlacksmithTrait.class new file mode 100644 index 0000000000000000000000000000000000000000..4cc30b760b34f0ad68e4d2c0f64836cafdb81d9d GIT binary patch literal 11527 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 dPP(5qUYme%2qMTq literal 0 HcmV?d00001 diff --git a/target/classes/net/apunch/blacksmith/util/Settings$Setting.class b/target/classes/net/apunch/blacksmith/util/Settings$Setting.class new file mode 100644 index 0000000000000000000000000000000000000000..514e14444f6c54454f87218245dff3006582b616 GIT binary patch literal 5661 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 as)47c{wl)dGsab#-@V(NC~*$FfcO`Gl$68( literal 0 HcmV?d00001