From 5fbf97ab28552ef9071281fdb728a79425d1f795 Mon Sep 17 00:00:00 2001 From: Not Zed Date: Tue, 28 Feb 2023 10:23:46 +1030 Subject: [PATCH] Convert to modular Java. --- .gitignore | 8 +- DuskZ/COPYING => COPYING | 0 DuskZ/COPYING.GPLv2 => COPYING.GPLv2 | 0 DuskCommon/COPYING | 339 -- DuskCommon/README | 33 - DuskCommon/build.xml | 74 - DuskCommon/nbproject/build-impl.xml | 1411 -------- DuskCommon/nbproject/genfiles.properties | 8 - DuskCommon/nbproject/project.properties | 70 - DuskCommon/nbproject/project.xml | 15 - DuskServer/COPYING | 339 -- DuskServer/CommandsWork.java | 2393 ------------ DuskServer/README | 71 - DuskServer/build.xml | 74 - DuskServer/manifest.mf | 3 - DuskServer/nbproject/build-impl.xml | 1425 -------- DuskServer/nbproject/genfiles.properties | 8 - DuskServer/nbproject/project.properties | 77 - DuskServer/nbproject/project.xml | 25 - DuskZ/README | 86 - DuskZ/build.xml | 53 - DuskZ/manifest.mf | 3 - DuskZ/nbproject/build-impl.xml | 1459 -------- .../configs/Run_as_WebStart.properties | 2 - .../configs/Run_in_Browser.properties | 2 - DuskZ/nbproject/genfiles.properties | 8 - DuskZ/nbproject/jfx-impl.xml | 3218 ----------------- DuskZ/nbproject/project.properties | 120 - DuskZ/nbproject/project.xml | 39 - Makefile | 82 +- README | 105 +- DuskServer/TODO => TODO | 0 TileZ/COPYING | 674 ---- TileZ/README | 16 - TileZ/build.xml | 53 - TileZ/manifest.mf | 3 - TileZ/nbproject/build-impl.xml | 1473 -------- .../configs/Run_as_WebStart.properties | 2 - .../configs/Run_in_Browser.properties | 2 - TileZ/nbproject/genfiles.properties | 8 - TileZ/nbproject/jfx-impl.xml | 3218 ----------------- TileZ/nbproject/project.properties | 123 - TileZ/nbproject/project.xml | 47 - config.make.in | 14 + {DuskServer/docs => docs}/dusk-script | 0 {DuskServer/docs => docs}/duskz-classes | 0 {DuskServer/docs => docs}/duskz-javascript | 0 {DuskServer/docs => docs}/duskz-multimap | 0 {DuskServer/docs => docs}/duskz-script | 0 {DuskServer/docs => docs}/duskz-state | 0 java.make | 425 +++ nbproject/build-impl.xml | 1845 ++++++++++ nbproject/genfiles.properties | 8 + nbproject/project.properties | 111 + nbproject/project.xml | 15 + .../classes}/duskz/client/Bookmarks.java | 0 .../classes}/duskz/client/ClientMap.java | 0 .../classes}/duskz/client/DataManager.java | 0 .../classes}/duskz/client/Direction.java | 0 .../classes}/duskz/client/Dusk.java | 0 .../classes}/duskz/client/Entity.java | 0 .../classes}/duskz/client/Equipment.java | 0 .../classes}/duskz/client/GUI.java | 0 .../classes}/duskz/client/Status.java | 0 .../duskz/client/fx/DataManagerFX.java | 0 .../classes}/duskz/client/fx/DuskFX.java | 0 .../duskz/client/fx/EquipmentPane.java | 0 .../classes}/duskz/client/fx/MainFrameFX.java | 0 .../duskz/client/fx/TileAnimator.java | 0 .../duskz/client/fx/TransactionPane.java | 0 .../classes}/duskz/client/fx/style.css | 0 .../classes}/jfxtras/animation/Timer.java | 0 .../css/CssMetaDataForSkinProperty.java | 0 .../scene/control/skin/ListSpinnerSkin.java | 0 .../jfxtras/scene/control/ListSpinner.java | 0 .../control/ListSpinnerBigIntegerList.java | 0 .../scene/control/ListSpinnerIntegerList.java | 0 .../layout/GenericLayoutConstraints.java | 0 .../classes}/jfxtras/scene/layout/HBox.java | 0 .../classes}/jfxtras/scene/layout/VBox.java | 0 .../classes}/jfxtras/util/NodeUtil.java | 0 src/duskz.client/classes/module-info.java | 30 + .../classes}/duskz/protocol/DuskMessage.java | 0 .../classes}/duskz/protocol/DuskProtocol.java | 0 .../duskz/protocol/EntityListMessage.java | 0 .../duskz/protocol/EntityUpdateMessage.java | 0 .../classes}/duskz/protocol/ListMessage.java | 0 .../classes}/duskz/protocol/MapMessage.java | 0 .../duskz/protocol/TransactionItem.java | 0 .../duskz/protocol/TransactionMessage.java | 0 .../classes}/duskz/protocol/Wearing.java | 0 .../classes}/duskz/util/Debug.java | 0 .../classes}/duskz/util/Maths.java | 0 src/duskz.common/classes/module-info.java | 6 + .../au/notzed/tilez/DuskInfoView.java | 0 .../au/notzed/tilez/LocationEditor.java | 0 .../classes}/au/notzed/tilez/MapLayer.java | 0 .../au/notzed/tilez/MapSelectionModel.java | 0 .../classes}/au/notzed/tilez/MapView.java | 0 .../classes}/au/notzed/tilez/TZ.java | 0 .../classes}/au/notzed/tilez/TextEditor.java | 0 .../classes}/au/notzed/tilez/TileView.java | 0 .../classes}/au/notzed/tilez/TileZ.java | 0 .../classes}/au/notzed/tilez/io/Data.java | 0 .../classes}/au/notzed/tilez/io/Image.java | 0 .../classes}/au/notzed/tilez/io/Layer.java | 0 .../classes}/au/notzed/tilez/io/Map.java | 0 .../classes}/au/notzed/tilez/io/Object.java | 0 .../au/notzed/tilez/io/ObjectFactory.java | 0 .../au/notzed/tilez/io/Objectgroup.java | 0 .../au/notzed/tilez/io/Properties.java | 0 .../classes}/au/notzed/tilez/io/Property.java | 0 .../classes}/au/notzed/tilez/io/Tile.java | 0 .../classes}/au/notzed/tilez/io/Tileset.java | 0 .../classes}/au/notzed/duskz/util/BCrypt.java | 0 .../classes}/au/notzed/duskz/util/Chars.java | 0 .../classes}/duskz/io/Convert.java | 0 .../duskz.server/classes}/duskz/io/Tiled.java | 0 .../classes}/duskz/io/tiled/Data.java | 0 .../classes}/duskz/io/tiled/Image.java | 0 .../classes}/duskz/io/tiled/Layer.java | 0 .../classes}/duskz/io/tiled/Map.java | 0 .../classes}/duskz/io/tiled/Object.java | 0 .../duskz/io/tiled/ObjectFactory.java | 0 .../classes}/duskz/io/tiled/Objectgroup.java | 0 .../classes}/duskz/io/tiled/Properties.java | 0 .../classes}/duskz/io/tiled/Property.java | 0 .../classes}/duskz/io/tiled/Tile.java | 0 .../classes}/duskz/io/tiled/Tileset.java | 0 .../classes}/duskz/proto/Junk.java | 0 .../duskz/server/BannedIPException.java | 0 .../classes}/duskz/server/Battle.java | 0 .../duskz/server/BlockedIPException.java | 0 .../classes}/duskz/server/Commands.java | 0 .../classes}/duskz/server/Condition.java | 0 .../classes}/duskz/server/Config.java | 0 .../classes}/duskz/server/Constants.java | 0 .../classes}/duskz/server/DuskEngine.java | 0 .../classes}/duskz/server/DuskServer.java | 0 .../classes}/duskz/server/Faction.java | 0 .../classes}/duskz/server/GiveItem.java | 0 .../classes}/duskz/server/ItemList.java | 0 .../classes}/duskz/server/Log.java | 0 .../duskz/server/RandomAccessString.java | 0 .../classes}/duskz/server/SaveThread.java | 0 .../classes}/duskz/server/Script.java | 0 .../classes}/duskz/server/SpellGroup.java | 0 .../classes}/duskz/server/TickThread.java | 0 .../classes}/duskz/server/TrackerThread.java | 0 .../classes}/duskz/server/Variable.java | 0 .../classes}/duskz/server/VariableSet.java | 0 .../classes}/duskz/server/entity/Ability.java | 0 .../duskz/server/entity/DuskObject.java | 0 .../duskz/server/entity/Equipment.java | 0 .../classes}/duskz/server/entity/Item.java | 0 .../duskz/server/entity/LivingThing.java | 0 .../duskz/server/entity/Merchant.java | 0 .../classes}/duskz/server/entity/Mob.java | 0 .../duskz/server/entity/PlayerMerchant.java | 0 .../classes}/duskz/server/entity/Prop.java | 0 .../classes}/duskz/server/entity/Sign.java | 0 .../classes}/duskz/server/entity/TileMap.java | 0 .../duskz/server/entityz/Ability.java | 0 .../classes}/duskz/server/entityz/Active.java | 0 .../classes}/duskz/server/entityz/Armour.java | 0 .../classes}/duskz/server/entityz/Battle.java | 0 .../duskz/server/entityz/Commands.java | 0 .../duskz/server/entityz/Condition.java | 0 .../duskz/server/entityz/ConditionList.java | 0 .../duskz/server/entityz/Container.java | 0 .../duskz/server/entityz/Converter.java | 0 .../classes}/duskz/server/entityz/Drink.java | 0 .../duskz/server/entityz/Equipment.java | 0 .../duskz/server/entityz/Faction.java | 0 .../classes}/duskz/server/entityz/Food.java | 0 .../classes}/duskz/server/entityz/Game.java | 0 .../duskz/server/entityz/GameServer.java | 0 .../duskz/server/entityz/GameShop.java | 0 .../duskz/server/entityz/Holdable.java | 0 .../duskz/server/entityz/Inventory.java | 0 .../classes}/duskz/server/entityz/Item.java | 0 .../duskz/server/entityz/Location.java | 0 .../classes}/duskz/server/entityz/Log.java | 0 .../classes}/duskz/server/entityz/Mobile.java | 0 .../classes}/duskz/server/entityz/Pack.java | 0 .../classes}/duskz/server/entityz/Pet.java | 0 .../classes}/duskz/server/entityz/Player.java | 0 .../duskz/server/entityz/PlayerCommands.java | 0 .../server/entityz/PlayerConnection.java | 0 .../duskz/server/entityz/PlayerShop.java | 0 .../duskz/server/entityz/PlayerState.java | 0 .../classes}/duskz/server/entityz/Prop.java | 0 .../duskz/server/entityz/PropertyLoader.java | 0 .../classes}/duskz/server/entityz/Race.java | 0 .../duskz/server/entityz/ScriptManager.java | 0 .../classes}/duskz/server/entityz/Shop.java | 0 .../classes}/duskz/server/entityz/Sign.java | 0 .../classes}/duskz/server/entityz/Thing.java | 0 .../duskz/server/entityz/ThingTable.java | 0 .../duskz/server/entityz/TileMap.java | 0 .../server/entityz/TooManyTriesException.java | 0 .../duskz/server/entityz/Training.java | 0 .../duskz/server/entityz/VariableList.java | 0 .../classes}/duskz/server/entityz/Weapon.java | 0 .../duskz/server/entityz/Wearable.java | 0 src/duskz.server/classes/module-info.java | 27 + 206 files changed, 2603 insertions(+), 17047 deletions(-) rename DuskZ/COPYING => COPYING (100%) rename DuskZ/COPYING.GPLv2 => COPYING.GPLv2 (100%) delete mode 100644 DuskCommon/COPYING delete mode 100644 DuskCommon/README delete mode 100644 DuskCommon/build.xml delete mode 100644 DuskCommon/nbproject/build-impl.xml delete mode 100644 DuskCommon/nbproject/genfiles.properties delete mode 100644 DuskCommon/nbproject/project.properties delete mode 100644 DuskCommon/nbproject/project.xml delete mode 100644 DuskServer/COPYING delete mode 100644 DuskServer/CommandsWork.java delete mode 100644 DuskServer/README delete mode 100644 DuskServer/build.xml delete mode 100644 DuskServer/manifest.mf delete mode 100644 DuskServer/nbproject/build-impl.xml delete mode 100644 DuskServer/nbproject/genfiles.properties delete mode 100644 DuskServer/nbproject/project.properties delete mode 100644 DuskServer/nbproject/project.xml delete mode 100644 DuskZ/README delete mode 100644 DuskZ/build.xml delete mode 100644 DuskZ/manifest.mf delete mode 100644 DuskZ/nbproject/build-impl.xml delete mode 100644 DuskZ/nbproject/configs/Run_as_WebStart.properties delete mode 100644 DuskZ/nbproject/configs/Run_in_Browser.properties delete mode 100644 DuskZ/nbproject/genfiles.properties delete mode 100644 DuskZ/nbproject/jfx-impl.xml delete mode 100644 DuskZ/nbproject/project.properties delete mode 100644 DuskZ/nbproject/project.xml rename DuskServer/TODO => TODO (100%) delete mode 100644 TileZ/COPYING delete mode 100644 TileZ/README delete mode 100644 TileZ/build.xml delete mode 100644 TileZ/manifest.mf delete mode 100644 TileZ/nbproject/build-impl.xml delete mode 100644 TileZ/nbproject/configs/Run_as_WebStart.properties delete mode 100644 TileZ/nbproject/configs/Run_in_Browser.properties delete mode 100644 TileZ/nbproject/genfiles.properties delete mode 100644 TileZ/nbproject/jfx-impl.xml delete mode 100644 TileZ/nbproject/project.properties delete mode 100644 TileZ/nbproject/project.xml create mode 100644 config.make.in rename {DuskServer/docs => docs}/dusk-script (100%) rename {DuskServer/docs => docs}/duskz-classes (100%) rename {DuskServer/docs => docs}/duskz-javascript (100%) rename {DuskServer/docs => docs}/duskz-multimap (100%) rename {DuskServer/docs => docs}/duskz-script (100%) rename {DuskServer/docs => docs}/duskz-state (100%) create mode 100644 java.make create mode 100644 nbproject/build-impl.xml create mode 100644 nbproject/genfiles.properties create mode 100644 nbproject/project.properties create mode 100644 nbproject/project.xml rename {DuskZ/src => src/duskz.client/classes}/duskz/client/Bookmarks.java (100%) rename {DuskZ/src => src/duskz.client/classes}/duskz/client/ClientMap.java (100%) rename {DuskZ/src => src/duskz.client/classes}/duskz/client/DataManager.java (100%) rename {DuskZ/src => src/duskz.client/classes}/duskz/client/Direction.java (100%) rename {DuskZ/src => src/duskz.client/classes}/duskz/client/Dusk.java (100%) rename {DuskZ/src => src/duskz.client/classes}/duskz/client/Entity.java (100%) rename {DuskZ/src => src/duskz.client/classes}/duskz/client/Equipment.java (100%) rename {DuskZ/src => src/duskz.client/classes}/duskz/client/GUI.java (100%) rename {DuskZ/src => src/duskz.client/classes}/duskz/client/Status.java (100%) rename {DuskZ/src => src/duskz.client/classes}/duskz/client/fx/DataManagerFX.java (100%) rename {DuskZ/src => src/duskz.client/classes}/duskz/client/fx/DuskFX.java (100%) rename {DuskZ/src => src/duskz.client/classes}/duskz/client/fx/EquipmentPane.java (100%) rename {DuskZ/src => src/duskz.client/classes}/duskz/client/fx/MainFrameFX.java (100%) rename {DuskZ/src => src/duskz.client/classes}/duskz/client/fx/TileAnimator.java (100%) rename {DuskZ/src => src/duskz.client/classes}/duskz/client/fx/TransactionPane.java (100%) rename {DuskZ/src => src/duskz.client/classes}/duskz/client/fx/style.css (100%) rename {DuskZ/src => src/duskz.client/classes}/jfxtras/animation/Timer.java (100%) rename {DuskZ/src => src/duskz.client/classes}/jfxtras/css/CssMetaDataForSkinProperty.java (100%) rename {DuskZ/src => src/duskz.client/classes}/jfxtras/internal/scene/control/skin/ListSpinnerSkin.java (100%) rename {DuskZ/src => src/duskz.client/classes}/jfxtras/scene/control/ListSpinner.java (100%) rename {DuskZ/src => src/duskz.client/classes}/jfxtras/scene/control/ListSpinnerBigIntegerList.java (100%) rename {DuskZ/src => src/duskz.client/classes}/jfxtras/scene/control/ListSpinnerIntegerList.java (100%) rename {DuskZ/src => src/duskz.client/classes}/jfxtras/scene/layout/GenericLayoutConstraints.java (100%) rename {DuskZ/src => src/duskz.client/classes}/jfxtras/scene/layout/HBox.java (100%) rename {DuskZ/src => src/duskz.client/classes}/jfxtras/scene/layout/VBox.java (100%) rename {DuskZ/src => src/duskz.client/classes}/jfxtras/util/NodeUtil.java (100%) create mode 100644 src/duskz.client/classes/module-info.java rename {DuskCommon/src => src/duskz.common/classes}/duskz/protocol/DuskMessage.java (100%) rename {DuskCommon/src => src/duskz.common/classes}/duskz/protocol/DuskProtocol.java (100%) rename {DuskCommon/src => src/duskz.common/classes}/duskz/protocol/EntityListMessage.java (100%) rename {DuskCommon/src => src/duskz.common/classes}/duskz/protocol/EntityUpdateMessage.java (100%) rename {DuskCommon/src => src/duskz.common/classes}/duskz/protocol/ListMessage.java (100%) rename {DuskCommon/src => src/duskz.common/classes}/duskz/protocol/MapMessage.java (100%) rename {DuskCommon/src => src/duskz.common/classes}/duskz/protocol/TransactionItem.java (100%) rename {DuskCommon/src => src/duskz.common/classes}/duskz/protocol/TransactionMessage.java (100%) rename {DuskCommon/src => src/duskz.common/classes}/duskz/protocol/Wearing.java (100%) rename {DuskCommon/src => src/duskz.common/classes}/duskz/util/Debug.java (100%) rename {DuskCommon/src => src/duskz.common/classes}/duskz/util/Maths.java (100%) create mode 100644 src/duskz.common/classes/module-info.java rename {TileZ/src => src/duskz.editor/classes}/au/notzed/tilez/DuskInfoView.java (100%) rename {TileZ/src => src/duskz.editor/classes}/au/notzed/tilez/LocationEditor.java (100%) rename {TileZ/src => src/duskz.editor/classes}/au/notzed/tilez/MapLayer.java (100%) rename {TileZ/src => src/duskz.editor/classes}/au/notzed/tilez/MapSelectionModel.java (100%) rename {TileZ/src => src/duskz.editor/classes}/au/notzed/tilez/MapView.java (100%) rename {TileZ/src => src/duskz.editor/classes}/au/notzed/tilez/TZ.java (100%) rename {TileZ/src => src/duskz.editor/classes}/au/notzed/tilez/TextEditor.java (100%) rename {TileZ/src => src/duskz.editor/classes}/au/notzed/tilez/TileView.java (100%) rename {TileZ/src => src/duskz.editor/classes}/au/notzed/tilez/TileZ.java (100%) rename {TileZ/src => src/duskz.editor/classes}/au/notzed/tilez/io/Data.java (100%) rename {TileZ/src => src/duskz.editor/classes}/au/notzed/tilez/io/Image.java (100%) rename {TileZ/src => src/duskz.editor/classes}/au/notzed/tilez/io/Layer.java (100%) rename {TileZ/src => src/duskz.editor/classes}/au/notzed/tilez/io/Map.java (100%) rename {TileZ/src => src/duskz.editor/classes}/au/notzed/tilez/io/Object.java (100%) rename {TileZ/src => src/duskz.editor/classes}/au/notzed/tilez/io/ObjectFactory.java (100%) rename {TileZ/src => src/duskz.editor/classes}/au/notzed/tilez/io/Objectgroup.java (100%) rename {TileZ/src => src/duskz.editor/classes}/au/notzed/tilez/io/Properties.java (100%) rename {TileZ/src => src/duskz.editor/classes}/au/notzed/tilez/io/Property.java (100%) rename {TileZ/src => src/duskz.editor/classes}/au/notzed/tilez/io/Tile.java (100%) rename {TileZ/src => src/duskz.editor/classes}/au/notzed/tilez/io/Tileset.java (100%) rename {DuskServer/src => src/duskz.server/classes}/au/notzed/duskz/util/BCrypt.java (100%) rename {DuskServer/src => src/duskz.server/classes}/au/notzed/duskz/util/Chars.java (100%) rename {DuskServer/src => src/duskz.server/classes}/duskz/io/Convert.java (100%) rename {DuskServer/src => src/duskz.server/classes}/duskz/io/Tiled.java (100%) rename {DuskServer/src => src/duskz.server/classes}/duskz/io/tiled/Data.java (100%) rename {DuskServer/src => src/duskz.server/classes}/duskz/io/tiled/Image.java (100%) rename {DuskServer/src => src/duskz.server/classes}/duskz/io/tiled/Layer.java (100%) rename {DuskServer/src => src/duskz.server/classes}/duskz/io/tiled/Map.java (100%) rename {DuskServer/src => src/duskz.server/classes}/duskz/io/tiled/Object.java (100%) rename {DuskServer/src => src/duskz.server/classes}/duskz/io/tiled/ObjectFactory.java (100%) rename {DuskServer/src => src/duskz.server/classes}/duskz/io/tiled/Objectgroup.java (100%) rename {DuskServer/src => src/duskz.server/classes}/duskz/io/tiled/Properties.java (100%) rename {DuskServer/src => src/duskz.server/classes}/duskz/io/tiled/Property.java (100%) rename {DuskServer/src => src/duskz.server/classes}/duskz/io/tiled/Tile.java (100%) rename {DuskServer/src => src/duskz.server/classes}/duskz/io/tiled/Tileset.java (100%) rename {DuskServer/src => src/duskz.server/classes}/duskz/proto/Junk.java (100%) rename {DuskServer/src => src/duskz.server/classes}/duskz/server/BannedIPException.java (100%) rename {DuskServer/src => src/duskz.server/classes}/duskz/server/Battle.java (100%) rename {DuskServer/src => src/duskz.server/classes}/duskz/server/BlockedIPException.java (100%) rename {DuskServer/src => src/duskz.server/classes}/duskz/server/Commands.java (100%) rename {DuskServer/src => src/duskz.server/classes}/duskz/server/Condition.java (100%) rename {DuskServer/src => src/duskz.server/classes}/duskz/server/Config.java (100%) rename {DuskServer/src => src/duskz.server/classes}/duskz/server/Constants.java (100%) rename {DuskServer/src => src/duskz.server/classes}/duskz/server/DuskEngine.java (100%) rename {DuskServer/src => src/duskz.server/classes}/duskz/server/DuskServer.java (100%) rename {DuskServer/src => src/duskz.server/classes}/duskz/server/Faction.java (100%) rename {DuskServer/src => src/duskz.server/classes}/duskz/server/GiveItem.java (100%) rename {DuskServer/src => src/duskz.server/classes}/duskz/server/ItemList.java (100%) rename {DuskServer/src => src/duskz.server/classes}/duskz/server/Log.java (100%) rename {DuskServer/src => src/duskz.server/classes}/duskz/server/RandomAccessString.java (100%) rename {DuskServer/src => src/duskz.server/classes}/duskz/server/SaveThread.java (100%) rename {DuskServer/src => src/duskz.server/classes}/duskz/server/Script.java (100%) rename {DuskServer/src => src/duskz.server/classes}/duskz/server/SpellGroup.java (100%) rename {DuskServer/src => src/duskz.server/classes}/duskz/server/TickThread.java (100%) rename {DuskServer/src => src/duskz.server/classes}/duskz/server/TrackerThread.java (100%) rename {DuskServer/src => src/duskz.server/classes}/duskz/server/Variable.java (100%) rename {DuskServer/src => src/duskz.server/classes}/duskz/server/VariableSet.java (100%) rename {DuskServer/src => src/duskz.server/classes}/duskz/server/entity/Ability.java (100%) rename {DuskServer/src => src/duskz.server/classes}/duskz/server/entity/DuskObject.java (100%) rename {DuskServer/src => src/duskz.server/classes}/duskz/server/entity/Equipment.java (100%) rename {DuskServer/src => src/duskz.server/classes}/duskz/server/entity/Item.java (100%) rename {DuskServer/src => src/duskz.server/classes}/duskz/server/entity/LivingThing.java (100%) rename {DuskServer/src => src/duskz.server/classes}/duskz/server/entity/Merchant.java (100%) rename {DuskServer/src => src/duskz.server/classes}/duskz/server/entity/Mob.java (100%) rename {DuskServer/src => src/duskz.server/classes}/duskz/server/entity/PlayerMerchant.java (100%) rename {DuskServer/src => src/duskz.server/classes}/duskz/server/entity/Prop.java (100%) rename {DuskServer/src => src/duskz.server/classes}/duskz/server/entity/Sign.java (100%) rename {DuskServer/src => src/duskz.server/classes}/duskz/server/entity/TileMap.java (100%) rename {DuskServer/src => src/duskz.server/classes}/duskz/server/entityz/Ability.java (100%) rename {DuskServer/src => src/duskz.server/classes}/duskz/server/entityz/Active.java (100%) rename {DuskServer/src => src/duskz.server/classes}/duskz/server/entityz/Armour.java (100%) rename {DuskServer/src => src/duskz.server/classes}/duskz/server/entityz/Battle.java (100%) rename {DuskServer/src => src/duskz.server/classes}/duskz/server/entityz/Commands.java (100%) rename {DuskServer/src => src/duskz.server/classes}/duskz/server/entityz/Condition.java (100%) rename {DuskServer/src => src/duskz.server/classes}/duskz/server/entityz/ConditionList.java (100%) rename {DuskServer/src => src/duskz.server/classes}/duskz/server/entityz/Container.java (100%) rename {DuskServer/src => src/duskz.server/classes}/duskz/server/entityz/Converter.java (100%) rename {DuskServer/src => src/duskz.server/classes}/duskz/server/entityz/Drink.java (100%) rename {DuskServer/src => src/duskz.server/classes}/duskz/server/entityz/Equipment.java (100%) rename {DuskServer/src => src/duskz.server/classes}/duskz/server/entityz/Faction.java (100%) rename {DuskServer/src => src/duskz.server/classes}/duskz/server/entityz/Food.java (100%) rename {DuskServer/src => src/duskz.server/classes}/duskz/server/entityz/Game.java (100%) rename {DuskServer/src => src/duskz.server/classes}/duskz/server/entityz/GameServer.java (100%) rename {DuskServer/src => src/duskz.server/classes}/duskz/server/entityz/GameShop.java (100%) rename {DuskServer/src => src/duskz.server/classes}/duskz/server/entityz/Holdable.java (100%) rename {DuskServer/src => src/duskz.server/classes}/duskz/server/entityz/Inventory.java (100%) rename {DuskServer/src => src/duskz.server/classes}/duskz/server/entityz/Item.java (100%) rename {DuskServer/src => src/duskz.server/classes}/duskz/server/entityz/Location.java (100%) rename {DuskServer/src => src/duskz.server/classes}/duskz/server/entityz/Log.java (100%) rename {DuskServer/src => src/duskz.server/classes}/duskz/server/entityz/Mobile.java (100%) rename {DuskServer/src => src/duskz.server/classes}/duskz/server/entityz/Pack.java (100%) rename {DuskServer/src => src/duskz.server/classes}/duskz/server/entityz/Pet.java (100%) rename {DuskServer/src => src/duskz.server/classes}/duskz/server/entityz/Player.java (100%) rename {DuskServer/src => src/duskz.server/classes}/duskz/server/entityz/PlayerCommands.java (100%) rename {DuskServer/src => src/duskz.server/classes}/duskz/server/entityz/PlayerConnection.java (100%) rename {DuskServer/src => src/duskz.server/classes}/duskz/server/entityz/PlayerShop.java (100%) rename {DuskServer/src => src/duskz.server/classes}/duskz/server/entityz/PlayerState.java (100%) rename {DuskServer/src => src/duskz.server/classes}/duskz/server/entityz/Prop.java (100%) rename {DuskServer/src => src/duskz.server/classes}/duskz/server/entityz/PropertyLoader.java (100%) rename {DuskServer/src => src/duskz.server/classes}/duskz/server/entityz/Race.java (100%) rename {DuskServer/src => src/duskz.server/classes}/duskz/server/entityz/ScriptManager.java (100%) rename {DuskServer/src => src/duskz.server/classes}/duskz/server/entityz/Shop.java (100%) rename {DuskServer/src => src/duskz.server/classes}/duskz/server/entityz/Sign.java (100%) rename {DuskServer/src => src/duskz.server/classes}/duskz/server/entityz/Thing.java (100%) rename {DuskServer/src => src/duskz.server/classes}/duskz/server/entityz/ThingTable.java (100%) rename {DuskServer/src => src/duskz.server/classes}/duskz/server/entityz/TileMap.java (100%) rename {DuskServer/src => src/duskz.server/classes}/duskz/server/entityz/TooManyTriesException.java (100%) rename {DuskServer/src => src/duskz.server/classes}/duskz/server/entityz/Training.java (100%) rename {DuskServer/src => src/duskz.server/classes}/duskz/server/entityz/VariableList.java (100%) rename {DuskServer/src => src/duskz.server/classes}/duskz/server/entityz/Weapon.java (100%) rename {DuskServer/src => src/duskz.server/classes}/duskz/server/entityz/Wearable.java (100%) create mode 100644 src/duskz.server/classes/module-info.java diff --git a/.gitignore b/.gitignore index 28a4d2c..fa30044 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ -.lib/ -*/build/ -*/dist/ +/build/ +/dist/ +/bin/ +/.lib/ +/nbproject/private/ diff --git a/DuskZ/COPYING b/COPYING similarity index 100% rename from DuskZ/COPYING rename to COPYING diff --git a/DuskZ/COPYING.GPLv2 b/COPYING.GPLv2 similarity index 100% rename from DuskZ/COPYING.GPLv2 rename to COPYING.GPLv2 diff --git a/DuskCommon/COPYING b/DuskCommon/COPYING deleted file mode 100644 index d159169..0000000 --- a/DuskCommon/COPYING +++ /dev/null @@ -1,339 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Lesser General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) year name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - , 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. diff --git a/DuskCommon/README b/DuskCommon/README deleted file mode 100644 index f4ae538..0000000 --- a/DuskCommon/README +++ /dev/null @@ -1,33 +0,0 @@ - -README ------- - -This is a library containing some common utilities and classes betwen -server and client. - -This is primarily classes and utilities for handling the client<>server -protocol. - -LICENSE -------- - DuskZ is free software, see COPYING for your rights. - - Some files are under other compatible licenses. - - Copyright (C) 2000 Tom Weingarten - Copyright (C) 2013 Michael Zucchi - - DuskZ is free software; you can redistribute it and/or - modify it under the terms of the GNU General Public License - as published by the Free Software Foundation; either version 2 - of the License, or (at your option) any later version. - - DuskZ is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with DuskZ; if not, write to the Free Software - Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - \ No newline at end of file diff --git a/DuskCommon/build.xml b/DuskCommon/build.xml deleted file mode 100644 index 23edae7..0000000 --- a/DuskCommon/build.xml +++ /dev/null @@ -1,74 +0,0 @@ - - - - - - - - - - - Builds, tests, and runs the project DuskCommon. - - - diff --git a/DuskCommon/nbproject/build-impl.xml b/DuskCommon/nbproject/build-impl.xml deleted file mode 100644 index 625b5c6..0000000 --- a/DuskCommon/nbproject/build-impl.xml +++ /dev/null @@ -1,1411 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Must set src.dir - Must set test.src.dir - Must set build.dir - Must set dist.dir - Must set build.classes.dir - Must set dist.javadoc.dir - Must set build.test.classes.dir - Must set build.test.results.dir - Must set build.classes.excludes - Must set dist.jar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Must set javac.includes - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - No tests executed. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Must set JVM to use for profiling in profiler.info.jvm - Must set profiler agent JVM arguments in profiler.info.jvmargs.agent - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Must select some files in the IDE or set javac.includes - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - To run this application from the command line without Ant, try: - - - - - - - java -cp "${run.classpath.with.dist.jar}" ${main.class} - - - - - - - - - - - - - - - - - - - - - - - - - To run this application from the command line without Ant, try: - - java -jar "${dist.jar.resolved}" - - - - - - - - - - - - - - - - - - - - - - - - - Must select one file in the IDE or set run.class - - - - Must select one file in the IDE or set run.class - - - - - - - - - - - - - - - - - - - - - - - Must select one file in the IDE or set debug.class - - - - - Must select one file in the IDE or set debug.class - - - - - Must set fix.includes - - - - - - - - - - This target only works when run from inside the NetBeans IDE. - - - - - - - - - Must select one file in the IDE or set profile.class - This target only works when run from inside the NetBeans IDE. - - - - - - - - - This target only works when run from inside the NetBeans IDE. - - - - - - - - - - - - - This target only works when run from inside the NetBeans IDE. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Must select one file in the IDE or set run.class - - - - - - Must select some files in the IDE or set test.includes - - - - - Must select one file in the IDE or set run.class - - - - - Must select one file in the IDE or set applet.url - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Must select some files in the IDE or set javac.includes - - - - - - - - - - - - - - - - - - - - Some tests failed; see details above. - - - - - - - - - Must select some files in the IDE or set test.includes - - - - Some tests failed; see details above. - - - - Must select some files in the IDE or set test.class - Must select some method in the IDE or set test.method - - - - Some tests failed; see details above. - - - - - Must select one file in the IDE or set test.class - - - - Must select one file in the IDE or set test.class - Must select some method in the IDE or set test.method - - - - - - - - - - - - - - Must select one file in the IDE or set applet.url - - - - - - - - - Must select one file in the IDE or set applet.url - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/DuskCommon/nbproject/genfiles.properties b/DuskCommon/nbproject/genfiles.properties deleted file mode 100644 index b7dd181..0000000 --- a/DuskCommon/nbproject/genfiles.properties +++ /dev/null @@ -1,8 +0,0 @@ -build.xml.data.CRC32=cb9774bc -build.xml.script.CRC32=41ed8886 -build.xml.stylesheet.CRC32=28e38971@1.56.1.46 -# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml. -# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you. -nbproject/build-impl.xml.data.CRC32=cb9774bc -nbproject/build-impl.xml.script.CRC32=4cf1c99d -nbproject/build-impl.xml.stylesheet.CRC32=c6d2a60f@1.56.1.46 diff --git a/DuskCommon/nbproject/project.properties b/DuskCommon/nbproject/project.properties deleted file mode 100644 index 0f9dd09..0000000 --- a/DuskCommon/nbproject/project.properties +++ /dev/null @@ -1,70 +0,0 @@ -project.license=dusk -annotation.processing.enabled=true -annotation.processing.enabled.in.editor=false -annotation.processing.processor.options= -annotation.processing.processors.list= -annotation.processing.run.all.processors=true -annotation.processing.source.output=${build.generated.sources.dir}/ap-source-output -build.classes.dir=${build.dir}/classes -build.classes.excludes=**/*.java,**/*.form -# This directory is removed when the project is cleaned: -build.dir=build -build.generated.dir=${build.dir}/generated -build.generated.sources.dir=${build.dir}/generated-sources -# Only compile against the classpath explicitly listed here: -build.sysclasspath=ignore -build.test.classes.dir=${build.dir}/test/classes -build.test.results.dir=${build.dir}/test/results -# Uncomment to specify the preferred debugger connection transport: -#debug.transport=dt_socket -debug.classpath=\ - ${run.classpath} -debug.test.classpath=\ - ${run.test.classpath} -# This directory is removed when the project is cleaned: -dist.dir=dist -dist.jar=${dist.dir}/DuskCommon.jar -dist.javadoc.dir=${dist.dir}/javadoc -excludes= -includes=** -jar.compress=false -javac.classpath= -# Space-separated list of extra javac options -javac.compilerargs= -javac.deprecation=false -javac.processorpath=\ - ${javac.classpath} -javac.source=1.7 -javac.target=1.7 -javac.test.classpath=\ - ${javac.classpath}:\ - ${build.classes.dir} -javac.test.processorpath=\ - ${javac.test.classpath} -javadoc.additionalparam= -javadoc.author=false -javadoc.encoding=${source.encoding} -javadoc.noindex=false -javadoc.nonavbar=false -javadoc.notree=false -javadoc.private=false -javadoc.splitindex=true -javadoc.use=true -javadoc.version=false -javadoc.windowtitle= -meta.inf.dir=${src.dir}/META-INF -mkdist.disabled=true -platform.active=default_platform -run.classpath=\ - ${javac.classpath}:\ - ${build.classes.dir} -# Space-separated list of JVM arguments used when running the project. -# You may also define separate properties like run-sys-prop.name=value instead of -Dname=value. -# To set system properties for unit tests define test-sys-prop.name=value: -run.jvmargs= -run.test.classpath=\ - ${javac.test.classpath}:\ - ${build.test.classes.dir} -source.encoding=UTF-8 -src.dir=src -test.src.dir=test diff --git a/DuskCommon/nbproject/project.xml b/DuskCommon/nbproject/project.xml deleted file mode 100644 index dabe64d..0000000 --- a/DuskCommon/nbproject/project.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - org.netbeans.modules.java.j2seproject - - - DuskCommon - - - - - - - - - diff --git a/DuskServer/COPYING b/DuskServer/COPYING deleted file mode 100644 index d159169..0000000 --- a/DuskServer/COPYING +++ /dev/null @@ -1,339 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Lesser General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) year name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - , 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. diff --git a/DuskServer/CommandsWork.java b/DuskServer/CommandsWork.java deleted file mode 100644 index 8056dbd..0000000 --- a/DuskServer/CommandsWork.java +++ /dev/null @@ -1,2393 +0,0 @@ -/* - * This file is part of DuskZ, a graphical mud engine. - * - * Copyright (C) 2000 Tom Weingarten - * Copyright (C) 2013 Michael Zucchi - * - * DuskZ is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * DuskZ is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with DuskZ; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - */ -/** - * Changes - * Feb-2013 Michael Zucchi - modernised java - * Mar-2013 Michael Zucchi - changed server protocol - */ -package duskz.server.entityz; - -import duskz.server.*; -import duskz.protocol.DuskProtocol; -import duskz.server.entity.Mob; -import duskz.server.entity.Merchant; -import duskz.server.entity.Sign; -import duskz.server.entity.Item; -import duskz.server.entity.Prop; -import duskz.server.entity.DuskObject; -import duskz.server.entity.Equipment; -import duskz.server.entity.PlayerMerchant; -import duskz.server.entity.LivingThing; -import duskz.server.entity.TileMap; -import java.io.*; -import java.util.LinkedList; -import java.util.StringTokenizer; - -public class CommandsWork implements DuskProtocol { - - public static String parseCommand(LivingThing lt, DuskEngine game, String cmdline) throws Exception { - if (cmdline == null) { - return null; - } - if (lt == null) { - return null; - } - if (game == null) { - return null; - } - - String cmd = null; - String args = null; - - int intIndex = cmdline.indexOf(" "); - if (intIndex == -1) { - cmd = cmdline.toLowerCase(); - } else { - cmd = cmdline.substring(0, intIndex).toLowerCase(); - args = cmdline.substring(intIndex + 1).trim(); - } - - if (cmd.length() < 1) { - return "huh?"; - } - - lt.isAlwaysCommands = true; - boolean blnFoundScriptedCommand = false; - /* - ** Don't try to find a scripted command if they are doing a tell - */ - if (cmd.substring(0, 1) != "/") { - try { - Script script = new Script("commands/" + cmd, game, false); - script.varVariables.addVariable("trigger", lt); - if (args != null) { - script.runScript(args); - } else { - script.runScript(); - } - script.close(); - blnFoundScriptedCommand = true; - } catch (Exception e) { - blnFoundScriptedCommand = false; - } - if (!lt.isAlwaysCommands) { - return null; - } - } - if (lt.privs > 2) { - if (cmdline.startsWith(">")) { - game.log.printMessage(Log.INFO, "godcommand:" + lt.name + ":" + cmdline + ":" + lt.x + "," + lt.y); - cmdline = cmdline.substring(1); - if (cmdline.equalsIgnoreCase("s")) { - if (game.blnSavingGame) { - return "Game already being saved, please wait."; - } - game.saveMap(); - return "Game settings saved"; - } - - String strMapLog = "shortmap_redraw"; - try (PrintStream psMap = new PrintStream(new FileOutputStream(strMapLog, true), true)) { - game.changeMap(lt, lt.x, lt.y, Short.parseShort(cmdline)); - psMap.println("changetile " + lt.x + " " + lt.y + " " + Short.parseShort(cmdline)); - return null; - } catch (Exception e) { - game.log.printError("parseCommand():While " + lt.name + " tried to >" + cmdline, e); - return null; - } - } - if (cmdline.startsWith("<")) { - game.log.printMessage(Log.INFO, "godcommand:" + lt.name + ":" + cmdline + ":" + lt.x + "," + lt.y); - cmdline = cmdline.substring(1); - if (cmdline.equals("s")) { - if (game.blnSavingGame) { - return "Game already being saved, please wait."; - } - game.saveMap(); - return "Game settings saved"; - } else if (cmdline.equalsIgnoreCase("merchant")) { - if (lt.overMerchant() != null) { - return "There's already a merchant there."; - } - if (lt.overPlayerMerchant() != null) { - return "There's already a merchant there."; - } - Merchant mrcStore = new Merchant(game); - mrcStore.x = lt.x; - mrcStore.y = lt.y; - //game.vctMerchants.add(mrcStore); - //game.blnMerchantListChanged = true; - game.addDuskObject(lt.map, mrcStore); - return null; - } else if (cmdline.toLowerCase().startsWith("prop ")) { - if (cmdline.length() == 5) { - return "Add what prop?"; - } - cmdline = cmdline.substring(5); - Prop prpStore = game.getProp(cmdline); - if (prpStore != null) { - prpStore.x = lt.x; - prpStore.y = lt.y; - //game.vctProps.addElement(prpStore); - //game.blnPropListChanged = true; - game.addDuskObject(lt.map, prpStore); - } - return null; - } else if (cmdline.startsWith("sign ")) { - if (cmdline.length() == 5) { - return "What should the sign say?"; - } - Sign sgnStore = new Sign(game, "sign", cmdline.substring(5), lt.x, lt.y, game.getID()); - //game.vctSigns.add(sgnStore); - //game.blnSignListChanged = true; - game.addDuskObject(lt.map, sgnStore); - return null; - } - Item itmStore = game.getItem(cmdline); - if (itmStore != null) { - itmStore.x = lt.x; - itmStore.y = lt.y; - //game.vctItems.add(itmStore); - game.addDuskObject(lt.map, itmStore); - return null; - } - try { - Mob mob = new Mob(cmdline, lt.x, lt.y, game); - // TODO: this previously didn't call addDuskObject - bug or intentional? - //game.vctMobs.addElement(mob); - //game.blnMobListChanged = true; - game.addDuskObject(lt.map, mob); - - mob.changeLocBypass(lt.map, lt.x, lt.y); - } catch (Exception e) { - game.log.printError("parseCommand():While creating mob \"" + cmdline + "\"", e); - } - return null; - } - } - - // Remap shortcuts - if (cmd.startsWith(";")) { - args = cmdline.substring(1).trim(); - cmd = "gossip"; - } - if (cmd.startsWith(":")) { - args = cmdline.substring(1).trim(); - cmd = "clan"; - } - if (cmd.startsWith("'")) { - args = cmdline.substring(1).trim(); - cmd = "say"; - } - if (cmd.startsWith(".")) { - args = cmdline.substring(1).trim(); - cmd = "emote"; - } - if (cmd.startsWith("/")) { - args = cmdline.substring(1).trim(); - cmd = "tell"; - } - - switch (cmd) { - - case "addmember": { - if (lt.privs != 1) - return "Huh?"; - if (args == null) { - return "Add who?"; - } - LivingThing thnStore = game.getPlayer(args); - if (thnStore == null) { - return "They're not in this world"; - } - if (lt.battle != null) { - return "Not while you're fighting!"; - } - if (thnStore.battle != null) { - thnStore.chatMessage(lt.name + " has invited you to join their clan, but you are in the middle of a battle"); - return "They're in the middle of a battle. They have been notified that you tried to clan them."; - } - lt.chatMessage("You have invited " + thnStore.name + " to join the clan " + lt.clan + "."); - - if (true) - // FIXME: protocol implementation - throw new RuntimeException("cannot ask questions yet"); - // FIXME: this looks dodgy - // FIXME: move to livingthing - - /* - // thnStore.halt(); - thnStore.stillThere(); // This puts something in the buffer - thnStore.stillThere(); // Have to do this twice to ensure that thnStore is out of - // its read loop - lt.connectionThread.sleep(500); // wait for the "notdead" response to get back from client. - try { - // Empty out the BufferedReader for the answer - // while (thnStore.instream.ready()) { - // thnStore.instream.read(); - // } - } catch (Exception e) { - game.log.printError("parseCommand():While " + lt.name + " was trying to addmember " + thnStore.name, e); - } - thnStore.chatMessage(lt.name + " has invited you to join the clan " + lt.clan + ". If you accept, type yes."); - try { - if (thnStore.instream.readLine().equalsIgnoreCase("yes")) { - thnStore.clan = lt.clan; - if (thnStore.privs == 1) { - thnStore.privs = 0; - } - thnStore.chatMessage("You have been added to the clan, " + lt.clan + ""); - thnStore.proceed(); - game.removeDuskObject(thnStore); - game.addDuskObject(thnStore); - return thnStore.name + " has accepted your invitation."; - } - } catch (Exception e) { - game.log.printError("parseCommand():While reading the answer to " + lt.name + "'s attempt to addmember " + thnStore.name, e); - } - thnStore.proceed(); - */ - return thnStore.name + " has declined your invitation."; - } - case "kick": { - if (lt.privs != 1) - return "Huh?"; - if (args == null) { - return "Kick who?"; - } - LivingThing thnStore = game.getPlayer(args); - if (thnStore == null) { - return "They're not in this world."; - } - if (!thnStore.clan.equalsIgnoreCase(lt.clan)) { - return "They're not in your clan."; - } - thnStore.chatMessage("You have been kicked out of " + lt.clan + "."); - thnStore.clan = "none"; - game.removeDuskObject(thnStore); - game.addDuskObject(thnStore.map, thnStore); - return thnStore.name + " has been kicked out of your clan."; - } -// if (lt.privs > 2) { -// if (lt.privs > 4) { - case "makegod": { - if (lt.privs <= 4) - return "Huh?"; - - game.log.printMessage(Log.INFO, "godcommand:" + lt.name + ":" + cmdline + ":" + lt.x + "," + lt.y); - if (args == null) { - return "Make who a god?"; - } - int iSPloc = args.indexOf(" "); - if (iSPloc < 0) { - return "Make them what level of a god?"; - } - String sName = args.substring(0, iSPloc).trim(); - int level = Integer.parseInt(args.substring(iSPloc).trim()); - - LivingThing thnStore = game.getPlayer(sName); - if (thnStore == null) { - return "They're not in this world."; - } - int oldLevel = thnStore.privs; - thnStore.privs = level; - thnStore.isSaveNeeded = true; - game.log.printMessage(Log.INFO, "godcommand:" + lt.name + ":Changed " + thnStore.name + "'s priveledges from " + oldLevel + " to " + level + "."); - return thnStore.name + "'s priveledges have been set to " + level + "."; - } - case "reloadprefs": { - if (lt.privs <= 4) - return "Huh?"; - game.log.printMessage(Log.INFO, "godcommand:" + lt.name + ":" + cmdline + ":" + lt.x + "," + lt.y); - game.loadPrefs(); - return "Preferences reloaded"; - } - case "resizemap": - if (lt.privs <= 4) - return "Huh?"; - game.log.printMessage(Log.INFO, "godcommand:" + lt.name + ":" + cmdline + ":" + lt.x + "," + lt.y); - game.resizeMap(lt.map, lt.x + 1, lt.y + 1); - return "Map resized"; - case "shutdown": - if (lt.privs <= 4) - return "Huh?"; - game.log.printMessage(Log.ALWAYS, lt.name + " has shut down the server."); - game.chatMessage("The server is going down.", "default"); - game.blnShuttingDown = true; - for (LivingThing thnStore : game.playersByName.values()) { - try { - if (thnStore != lt) { - thnStore.close(); - } - } catch (Exception e) { - if (thnStore != null) { - game.log.printError("parseCommand():While trying to close " + thnStore.name + " for " + lt.name + "'s shutdown request", e); - } else { - game.log.printError("parseCommand():While trying to close a null player for " + lt.name + "'s shutdown request", e); - } - } - } - lt.isSaveNeeded = true; - lt.savePlayer(); - System.gc(); - System.exit(0); - return null; - case "stop": - if (lt.privs <= 4) - return "Huh?"; - game.log.printMessage(Log.INFO, "godcommand:" + lt.name + ":" + cmdline + ":" + lt.x + "," + lt.y); - game.blnShuttingDown = true; - return "Stopped accepting incoming socket connections."; - case "start": - if (lt.privs <= 4) - return "Huh?"; - game.log.printMessage(Log.INFO, "godcommand:" + lt.name + ":" + cmdline + ":" + lt.x + "," + lt.y); - game.blnShuttingDown = false; - return "Started accepting incoming connections"; - case "filteron": - if (lt.privs <= 4) - return "Huh?"; - game.log.printMessage(Log.INFO, "godcommand:" + lt.name + ":" + cmdline + ":" + lt.x + "," + lt.y); - game.blnIPF = true; - return "Started filtering duplicate IP addressess of socket connections."; - case "filteroff": - if (lt.privs <= 4) - return "Huh?"; - game.log.printMessage(Log.INFO, "godcommand:" + lt.name + ":" + cmdline + ":" + lt.x + "," + lt.y); - game.blnIPF = false; - return "Stopped filtering duplicate IP addressess of socket connections."; - case "floodlimit": - if (lt.privs <= 4) - return "Huh?"; - game.log.printMessage(Log.INFO, "godcommand:" + lt.name + ":" + cmdline + ":" + lt.x + "," + lt.y); - if (args == null) { - return "What value do you want the floodlimit to have?"; - } - try { - game.floodLimit = (long) Integer.parseInt(args); - return "Set floodlimit to " + args + " milliseconds."; - } catch (Exception e) { - game.log.printError("parseCommand():Invalid value \"" + args + "\" for floodlimit.", e); - return "Invalid value \"" + args + "\" for floodlimit."; - } - case "ipban": { - if (lt.privs <= 4) - return "Huh?"; - String strBlockedIP; - if (args == null) { - return "Whos IP address do you wish to ban?"; - } - LivingThing thnStore = game.getPlayer(args); - if (thnStore == null) { - return "They're not in this world."; - } - game.log.printMessage(Log.INFO, "godcommand:" + lt.name + ":" + cmdline + ":" + lt.x + "," + lt.y); - String strIP = thnStore.getAddress(); - int i = strIP.indexOf("/"); - strIP = strIP.substring(i + 1, strIP.length()); - // FIXME: better i/o - try (RandomAccessFile rafBannedIP = new RandomAccessFile("conf/blockedIP", "rw")) { - strBlockedIP = rafBannedIP.readLine(); - while (strBlockedIP != null) { - if (strIP.indexOf(strBlockedIP) != -1) { - //rafBannedIP.close(); - return "Already blocked."; - } - strBlockedIP = rafBannedIP.readLine(); - } - rafBannedIP.seek(rafBannedIP.length()); - rafBannedIP.writeBytes(strIP + "\n"); - } catch (IOException ex) { - game.log.printError("parseCommand():When " + lt.name + " tried to ban " + thnStore + "'s IP address", ex); - } - return thnStore.name + "'s IP address has been blocked."; - } - case "loglevel": - if (lt.privs <= 4) - return "Huh?"; - game.log.printMessage(Log.INFO, "godcommand:" + lt.name + ":" + cmdline + ":" + lt.x + "," + lt.y); - if (args == null) { - return "Logging level is currently " + game.log.getLogLevel(); - } - try { - int level = Integer.parseInt(args); - game.log.setLogLevel(level); - return "Logging level is now " + game.log.getLogLevel(); - } catch (Exception e) { - game.log.printError("parseCommand():Invalid value \"" + args + "\" for loglevel.", e); - return "Invalid value \"" + args + "\" for loglevel."; - } - case "gc": - if (lt.privs <= 4) - return "Huh?"; - game.log.printMessage(Log.INFO, "Starting garbage collection."); - System.gc(); - game.log.printMessage(Log.INFO, "Finished garbage collection."); - return "Finished garbage collection."; - case "finalize": - if (lt.privs <= 4) - return "Huh?"; - game.log.printMessage(Log.INFO, "Starting finalization."); - System.runFinalization(); - game.log.printMessage(Log.INFO, "Finished finalization."); - return "Finished finalization."; - case "cleanup": - if (lt.privs <= 4) - return "Huh?"; - game.cleanup(); - return "Finished cleanup."; - case "save": - if (lt.privs <= 2) - return "Huh?"; - if (game.blnSavingGame) { - return "Game already being saved, please wait."; - } - game.log.printMessage(Log.INFO, "godcommand:" + lt.name + ":" + cmdline + ":" + lt.x + "," + lt.y); - game.saveMap(); - return "Game settings saved"; - case "backup": - if (lt.privs <= 2) - return "Huh?"; - game.log.printMessage(Log.INFO, "godcommand:" + lt.name + ":" + cmdline + ":" + lt.x + "," + lt.y); - game.backupMap(); - return "Game settings backed up"; - case "list": { - if (lt.privs <= 2) - return "Huh?"; - if (args == null) { - return "What do you want to list?"; - } - game.log.printMessage(Log.INFO, "godcommand:" + lt.name + ":" + cmdline + ":" + lt.x + "," + lt.y); - cmdline = cmdline.substring(5); - String filename = null; - String title = null; - if (args.equals("items")) { - filename = "defItems"; - title = "Items:\n"; - } else if (args.equals("conf")) { - filename = "conf"; - title = "Conf files:\n"; - } else if (args.equals("mobs")) { - filename = "defMobs"; - title = "Mobiles:\n"; - } else if (args.equals("commands")) { - filename = "commands"; - title = "Custom commands:\n"; - } else if (args.equals("races")) { - filename = "defRaces"; - title = "Races:\n"; - } else if (args.equals("pets")) { - filename = "defPets"; - title = "Pets:\n"; - } else if (args.equals("factions")) { - filename = "factions"; - title = "Factions:\n"; - } else if (args.equals("conditions")) { - filename = "defConditions"; - title = "Conditions:\n"; - } else if (args.equals("help")) { - filename = "helpFiles"; - title = "Help Files:\n"; - } else if (args.equals("scripts")) { - filename = "scripts"; - title = "Scripts:\n"; - } else if (args.equals("spell groups")) { - filename = "defSpellGroups"; - title = "Spell Groups:\n"; - } else if (args.equals("spells")) { - filename = "defSpells"; - title = "Spells:\n"; - } else if (args.equals("props")) { - filename = "defProps"; - title = "Props:\n"; - } else if (args.equals("move actions")) { - filename = "defMoveActions"; - title = "Move Action Scripts:\n"; - } else if (args.equals("can move")) { - filename = "defCanMoveScripts"; - title = "Can Move Scripts:\n"; - } else if (args.equals("can see")) { - filename = "defCanSeeScripts"; - title = "Can See Scripts:\n"; - } else if (args.equals("tile actions")) { - filename = "defTileActions"; - title = "Tile Action Scripts:\n"; - } else if (args.equals("tile move")) { - filename = "defTileScripts"; - title = "Can Move Tile Scripts:\n"; - } else if (args.equals("tile see")) { - filename = "defTileSeeScripts"; - title = "Tile See Scripts:\n"; - } - if (filename != null) { - File filList = new File(filename); - String strResult[] = filList.list(); - StringBuilder sb = new StringBuilder(); - //strBuff.append("").append((char) 20).append(strTitle).append("\n"); - for (int i = 0; i < strResult.length; i++) { - // Only output files that do not end in .dsko - if (strResult[i].indexOf(".dsko") == -1) { - sb.append(strResult[i]).append("\n"); - } - } - //strBuff.append("--EOF--\n"); - //lt.send(strBuff.toString()); - lt.viewText(title, false, sb.toString()); - return null; - } - return "You can't list that."; - } - case "view": { - if (lt.privs <= 2) - return "Huh?"; - - if (args == null) { - return "What do you want to view?"; - } - game.log.printMessage(Log.INFO, "godcommand:" + lt.name + ":" + cmdline + ":" + lt.x + "," + lt.y); - if (args.indexOf("..") != -1) { - return "You don't have permission to access that file."; - } - String filename = null; - boolean blnUser = false; - boolean blnPet = false; - if (args.startsWith("item ")) { - args = args.toLowerCase(); - filename = "defItems/" + args.substring(5); - } else if (args.startsWith("conf ")) { - filename = "conf/" + args.substring(5); - } else if (args.startsWith("mob ")) { - filename = "defMobs/" + args.substring(4); - } else if (args.startsWith("command ")) { - filename = "commands/" + args.substring(8); - } else if (args.startsWith("race ")) { - filename = "defRaces/" + args.substring(5); - } else if (args.startsWith("pet ")) { - filename = "defPets/" + args.substring(5); - } else if (args.startsWith("faction")) { - return "You cannot view faction files."; - } else if (args.startsWith("condition ")) { - filename = "defConditions/" + args.substring(10); - } else if (args.startsWith("help ")) { - filename = "helpFiles/" + args.substring(5); - } else if (args.startsWith("script ")) { - filename = "scripts/" + args.substring(7); - } else if (args.startsWith("spell group ")) { - filename = "defSpellGroups/" + args.substring(12); - } else if (args.startsWith("spell ")) { - filename = "defSpells/" + args.substring(6); - } else if (args.startsWith("prop ")) { - filename = "defProps/" + args.substring(5); - } else if (args.startsWith("move action ")) { - filename = "defMoveActions/" + args.substring(12); - } else if (args.startsWith("can move ")) { - filename = "defCanMoveScripts/" + args.substring(9); - } else if (args.startsWith("can see ")) { - filename = "defCanSeeScripts/" + args.substring(8); - } else if (args.startsWith("tile action ")) { - filename = "defTileActions/" + args.substring(12); - } else if (args.startsWith("tile move ")) { - filename = "defTileScripts/" + args.substring(10); - } else if (args.startsWith("tile see ")) { - filename = "defTileSeeScripts/" + args.substring(9); - } else if (args.startsWith("user ")) { - if (lt.privs < 5) { - return "You don't have enough privelages to edit a user's file."; - } - blnUser = true; - filename = "users/" + args.substring(5); - } else if (args.startsWith("pet ")) { - if (lt.privs < 5) { - return "You don't have enough privelages to edit a user's pet file."; - } - blnPet = true; - filename = "pets/" + args.substring(4); - } - File filView = new File(filename); - if (!filView.exists()) { - if (blnUser) { - return "There is no player named \"" + filView.getName() + "\"."; - } - if (blnPet) { - return "The player named \"" + filView.getName() + "\" does not have a pet."; - } - //lt.send((char) 18 + args + "\n--EOF--\n"); - lt.viewText(args, true, null); - return null; - } - RandomAccessFile rafView = null; - StringBuilder sb = new StringBuilder(); - try { - rafView = new RandomAccessFile(filView, "rw"); - if (blnUser) { - rafView.readLine(); //Skip over users' password - } - String strStore2 = rafView.readLine(); - //sb.append((char) 18 + args + "\n"); - while (strStore2 != null) { - sb.append(strStore2 + "\n"); - strStore2 = rafView.readLine(); - } - //sb.append("--EOF--\n"); - lt.viewText(args, true, sb.toString()); - } catch (Exception e) { - game.log.printError("parseCommand():Reading file for " + filView.getName(), e); - } - try { - rafView.close(); - } catch (Exception e) { - game.log.printError("parseCommand():Closing file after " + filView.getName(), e); - } - return null; - } - case "submit": { - if (lt.privs <= 2) - return "Huh?"; - if (args == null) { - return "What do you want to submit?"; - } - if ((lt.privs < 4) && (!args.startsWith("mob "))) { - return "You are not allowed to submit files."; - } - game.log.printMessage(Log.INFO, "godcommand:" + lt.name + ":" + cmdline + ":" + lt.x + "," + lt.y); - if (args.indexOf("..") != -1) { - return "You don't have permission to access that file."; - } - - if (true) - return "Developer hasn't implemented submit yet"; - - // FIXME: implement submit, just use some submit message protocol - - boolean compile = false; - boolean blnUser = false; - boolean blnPet = false; - String strFileName = null; - if (args.startsWith("item ") && (lt.privs > 3)) { - args = args.toLowerCase(); - strFileName = "defItems/" + args.substring(5); - } else if (args.startsWith("conf ") && (lt.privs > 3)) { - strFileName = "conf/" + args.substring(5); - } else if (args.startsWith("mob ")) { - strFileName = "defMobs/" + args.substring(4); - } else if (args.startsWith("command ") && (lt.privs > 3)) { - strFileName = "commands/" + args.substring(8); - compile = true; - } else if (args.startsWith("race ") && (lt.privs > 3)) { - strFileName = "defRaces/" + args.substring(5); - } else if (args.startsWith("pet ") && (lt.privs > 3)) { - strFileName = "defPets/" + args.substring(4); - } else if (args.startsWith("faction") && (lt.privs > 3)) { - return "You cannot submit faction files."; - } else if (args.startsWith("condition ") && (lt.privs > 3)) { - strFileName = "defConditions/" + args.substring(10); - } else if (args.startsWith("help ") && (lt.privs > 3)) { - strFileName = "helpFiles/" + args.substring(5); - } else if (args.startsWith("script ") && (lt.privs > 3)) { - strFileName = "scripts/" + args.substring(7); - compile = true; - } else if (args.startsWith("spell group ") && (lt.privs > 3)) { - strFileName = "defSpellGroups/" + args.substring(12); - compile = true; - } else if (args.startsWith("spell ") && (lt.privs > 3)) { - strFileName = "defSpells/" + args.substring(6); - } else if (args.startsWith("prop ")) { - strFileName = "defProps/" + args.substring(5); - } else if (args.startsWith("move action ") && (lt.privs > 3)) { - strFileName = "defMoveActions/" + args.substring(12); - compile = true; - } else if (args.startsWith("can move ") && (lt.privs > 3)) { - strFileName = "defCanMoveScripts/" + args.substring(9); - compile = true; - } else if (args.startsWith("can see ") && (lt.privs > 3)) { - strFileName = "defCanSeeScripts/" + args.substring(8); - compile = true; - } else if (args.startsWith("tile action ") && (lt.privs > 3)) { - strFileName = "defTileActions/" + args.substring(12); - compile = true; - } else if (args.startsWith("tile move ") && (lt.privs > 3)) { - strFileName = "defTileScripts/" + args.substring(10); - compile = true; - } else if (args.startsWith("tile see ") && (lt.privs > 3)) { - strFileName = "defTileSeeScripts/" + args.substring(9); - compile = true; - } else if (args.startsWith("user ")) { - if (lt.privs < 5) { - return "You don't have enough privelages to submit a user's file."; - } - if (game.getPlayer(args.substring(5)) != null) { - return "You cannot submit a file for an active user."; - } - blnUser = true; - strFileName = "users/" + args.substring(5); - } else if (args.startsWith("pet ")) { - if (lt.privs < 5) { - return "You don't have enough privelages to submit a user's pet file."; - } - if (game.getPlayer(args.substring(4)) != null) { - return "You cannot submit a pet file for an active user."; - } - blnPet = true; - strFileName = "pets/" + args.substring(4); - } - if (strFileName == null) { - return "Cannot submit " + args; - } - File filView = null; - try { - filView = new File(strFileName); - } catch (Exception e) { - return "Cannot submit " + args + " (" + strFileName + ")"; - } - RandomAccessFile rafView = null; - try { - if (blnUser) { - /* - Read in the user's password before deleting the file - */ - rafView = new RandomAccessFile(filView, "r"); - cmdline = rafView.readLine(); - } - if (filView.exists()) { - filView.delete(); - } - rafView = new RandomAccessFile(filView, "rw"); - if (blnUser) { - /* - Write out the password for user files - */ - rafView.writeBytes(cmdline + "\n"); - } - /** - * FIXME: from message - */ - /* - cmdline = lt.instream.readLine(); - while (!cmdline.equals("--EOF--")) { - rafView.writeBytes(cmdline + "\n"); - cmdline = lt.instream.readLine(); - }*/ - rafView.close(); - if (compile) { - Script scrStore = new Script(filView.getPath(), game, true); - scrStore.close(); - } - if (blnUser || blnPet) { - /* - Delete the .backup file for users and pets - */ - filView = new File(strFileName + ".backup"); - if (filView.exists()) { - filView.delete(); - } - } - } catch (Exception e) { - game.log.printError("parseCommand():While submitting file " + args + " (" + filView.getName() + ")", e); - try { - rafView.close(); - } catch (Exception e2) { - game.log.printError("parseCommand():While closing file " + args + " (" + filView.getName() + ") after failed submit", e); - } - return "Error while trying to submit " + args + " (" + filView.getName() + ")."; - } - return "Submit of " + args + " was successful."; - } - case "delete": { - if (lt.privs <= 2) - return "Huh?"; - if (args == null) { - return "What do you want to delete?"; - } - if (lt.privs < 4) { - return "You are not allowed to delete files."; - } - game.log.printMessage(Log.INFO, "godcommand:" + lt.name + ":" + cmdline + ":" + lt.x + "," + lt.y); - if (args.indexOf("..") != -1) { - return "You don't have permission to access that file."; - } - String filename = null; - String strReturn = null; - if (args.startsWith("item ")) { - filename = "defItems/" + args.substring(5); - strReturn = "item " + args.substring(5); - } else if (args.startsWith("conf ")) { - filename = "conf/" + args.substring(5); - strReturn = "conf " + args.substring(5); - } else if (args.startsWith("mob ")) { - filename = "defMobs/" + args.substring(4); - strReturn = "mob " + args.substring(4); - } else if (args.startsWith("command ")) { - filename = "commands/" + args.substring(8); - strReturn = "command " + args.substring(8); - } else if (args.startsWith("race ")) { - filename = "defRaces/" + args.substring(5); - strReturn = "race " + args.substring(5); - } else if (args.startsWith("pet ")) { - filename = "defPets/" + args.substring(4); - strReturn = "pet " + args.substring(4); - } else if (args.startsWith("faction")) { - return "You cannot delete faction files."; - } else if (args.startsWith("condition ")) { - filename = "defConditions/" + args.substring(8); - strReturn = "condition " + args.substring(8); - } else if (args.startsWith("help ")) { - filename = "helpFiles/" + args.substring(5); - strReturn = "help " + args.substring(5); - } else if (args.startsWith("script ")) { - filename = "scripts/" + args.substring(7); - strReturn = "script " + args.substring(7); - } else if (args.startsWith("spell group ")) { - filename = "defSpellGroups/" + args.substring(12); - strReturn = "spell group " + args.substring(12); - } else if (args.startsWith("spell ")) { - filename = "defSpells/" + args.substring(6); - strReturn = "spell " + args.substring(6); - } else if (args.startsWith("prop ")) { - filename = "defProps/" + args.substring(5); - strReturn = "prop " + args.substring(5); - } else if (args.startsWith("move action ")) { - filename = "defMoveActions/" + args.substring(12); - strReturn = "move action " + args.substring(12); - } else if (args.startsWith("can move ")) { - filename = "defCanMoveScripts/" + args.substring(9); - strReturn = "can move " + args.substring(9); - } else if (args.startsWith("can see ")) { - filename = "defCanSeeScripts/" + args.substring(8); - strReturn = "can see " + args.substring(8); - } else if (args.startsWith("tile action ")) { - filename = "defTileActions/" + args.substring(12); - strReturn = "tile action " + args.substring(12); - } else if (args.startsWith("tile move ")) { - filename = "defTileScripts/" + args.substring(10); - strReturn = "tile move " + args.substring(10); - } else if (args.startsWith("tile see ")) { - filename = "defTileSeeScripts/" + args.substring(9); - strReturn = "tile see " + args.substring(9); - } - File filDelete = null; - if (filename != null) { - filDelete = new File(filename); - if (filDelete.exists()) { - filDelete.delete(); - filDelete = new File(filename + ".dsko"); - if (filDelete.exists()) { - filDelete.delete(); - strReturn += " and the associated .dsko file."; - } - } else { - return strReturn + " does not exist."; - } - return "Deleted " + strReturn; - } - return "You cannot delete that."; - } - case "clanleader": { - if (lt.privs <= 2) - return "Huh?"; - - if (args == null) { - return "Clanleader who?"; - } - game.log.printMessage(Log.INFO, "godcommand:" + lt.name + ":" + cmdline + ":" + lt.x + "," + lt.y); - LivingThing thnStore = game.getPlayer(args.substring(0, args.indexOf(' '))); - if (thnStore == null) { - return "They're not in this world"; - } - if (args.length() < thnStore.name.length() + 2) { - return "What clan?"; - } - if (thnStore.privs > 1) { - return "You can't clanleader them."; - } - args = args.substring(thnStore.name.length() + 1); - thnStore.clan = args; - if (args.equals("none")) { - thnStore.privs = 0; - thnStore.chatMessage("You are now clanless."); - } else { - thnStore.privs = 1; - thnStore.chatMessage("You are now a member of the " + args + " clan."); - } - game.removeDuskObject(thnStore); - game.addDuskObject(thnStore.map, thnStore); - return thnStore.name + " is now a leader of the " + args + " clan."; - } - case "boot": { - if (lt.privs <= 2) - return "Huh?"; - if (args == null) { - return "Boot who?"; - } - game.log.printMessage(Log.INFO, "godcommand:" + lt.name + ":" + cmdline + ":" + lt.x + "," + lt.y); - LivingThing thnStore = game.getPlayer(args); - if (thnStore == null) { - return "They're not in this world."; - } - if (thnStore.privs >= lt.privs) { - thnStore.chatMessage(lt.name + " attempted to boot you."); - return "You do not have high enough privelages to boot them."; - } - thnStore.chatMessage("You have been booted."); - thnStore.close(); - return null; - } - case "hardkill": { - if (lt.privs <= 2) - return "Huh?"; - if (args == null) { - return "HardKill who?"; - } - game.log.printMessage(Log.INFO, "godcommand:" + lt.name + ":" + cmdline + ":" + lt.x + "," + lt.y); - LivingThing thnStore = game.getPlayer(args); - if (thnStore == null) { - return "They're not in this world."; - } - if (thnStore.privs >= lt.privs) { - thnStore.chatMessage(lt.name + " attempted to HardKill you."); - return "You do not have high enough privelages to HardKill them."; - } - thnStore.closeNoMsgPlayer(); - return null; - } - case "nochannel": { - if (lt.privs <= 2) - return "Huh?"; - if (args == null) { - return "nochannel who for how long?"; - } - game.log.printMessage(Log.INFO, "godcommand:" + lt.name + ":" + cmdline + ":" + lt.x + "," + lt.y); - LivingThing thnStore; - int duration; - try { - thnStore = game.getPlayer(args.substring(0, args.indexOf(" "))); - duration = Integer.parseInt(args.substring(args.indexOf(" ") + 1)); - } catch (Exception e) { - game.log.printError("parseCommand():When " + lt.name + " tried to nochannel " + args, e); - return "nochannel who for how long?"; - } - if (thnStore == null) { - return "They're not in this world."; - } - if (thnStore.privs >= lt.privs) { - thnStore.chatMessage(lt.name + " attempted to nochannel you."); - return "You do not have high enough privelages to nochannel them."; - } - if (duration > game.noChannelMax) { - duration = game.noChannelMax; - } - thnStore.chatMessage("You have been nochanneled for " + duration + " seconds."); - thnStore.noChannel = duration; - return "You have nochanneled " + thnStore.name + " for " + duration + " seconds"; - } - case "allowchannel": { - if (lt.privs <= 2) - return "Huh?"; - if (args == null) { - return "allowchannel who?"; - } - game.log.printMessage(Log.INFO, "godcommand:" + lt.name + ":" + cmdline + ":" + lt.x + "," + lt.y); - LivingThing thnStore = game.getPlayer(args); - if (thnStore == null) { - return "They're not in this world."; - } - thnStore.chatMessage("Your nochannel status has been removed."); - thnStore.noChannel = 0; - return thnStore.name + "'s nochannel status has been removed."; - } - case "gecho": { - if (lt.privs <= 2) - return "Huh?"; - if (args == null) { - return "G-Echo what?"; - } - game.log.printMessage(Log.INFO, "godcommand:" + lt.name + ":" + cmdline + ":" + lt.x + "," + lt.y); - game.chatMessage(args, "default"); - return null; - } - case "teleport": { - if (lt.privs <= 2) - return "Huh?"; - if (args == null) { - return "Teleport to where?"; - } - game.log.printMessage(Log.INFO, "godcommand:" + lt.name + ":" + cmdline + ":" + lt.x + "," + lt.y); - int index = args.lastIndexOf('_'); - char charSep = ' '; - if (index != -1) { - charSep = '_'; - } - try { - String[] params = args.split(" "); - TileMap map; - int destX, destY; - if (params.length == 3) { - map = game.maps.get(params[0]); - destX = Integer.parseInt(params[1]); - destY = Integer.parseInt(params[2]); - } else { - map = lt.map; - destX = Integer.parseInt(params[0]); - destY = Integer.parseInt(params[1]); - } - if (lt.privs < 5 && destX >= map.getCols()) { - destX = map.getCols() - 1; - } - if (lt.privs < 5 && destY >= map.getRows()) { - destY = map.getRows() - 1; - } - if (destX < 0) { - destX = 0; - } - if (destY < 0) { - destY = 0; - } - lt.changeLocBypass(map, destX, destY); - } catch (Exception e) { - LivingThing thnStore = game.getPlayer(args); - if (thnStore == null) { - return "Teleport to where?"; - } else { - // Hmm, i'm not sure what this does, teleport to another player? - // Whats with the weird range checking? - int destX = thnStore.x; - int destY = thnStore.y; - if (lt.privs < 5 && destX > 349) { - destX = 349; - } - if (lt.privs < 5 && destY > 349) { - destY = 349; - } - if (destX < 0) { - destX = 0; - } - if (destY < 0) { - destY = 0; - } - lt.changeLocBypass(thnStore.map, destX, destY); - } - } - return null; - } - case "remove": { - if (lt.privs <= 2) - return "Huh?"; - if (args == null) { - return "remove what?"; - } - game.log.printMessage(Log.INFO, "godcommand:" + lt.name + ":" + cmdline + ":" + lt.x + "," + lt.y); - DuskObject objStore = lt.getLocalObject(args); - if (objStore != null) { - if (objStore.isLivingThing()) { - LivingThing thnStore = (LivingThing) objStore; - if (thnStore.isMob()) { - thnStore.close(); - game.blnMobListChanged = true; - return "Object removed."; - } else { - return "You can't remove players/pets."; - } - } else if (objStore.isItem()) { - //game.vctItems.remove(objStore); - game.removeDuskObject(objStore); - return "Object removed."; - } else if (objStore.isSign()) { - //game.vctSigns.remove(objStore); - //game.blnSignListChanged = true; - game.removeDuskObject(objStore); - return "Object removed."; - } else if (objStore.isProp()) { - //game.vctProps.removeElement(objStore); - //game.blnPropListChanged = true; - game.removeDuskObject(objStore); - return "Object removed."; - } else if (objStore.isMerchant()) { - //game.vctMerchants.remove(objStore); - //game.blnMerchantListChanged = true; - game.removeDuskObject(objStore); - return "Object removed."; - } - } - return "You don't see that here."; - } - case "changeclan": { - if (lt.privs <= 2) - return "Huh?"; - if (args == null) { - return "ChangeClan who?"; - } - LivingThing thnStore = game.getPlayer(args.substring(0, args.indexOf(' '))); - if (thnStore == null) { - return "They're not in this world"; - } - if (cmdline.length() < thnStore.name.length() + 2) { - return "What clan?"; - } - game.log.printMessage(Log.INFO, "godcommand:" + lt.name + ":" + cmdline + ":" + lt.x + "," + lt.y); - args = args.substring(thnStore.name.length() + 1); - thnStore.clan = args; - if (thnStore.privs == 1) { - thnStore.privs = 0; - } - if (args.equals("none")) { - thnStore.chatMessage("You are now a member of no clan."); - } else { - thnStore.chatMessage("You are now a member of the " + args + " clan."); - } - return thnStore.name + " has been added to the " + args + " clan"; - } - case "madd": { - if (lt.privs <= 2) - return "Huh?"; - if (args == null) { - return "Madd what?"; - } - Merchant mrcStore = lt.overMerchant(); - if (mrcStore != null) { - game.log.printMessage(Log.INFO, "godcommand:" + lt.name + ":" + cmdline + ":" + lt.x + "," + lt.y); - mrcStore.items.add(args); - game.refreshEntities(lt); - } else { - if (lt.overPlayerMerchant() != null) { - return "You cannot add items to a player's merchant this way."; - } - return "You are not on a merchant."; - } - return null; - } - case "mremove": { - if (lt.privs <= 2) - return "Huh?"; - if (args == null) { - return "Mremove what?"; - } - Merchant mrcStore = lt.overMerchant(); - if (mrcStore != null) { - game.log.printMessage(Log.INFO, "godcommand:" + lt.name + ":" + cmdline + ":" + lt.x + "," + lt.y); - mrcStore.items.remove(args); - game.refreshEntities(lt); - } else { - if (lt.overPlayerMerchant() != null) { - return "You cannot remove items from a player's merchant this way."; - } - return "You are not on a merchant."; - } - return null; - } - case "whoip": { - if (lt.privs <= 2) - return "Huh?"; - game.log.printMessage(Log.INFO, "godcommand:" + lt.name + ":" + cmdline + ":" + lt.x + "," + lt.y); - - int nPlayers = game.playersByName.size(); - StringBuilder sb = new StringBuilder(); - - // TODO: this used to be atomic, does it need to be? - - for (LivingThing thnStore : game.playersByName.values()) { - boolean hidden = false; - if (thnStore.privs > 2) { - if (thnStore.hasCondition("invis")) { - hidden = true; - } - } - if (hidden && (lt.privs < thnStore.privs)) { - nPlayers--; - } - } - - lt.chatMessage("\tThere are " + nPlayers + " players online:"); - - for (LivingThing thnStore : game.playersByName.values()) { - boolean hidden = false; - boolean skip = false; - if (thnStore.privs > 2) { - if (thnStore.hasCondition("invis")) { - hidden = true; - } - } - if (hidden && (lt.privs < thnStore.privs)) { - skip = true; - } - if (!skip) { - String ip = thnStore.getAddress().toString(); - while (ip.length() < 34) { - ip += " "; - } - sb.setLength(0); - sb.append(" ").append(ip); - sb.append(thnStore.getCharacterPoints()).append("cp "); - if (thnStore.privs == 1) { - sb.append("{Clan Leader}"); - } else if (thnStore.privs == 3) { - sb.append("{God}"); - } else if (thnStore.privs == 4) { - sb.append("{High God}"); - } else if (thnStore.privs > 4) { - sb.append("{Master God}"); - } - if (hidden) { - sb.append("{hidden}"); - } - if (thnStore.noChannel != 0) { - sb.append("{nochanneled}"); - } - if (!thnStore.clan.equals("none")) { - sb.append("<" + thnStore.clan + "> "); - } - sb.append(thnStore.name + "\n"); - lt.chatMessage(sb.toString()); - } - } - - return null; - } - case "change": { - if (lt.battle != null) { - return "Not while you're fighting!"; - } - if (args == null) { - return "Change what?"; - } - - if (true) - return "Race changing unimplemented"; - - if (args.equals("race")) { - if (lt.getCharacterPoints() > game.changeRaceCpLimit) { - return "You can no longer change your race."; - } - lt.unloadRace(); - - // FIXME: I'm not sure why this needs to clear messages here. -/* - if (lt.isPet()) { - - lt.getMaster().halt(); - // lt.getMaster().stillThere(); // This puts something in the buffer - // lt.getMaster().thrConnection.sleep(750); // wait for it... - try { - // Empty out the BufferedReader for the answer - // while (lt.getMaster().instream.ready()) { - // lt.getMaster().instream.readLine(); - // } - } catch (Exception e) { - game.log.printError("parseCommand():Trying to empty ready buffer of pet's master for change race.", e); - } - } else { - lt.halt(); - // lt.stillThere(); // This puts something in the buffer - // lt.thrConnection.sleep(750); // wait for it... - try { - // Empty out the BufferedReader for the answer - // while (lt.instream.ready()) { - // lt.instream.readLine(); - // } - } catch (Exception e) { - game.log.printError("parseCommand():Trying to empty ready buffer of player for change race.", e); - } - } - lt.loadRace(); - if (lt.isPet()) { - lt.getMaster().proceed(); - lt.getMaster().updateStats(); - } else { - lt.proceed(); - } - */ - game.removeDuskObject(lt); - game.addDuskObject(lt.map, lt); - lt.updateStats(); - return "Your race has been changed."; - } - } - - I am here! - - case "clan": { - if (!lt.isPlayer() && !lt.isMob()) { - return "Only players can use the gossip/clan/tell channels."; - } - if (lt.clan.equals("none")) { - return "You're not in a clan. Use gossip instead"; - } - if (lt.noChannel != 0) { - return "You can't do that when nochanneled."; - } - if (args == null) { - return "Clan what?"; - } - if (args.length() > game.messagecap) { - return "That message was too long."; - } - if (!args.equals("")) { - long lTemp = lt.lastMessageStamp; - lt.lastMessageStamp = System.currentTimeMillis(); - if ((System.currentTimeMillis() - lTemp) < game.floodLimit) { - return "No flooding."; - } - game.chatMessage(lt.name + " clans: " + args, lt.clan, lt.name); - } - return null; - } - - case "emote": { - if (args == null) { - return "Emote what?"; - } - if (lt.noChannel != 0) { - return "You can't do that when nochanneled."; - } - if (args.length() > game.messagecap) { - return "That message was too long."; - } - if (!args.equals("")) { - long lTemp = lt.lastMessageStamp; - lt.lastMessageStamp = System.currentTimeMillis(); - if ((System.currentTimeMillis() - lTemp) < game.floodLimit) { - return "No flooding."; - } - String strPerson = lt.name; - if (lt.privs > 2 - && lt.hasCondition("invis") - && lt.hasCondition("invis2")) { - strPerson = "A god"; - } - game.chatMessage(lt.map, strPerson + " " + args, lt.x, lt.y, lt.name); - } - return null; - } - case "tell": { - if (!lt.isPlayer()) { - return "Only players can use the gossip/clan/tell channels."; - } - if (args == null) { - return "Tell who what?"; - } - if (lt.noChannel != 0) { - return "You can't do that when nochanneled."; - } - StringTokenizer tknStore = new StringTokenizer(args, " "); - String strStore2 = null; - try { - strStore2 = tknStore.nextToken(); - } catch (Exception e) { - return "Tell who?"; - } - LivingThing thnStore = game.getPlayer(strStore2); - if (thnStore == null) { - return "They're not in this world."; - } - if (thnStore.privs > 2 - && thnStore.hasCondition("invis") - && thnStore.hasCondition("invis2")) { - return "They're not in this world."; - } - if (thnStore.name.equalsIgnoreCase(lt.name)) { - return "Talking to yourself is not a good sign."; - } - String strIgnoreName = thnStore.name.toLowerCase(); - if (lt.ignoreList.contains(strIgnoreName)) { - return "You can't do that while you are ignoring them."; - } - strIgnoreName = lt.name.toLowerCase(); - if (thnStore.ignoreList.contains(strIgnoreName)) { - return "They did not get the message, they are ignoring you."; - } - args = args.substring(strStore2.length(), args.length()).trim(); - if (args.length() > game.messagecap) { - return "That message was too long."; - } - if (args.length() == 0) { - return "Tell them what?"; - } - long lTemp = lt.lastMessageStamp; - lt.lastMessageStamp = System.currentTimeMillis(); - if ((System.currentTimeMillis() - lTemp) < game.floodLimit) { - return "No flooding."; - } - String strPerson = lt.name; - if (lt.privs > 2 - && lt.hasCondition("invis") - && lt.hasCondition("invis2")) { - strPerson = "A god"; - } - game.log.printMessage(Log.ALWAYS, lt.name + " tells " + thnStore.name + " : " + args); - thnStore.chatMessage(strPerson + " tells you: " + args); - return "You tell " + strStore2 + ": " + args; - } - case "who": { - int nPlayers = game.playersByName.size(); - StringBuilder sb = new StringBuilder(); - - // TOOD: originally this was atomic on stream - // although 'atomic' is wrong since nobody else was atomic on stream - - for (LivingThing thnStore : game.playersByName.values()) { - boolean hidden = false; - if (thnStore.privs > 2) { - if (thnStore.hasCondition("invis")) { - hidden = true; - } - } - if (hidden && (lt.privs < thnStore.privs)) { - nPlayers--; - } - if (lt.privs < 3 && !thnStore.isWorking) { - nPlayers--; - } - if (lt.privs < 3 && !thnStore.isReady) { - nPlayers--; - } - } - - lt.chatMessage("\tThere are " + nPlayers + " players online:"); - - for (LivingThing thnStore : game.playersByName.values()) { - boolean hidden = false; - boolean skip = false; - if (thnStore.privs > 2) { - if (thnStore.hasCondition("invis")) { - hidden = true; - } - } - if (hidden && (lt.privs < thnStore.privs)) { - skip = true; - } - if (lt.privs < 3 && !thnStore.isWorking) { - skip = true; - } - if (lt.privs < 3 && !thnStore.isReady) { - skip = true; - } - System.out.println(" user " + thnStore.name + " skip " + skip); - if (!skip) { - sb.setLength(0); - sb.append("\t"); - sb.append(thnStore.getCharacterPoints()); - sb.append("cp "); - if (lt.privs > 2 && !thnStore.isWorking) { - sb.append("{* Not Working *}"); - } - if (lt.privs > 2 && !thnStore.isReady) { - sb.append("{Entering the world}"); - } - if (lt.privs > 2 && !thnStore.isSaveable) { - sb.append("{Loading/Saving}"); - } - if (thnStore.privs == 1) { - sb.append("{Clan Leader}"); - } else if (thnStore.privs == 3) { - sb.append("{God}"); - } else if (thnStore.privs == 4) { - sb.append("{High God}"); - } else if (thnStore.privs > 4) { - sb.append("{Master God}"); - } - if (hidden) { - sb.append("{hidden}"); - } - if (thnStore.noChannel != 0) { - sb.append("{nochanneled}"); - } - if (thnStore.ignoreList.contains(lt.name.toLowerCase())) { - sb.append("{Ignoring you}"); - } - if (lt.ignoreList.contains(thnStore.name.toLowerCase())) { - sb.append("{Ignored}"); - } - if (!thnStore.clan.equals("none")) { - sb.append("<"); - sb.append(thnStore.clan); - sb.append("> "); - } - if (thnStore.title == null - || thnStore.title.equals("none")) { - sb.append(thnStore.name); - //sb.append("\n"); - } else { - sb.append(thnStore.name); - sb.append(" "); - sb.append(thnStore.title); - //sb.append("\n"); - } - lt.chatMessage(sb.toString()); - } - } - return "Who complete."; - } - //kill - case "order": { - if (args == null) { - return "Order who to do what?"; - } - int intStore = args.indexOf(" "); - if (intStore == -1) { - return "Order them to do what?"; - } - DuskObject objStore = lt.getLocalObject(args.substring(0, intStore)); - if (objStore == null) { - return "You don't see that here."; - } - if (!objStore.isLivingThing()) { - return "You can't order that."; - } - LivingThing thnStore = (LivingThing) objStore; - if (thnStore.getCharmer() != lt) { - return "They don't take orders from you."; - } - args = args.substring(intStore + 1); - try { - thnStore.chatMessage(Commands.parseCommand(thnStore, game, args)); -// lt.chatMessage(Commands.parseCommand(thnStore, engGame, strArgs)); - } catch (Exception e) { - game.log.printError("parseCommand():" + thnStore.name + ", while trying to follow the following order: \"" + args + "\"", e); - } - return null; - } - - case "inv": - case "inventory": { - final String[] formats = { - "Wielded: %s", - "Arms: %s", - "Legs: %s", - "Torso: %s", - "Waist: %s", - "Neck: %s", - "Skull: %s", - "Eyes: %s", - "Hands: %s"}; - lt.chatMessage("-Worn-"); - for (int i = 0; i < formats.length; i++) { - Item item = lt.wornItems.getWorn(i); - if (item != null) - lt.chatMessage(String.format(formats[i], item.description)); - } - lt.chatMessage("-Inventory-:"); - for (LinkedList list : lt.itemList.values()) { - if (!list.isEmpty()) { - Item item = (Item) list.element(); - lt.chatMessage(list.size() + " " + item.name); - } - } - return null; - } - - case "help": { - File file; - String title; - - // FIXME: was atomic - if (args == null) { - file = new File("help"); - title = "Help"; - } else { - if (args.indexOf("..") != -1) { - return "There is no help on that subject"; - } - file = new File("helpFiles/" + args); - title = "Help on " + args; - } - - try (RandomAccessFile helpFile = new RandomAccessFile(file, "r")) { - lt.chatMessage(title); - while ((cmdline = helpFile.readLine()) != null) { - lt.chatMessage(cmdline); - } - } catch (IOException e) { - game.log.printError("parseCommand():When " + lt.name + " tried to get help on " + args, e); - return "There is no help on that subject"; - } - return null; - } - - case "get": { - if (args == null) { - return "Get what?"; - } - DuskObject objStore = lt.getLocalObject(args); - if (objStore == null) { - return "You don't see that here."; - } - if (!objStore.isItem()) { - return "You can't get that."; - } - Item itmStore = (Item) objStore; - if (Math.abs(lt.x - itmStore.x) + Math.abs(lt.y - itmStore.y) < 2) { - if (lt.privs > 2) { - game.log.printMessage(Log.INFO, "godcommand:" + lt.name + ":gets " + args + ":" + lt.x + "," + lt.y); - } - lt.itemList.addElement(itmStore); - lt.updateItems(); - game.removeDuskObject(itmStore); - } else { - return "That's too far away."; - } - itmStore.onGetItem(game, lt); - return null; - } - - case "drop": { - if (args == null) { - return "Drop what?"; - } - int intDot = args.indexOf("."); - int intNumToDrop = 1; - if (intDot != -1) { - try { - intNumToDrop = Integer.parseInt(args.substring(0, intDot)); - } catch (NumberFormatException e) { - intNumToDrop = 1; - } - } - Item itmStore = lt.getItem(args); - if (itmStore != null) { - String strMessage = "You drop " + itmStore.name + "."; - if (intNumToDrop > 1) { - strMessage = "You drop " + intNumToDrop + " " + itmStore.name + "."; - } - if (itmStore.intCost == 0) { - strMessage = "A " + itmStore.name + " vanishes into thin air."; - if (intNumToDrop > 1) { - strMessage = intNumToDrop + " " + itmStore.name + " vanish into thin air."; - } - } - if (lt.privs > 2) { - game.log.printMessage(Log.INFO, "godcommand:" + lt.name + ":drops " + args + ":" + lt.x + "," + lt.y); - } - for (int i = 0; i < intNumToDrop; i++) { - itmStore = lt.getItemAndRemove(itmStore.name); - itmStore.x = lt.x; - itmStore.y = lt.y; - if (itmStore.intCost != 0) { - //game.vctItems.add(itmStore); - game.addDuskObject(lt.map, itmStore); - lt.updateItems(); - } - itmStore.onDropItem(game, lt); - } - return strMessage; - } - return "You don't have that."; - } - - case "use": { - if (args == null) { - return "Use what?"; - } - if (lt.battle == null) { - lt.useItem(args, -1); - } else { - lt.battle.addCommand(lt, "use " + args); - } - return null; - } - case "eat": { - if (args == null) { - return "Eat what?"; - } - if (lt.battle == null) { - lt.useItem(args, Item.FOOD); - } else { - lt.battle.addCommand(lt, "eat " + args); - } - return null; - } - case "drink": { - if (args == null) { - return "Drink what?"; - } - if (lt.battle == null) { - lt.useItem(args, Item.DRINK); - } else { - lt.battle.addCommand(lt, "drink " + args); - } - return null; - } - - case "give": { - if (args == null) { - return "Give who what?"; - } - StringTokenizer tknStore = new StringTokenizer(args, " "); - String strStore2 = null; - try { - strStore2 = tknStore.nextToken(); - } catch (Exception e) { - return "Give who what?"; - } - DuskObject objStore = lt.getLocalObject(strStore2); - if (objStore == null) { - return "You don't see them here."; - } - if (!objStore.isLivingThing()) { - return "You can't give to that."; - } - LivingThing thnStore = (LivingThing) objStore; - if ((lt.privs < 3) && (Math.abs(thnStore.x - lt.x) + Math.abs(thnStore.y - lt.y) > 1)) { - return "They're too far away."; - } - args = args.substring(strStore2.length() + 1); - if (lt.privs > 2) { - game.log.printMessage(Log.INFO, "godcommand:" + lt.name + ":gives " + args + " to " + strStore2 + ":" + lt.x + "," + lt.y); - } - if (args.startsWith("gp")) { - args = args.substring(3); - try { - int intStore = Integer.parseInt(args); - if (intStore < 0) { - return "You can't give negative money!"; - } - if (intStore <= lt.cash) { - lt.cash -= intStore; - thnStore.cash += intStore; - lt.updateStats(); - thnStore.updateStats(); - thnStore.chatMessage(lt.name + " gives you " + intStore + "gp."); - return "You give " + thnStore.name + " " + intStore + "gp."; - } else { - lt.chatMessage("You don't have that much gp"); - } - } catch (Exception e) { - return "That is not a valid amount of gp to give."; - } - } - int intDot = args.indexOf("."); - int intNumToGive = 1; - if (intDot != -1) { - try { - intNumToGive = Integer.parseInt(args.substring(0, intDot)); - } catch (NumberFormatException e) { - intNumToGive = 1; - } - } - Item itmStore = lt.getItem(args); - if (itmStore != null) { - String strMessage = lt.name + " gives you "; - String strMessage2 = "You give " + thnStore.name + " "; - if (intNumToGive > 1) { - strMessage += intNumToGive + " "; - strMessage2 += intNumToGive + " "; - } - strMessage += itmStore.name + "."; - strMessage2 += itmStore.name + "."; - cmdline = itmStore.name; - - while (intNumToGive > 0) { - itmStore = lt.getItemAndRemove(cmdline); - thnStore.itemList.addElement(itmStore); - intNumToGive--; - - itmStore.onDropItem(game, lt); - itmStore.onGetItem(game, thnStore); - } - - thnStore.chatMessage(strMessage); - thnStore.updateItems(); - lt.updateItems(); - return strMessage2; - } - return "You don't have that."; - } - - case "buy": { - if (args == null) { - return "Buy what?"; - } - int quantity; - try { - int i = args.indexOf(" "); - quantity = Integer.parseInt(args.substring(0, i)); - args = args.substring(i + 1); - } catch (Exception e) { - return "How many of what do you want to buy?"; - } - if (quantity > 100) { - quantity = 100; - } else if (quantity < 1) { - return "You can't buy less than one of something."; - } - PlayerMerchant pmrStore = lt.overPlayerMerchant(); - if (pmrStore != null) { - long numItem = pmrStore.contains(args); - if (numItem > 0) { - Item itmStore = game.getItem(args); - if (itmStore != null) { - if (quantity > numItem) { - return "This merchant does not have that many."; - } - int intCost = (itmStore.intCost * 3) / 4; - if (lt.name.equalsIgnoreCase(pmrStore.strOwner)) { - intCost = 0; - } - if (intCost * quantity > lt.cash) { - return "You can't afford that"; - } else { - lt.cash -= intCost * quantity; - pmrStore.cash += intCost * quantity; - itmStore = pmrStore.remove(args); - lt.itemList.addElement(itmStore); - for (int i = 1; i < quantity; i++) { - itmStore = pmrStore.remove(args); - lt.itemList.addElement(itmStore); - } - lt.updateItems(); - lt.updateStats(); - } - } - } - } - - Merchant mrcStore = lt.overMerchant(); - if (mrcStore == null) { - return "Buy from whom?"; - } - if (lt.getFollowing() != null && lt.getFollowing().isPet()) { - if (args.startsWith(lt.getFollowing().name + ":")) { - args = args.substring(lt.getFollowing().name.length() + 1); - if (mrcStore.contains(args)) { - if (args.startsWith("train:")) { - args = args.substring(6); - mrcStore.train(args, quantity, lt.getFollowing()); - lt.updateStats(); - } - } - return null; - } - } - if (mrcStore.contains(args)) { - if (args.startsWith("train:")) { - args = args.substring(6); - mrcStore.train(args, quantity, lt); - lt.updateStats(); - } else { - if (args.startsWith("pet")) { - mrcStore.pet(lt); - lt.updateStats(); - } else { - Item itmStore = game.getItem(args); - if (itmStore != null) { - if (itmStore.intCost * quantity > lt.cash) { - return "You can't afford that"; - } else { - lt.cash -= itmStore.intCost * quantity; - lt.itemList.addElement(itmStore); - for (int i = 1; i < quantity; i++) { - lt.itemList.addElement(game.getItem(args)); - } - lt.updateItems(); - lt.updateStats(); - } - } - } - } - } - return null; - } - - case "sell": { - if (args == null) { - return "Sell what?"; - } - - PlayerMerchant pmrStore = lt.overPlayerMerchant(); - if (pmrStore != null) { - if (lt.name.equalsIgnoreCase(pmrStore.strOwner)) { - int quantity = 1; - try { - int i = args.indexOf(" "); - quantity = Integer.parseInt(args.substring(0, i)); - args = args.substring(i + 1); - } catch (Exception e) { - return "How many of what do you want to sell?"; - } - Item itmStore = lt.getItem(args); - for (int i = 0; i < quantity; i++) { - itmStore = lt.getItemAndRemove(args); - if (itmStore != null) { - itmStore.onDropItem(game, lt); - pmrStore.add(itmStore); - lt.isSaveNeeded = true; - } else { - i = quantity; - } - } - lt.updateItems(); - lt.updateStats(); - return null; - } - return "You cannot sell items to this merchant."; - } - - Merchant mrcStore = lt.overMerchant(); - if (mrcStore == null) { - return "Sell that to whom?"; - } - int quantity = 1; - try { - int i = args.indexOf(" "); - quantity = Integer.parseInt(args.substring(0, i)); - args = args.substring(i + 1); - } catch (Exception e) { - return "How many of what do you want to sell?"; - } - if (quantity > 100) { - quantity = 100; - } - Item itmStore = lt.getItem(args); - for (int i = 0; i < quantity; i++) { - itmStore = lt.getItemAndRemove(args); - if (itmStore != null) { - itmStore.onDropItem(game, lt); - lt.cash += (itmStore.intCost / 2); - lt.isSaveNeeded = true; - } else { - i = quantity; - } - } - lt.updateItems(); - lt.updateStats(); - return null; - } - - case "cast": { - if (args == null) { - return "Cast what?"; - } - if (lt.battle == null) { - lt.castSpell(args); - } else { - lt.battle.addCommand(lt, "cast " + args);; - } - return null; - } - - case "follow": { - if (args == null) { - return "Follow who?"; - } - if (lt.isSleeping) { - return "You can't do that while you're sleeping"; - } - DuskObject objStore = lt.getLocalObject(args); - if (objStore == null) { - return "You don't see that here."; - } - if (objStore.isLivingThing()) { - LivingThing thnStore = (LivingThing) objStore; - if (lt.getMaster() != null && thnStore != lt.getMaster()) { - if (lt.isPet()) { - return "You can only follow your owner."; - } - return "You're already following someone. Leave them first."; - } - if (Math.abs(lt.x - thnStore.x) + Math.abs(lt.y - thnStore.y) > 1) { - return "They're too far away."; - } - if (thnStore == lt) { - return "You can't follow yourself."; - } - if (!thnStore.isPlayer() && !lt.isMob()) { - return "You can only follow players."; - } - if (thnStore.noFollow || (thnStore.isPet() && thnStore.getMaster().noFollow)) { - return "They won't let you follow them."; - } - if (lt.isPet()) { - thnStore.setFollowing(lt); - lt.setMaster(thnStore); - thnStore.updateStats(); - lt.updateStats(); - return "You are now following " + lt.getMaster().name + "."; - } - LivingThing thnStore2 = thnStore; - while (thnStore2 != null) { - if (lt == thnStore2) { - return "You're already in that group."; - } - thnStore2 = thnStore2.getMaster(); - } - thnStore.chatMessage("You are now being followed by " + lt.name + "."); - while (thnStore.getFollowing() != null) { - thnStore = thnStore.getFollowing(); - if (thnStore.isPlayer()) { - thnStore.chatMessage("You are now being followed by " + lt.name + "."); - } - } - thnStore.setFollowing(lt); - lt.setMaster(thnStore); - thnStore.updateStats(); - lt.updateStats(); - return "You are now following " + lt.getMaster().name + "."; - } - return "That's not something you can follow."; - } - - case "unfollow": { - if (args == null) { - return "Unfollow who?"; - } - - // FIXME: implemente unfollow - if (true) - return "unfollow is not yet implemented"; - - - LivingThing thnStore = lt.getFollowing(); - if (thnStore != null && thnStore.isPet()) { - if (thnStore.name.equalsIgnoreCase(args)) { - /* - lt.halt(); - lt.chatMessage("Do you really want to permanently erase your pet?"); - try { - if (lt.instream.readLine().equalsIgnoreCase("yes")) { - lt.getFollowing().close(); - File deleteme = new File("pets/" + lt.name.toLowerCase()); - deleteme.delete(); - deleteme = new File("pets/" + lt.name.toLowerCase() + ".backup"); - deleteme.delete(); - lt.getFollowing().close(); - lt.setFollowing(lt.getFollowing().getFollowing()); - lt.proceed(); - return "Your pet has been erased."; - } - } catch (Exception e) { - game.log.printError("parseCommand():While unfollowing pet for " + lt.name, e); - } - lt.proceed(); - * */ - return null; - } - thnStore = thnStore.getFollowing(); - } - while (thnStore != null) { - if (thnStore.name.equalsIgnoreCase(args)) { - if (thnStore.isPet()) { - thnStore = thnStore.getMaster(); - } - thnStore.removeFromGroup(); - return null; - } - thnStore = thnStore.getFollowing(); - } - return "They're not following you."; - } - - case "stay": { - if (lt.isPet()) { - lt.removeFromGroup(); - return Commands.parseCommand(lt, game, "emote sits down to await " + lt.getMaster().name + "'s return."); - } - return (Commands.parseCommand(lt, game, "emote stays like a good little puppy.")); - } - - case "leave": { - if (lt.isPet()) { - return "You cannot leave your master unless he unfollows you."; - } - lt.removeFromGroup(); - return "You are now on your own."; - } - - case "unclan": { - if (lt.clan.equals("none")) { - return "You're not in a clan."; - } - if (lt.battle != null) { - return "Wait until you're done battling."; - } - // FIXME: reimplement unclan - if (true) - return "unclan not implemented yet"; - try { - /* - lt.halt(); - lt.chatMessage("Are you sure you want to drop out of your clan? If so type yes."); - if (lt.instream.readLine().equalsIgnoreCase("yes")) { - lt.clan = "none"; - if (lt.privs == 1) { - lt.privs = 0; - } - lt.proceed(); - game.removeDuskObject(lt); - game.addDuskObject(lt); - return "You have been removed from your clan."; - }*/ - } catch (Exception e) { - game.log.printError("parseCommand():While " + lt.name + " was trying to dropout of their clan", e); - } - //lt.proceed(); - return null; - } - - case "description": { - if (args == null) { - lt.description = null; - return "Your description has been removed."; - } - lt.description = args; - return "Your description has been set to:" + lt.description; - } - - case "title": { - if (!lt.isPlayer()) { - return "Only players may have titles."; - } - if (args == null) { - lt.title = null; - return "Your title has been removed."; - } - lt.title = args; - if (lt.title.length() > game.titlecap) { - lt.title = lt.title.substring(0, game.titlecap); - } - return "Your title has been set to:" + lt.title; - } - - case "password": { - if (!lt.isPlayer()) { - return "Only players can change their password."; - } - return "password changing not re-implemented yet"; - /* - try { - lt.halt(); - lt.chatMessage("Enter your current password."); - String strOldPass = lt.instream.readLine(); - if (!strOldPass.equals(lt.password)) { - lt.proceed(); - return "Sorry, that is not your password."; - } - lt.chatMessage("Enter a new password."); - String strNewPass = lt.instream.readLine(); - lt.chatMessage("Repeat that password."); - String strNewPassRepeat = lt.instream.readLine(); - if (strNewPass == null) { - lt.proceed(); - return "Not a valid password."; - } - if (!strNewPass.equals(strNewPassRepeat)) { - lt.proceed(); - return "Sorry, those passwords do not match."; - } - lt.password = strNewPass; - lt.proceed(); - return "Your password has now been changed."; - } catch (Exception e) { - game.log.printError("parseCommand():While " + lt.name + " was changing their password", e); - } - lt.proceed(); - */ - } - - case "wear": { - if (args == null) { - return "Wear what?"; - } - // FIXME: this should go on livingthing, but the interaction flow is messy - LinkedList qStore = lt.itemList.get(args); - if (qStore != null) { - Item itmStore = (Item) qStore.element(); - int where = -1; - - switch (itmStore.intType) { - case (1): { - where = Equipment.WIELD; - break; - } - case (2): - where = itmStore.intKind + Equipment.ARMS; - break; - default: - return "You can't wear that"; - } - - Item old = lt.wornItems.wear(where, itmStore); - if (old != null) { - lt.itemList.addElement(old); - lt.onUnwear(old); - } - lt.onWear(itmStore); - - lt.itemList.removeElement(itmStore.name); - if (lt.isPet()) { - lt.getMaster().updateStats(); - } - if (lt.isPlayer()) { - lt.updateStats(); - } - lt.updateEquipment(); - lt.updateItems(); - return null; - } - return "You don't have that"; - } - case "unwear": { - if (args == null) { - return "Unwear what?"; - } - lt.unWear(args); - return null; - } - case "rement": { - if (args == null) { - return null; - } - long lngID = Long.parseLong(args); - lt.removeEntity(lngID); - return null; - } - case "audio": { - if (args == null) { - if (lt.audioon) { - return "Your audio is turned on."; - } - return "Your audio is turned off."; - } else if (args.equalsIgnoreCase("off")) { - lt.audioon = false; - return "Your audio has been turned off."; - } else if (args.equalsIgnoreCase("on")) { - lt.audioon = true; - return "Your audio has been turned on."; - } - } - case "color": { - if (args == null) { - if (lt.coloron) { - return "Your color is turned on."; - } - return "Your color is turned off."; - } else if (args.equalsIgnoreCase("off")) { - lt.coloron = false; - return "Your color has been turned off."; - } else if (args.equalsIgnoreCase("on")) { - lt.coloron = true; - return "Your color has been turned on."; - } - } - case "highlight": { - if (args == null) { - if (lt.highlight) { - return "Highlighting of enemies in battle is turned on."; - } - return "Highlighting of enemies in battle is turned off."; - } else if (args.equalsIgnoreCase("off")) { - lt.highlight = false; - lt.clearFlags(); - return "Highlighting of enemies in battle has been turned off."; - } else if (args.equalsIgnoreCase("on")) { - lt.highlight = true; - return "Highlighting of enemies in battle has been turned on."; - } - } - case "popup": { - // FIXME: TBD - if (args == null) { - if (lt.popup) { - return "You have popup windows turned on."; - } - return "You have popup windows turned off."; - } else if (args.equalsIgnoreCase("off")) { - lt.popup = false; - return "You have turned popup windows off."; - } else if (args.equalsIgnoreCase("on")) { - lt.popup = true; - return "You have turned popup windows on."; - } - } - case "nofollow": { - if (args == null) { - if (lt.noFollow) { - return "You are not allowed to be followed."; - } - return "You can be followed."; - } else if (args.equalsIgnoreCase("off")) { - lt.noFollow = false; - return "You can now be followed."; - } else if (args.equalsIgnoreCase("on")) { - lt.noFollow = true; - return "You can no longer be followed."; - } - } - case "ignore": { - if (args == null) { - return "Ignore who?"; - } - LivingThing thnStore = game.getPlayer(args); - if (thnStore == null) { - return "They're not in this world."; - } - String strIgnoreName = thnStore.name.toLowerCase(); - if (lt.name.equalsIgnoreCase(strIgnoreName)) { - return "Trying to ignore yourself is not a good sign."; - } - if (thnStore.privs > 2) { - return "You cannot ignore a god."; - } - if (!lt.ignoreList.contains(strIgnoreName)) { - lt.ignoreList.add(strIgnoreName); - } else { - return "You are already ignoring them."; - } - return "You are now ignoring " + strIgnoreName; - } - case "unignore": { - if (args == null) { - return "UnIgnore who?"; - } - String strIgnoreName = args.toLowerCase(); - if (strIgnoreName == "all") { - lt.ignoreList.clear(); - return "You are no longer ignoring anyone."; - } - if (lt.ignoreList.contains(strIgnoreName)) { - lt.ignoreList.remove(strIgnoreName); - } else { - return "You are not ignoring them."; - } - return "You are no longer ignoring " + strIgnoreName; - } - case "appletimages": { - //lt.updateAppletImages(); - return "obsolete command"; - } - case "applicationimages": { - //lt.updateApplicationImages(); - return "obsolete command"; - } - case "notdead": { - return null; - } - case "quit": - case "logout": { - if (lt.battle == null) { - lt.close(); - return null; - } - return "You cannot quit in the middle of a fight."; - } - } - if (!blnFoundScriptedCommand) { - return "huh?"; - } - return null; - } -} diff --git a/DuskServer/README b/DuskServer/README deleted file mode 100644 index ad770de..0000000 --- a/DuskServer/README +++ /dev/null @@ -1,71 +0,0 @@ - -CODE STATUS September 2013 --------------------------- - -After a very active development period the work simply stopped - so it -is in a bit of a half-way state as you'd imagine. Other time -pressures and interests meant I haven't had time to work on this for -months but I hope to again one day in some shape or form. - -Essentially the code in duskz/server and duskz/server/entity is the -original Dusk code which has been refactored a bit (badly), updated to -newer Java and a new protocol (I think), but more or less shares the -original features and data format. It's basically a dead branch. - -The code in dusk/server/entityz is mostly a complete re-write of the -object class hierarchy, data i/o, map handling and a few other things. -Unfortunately as it was in active development when it stopped it too -isn't entirely in a good state either. - -I think the object heirarchy is pretty good, and the script system was -"upgraded" to javascript but there is a ton of work left to make it -usable. In hindsight i should've gone straight to a database -(berkeleydb) backend as too much of the entity code is dealing with -i/o. - -The original readme follows ... - -README ------- - -This is the server implementation of DuskZ. A client is required -to access the game. - -It is a fork and major overhaul of the Dusk 2.7.3 source code, released -circa 2000. - -This is currently in an alpha state. - - ... to be completed ... - -INSTALLATION ------------- - ... to be completed ... - -RUNNING -------- - ... to be completed ... - -LICENSE -------- - DuskZ is free software, see COPYING for your rights. - - Some files are under other compatible licenses. - - Copyright (C) 2000 Tom Weingarten - Copyright (C) 2013 Michael Zucchi - - DuskZ is free software; you can redistribute it and/or - modify it under the terms of the GNU General Public License - as published by the Free Software Foundation; either version 2 - of the License, or (at your option) any later version. - - DuskZ is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with DuskZ; if not, write to the Free Software - Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - \ No newline at end of file diff --git a/DuskServer/build.xml b/DuskServer/build.xml deleted file mode 100644 index c74d44f..0000000 --- a/DuskServer/build.xml +++ /dev/null @@ -1,74 +0,0 @@ - - - - - - - - - - - Builds, tests, and runs the project DuskServer. - - - diff --git a/DuskServer/manifest.mf b/DuskServer/manifest.mf deleted file mode 100644 index 328e8e5..0000000 --- a/DuskServer/manifest.mf +++ /dev/null @@ -1,3 +0,0 @@ -Manifest-Version: 1.0 -X-COMMENT: Main-Class will be added automatically by build - diff --git a/DuskServer/nbproject/build-impl.xml b/DuskServer/nbproject/build-impl.xml deleted file mode 100644 index d26c819..0000000 --- a/DuskServer/nbproject/build-impl.xml +++ /dev/null @@ -1,1425 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Must set src.dir - Must set test.src.dir - Must set build.dir - Must set dist.dir - Must set build.classes.dir - Must set dist.javadoc.dir - Must set build.test.classes.dir - Must set build.test.results.dir - Must set build.classes.excludes - Must set dist.jar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Must set javac.includes - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - No tests executed. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Must set JVM to use for profiling in profiler.info.jvm - Must set profiler agent JVM arguments in profiler.info.jvmargs.agent - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Must select some files in the IDE or set javac.includes - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - To run this application from the command line without Ant, try: - - - - - - - java -cp "${run.classpath.with.dist.jar}" ${main.class} - - - - - - - - - - - - - - - - - - - - - - - - - To run this application from the command line without Ant, try: - - java -jar "${dist.jar.resolved}" - - - - - - - - - - - - - - - - - - - - - - - - - Must select one file in the IDE or set run.class - - - - Must select one file in the IDE or set run.class - - - - - - - - - - - - - - - - - - - - - - - Must select one file in the IDE or set debug.class - - - - - Must select one file in the IDE or set debug.class - - - - - Must set fix.includes - - - - - - - - - - This target only works when run from inside the NetBeans IDE. - - - - - - - - - Must select one file in the IDE or set profile.class - This target only works when run from inside the NetBeans IDE. - - - - - - - - - This target only works when run from inside the NetBeans IDE. - - - - - - - - - - - - - This target only works when run from inside the NetBeans IDE. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Must select one file in the IDE or set run.class - - - - - - Must select some files in the IDE or set test.includes - - - - - Must select one file in the IDE or set run.class - - - - - Must select one file in the IDE or set applet.url - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Must select some files in the IDE or set javac.includes - - - - - - - - - - - - - - - - - - - - Some tests failed; see details above. - - - - - - - - - Must select some files in the IDE or set test.includes - - - - Some tests failed; see details above. - - - - Must select some files in the IDE or set test.class - Must select some method in the IDE or set test.method - - - - Some tests failed; see details above. - - - - - Must select one file in the IDE or set test.class - - - - Must select one file in the IDE or set test.class - Must select some method in the IDE or set test.method - - - - - - - - - - - - - - Must select one file in the IDE or set applet.url - - - - - - - - - Must select one file in the IDE or set applet.url - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/DuskServer/nbproject/genfiles.properties b/DuskServer/nbproject/genfiles.properties deleted file mode 100644 index 0cb0205..0000000 --- a/DuskServer/nbproject/genfiles.properties +++ /dev/null @@ -1,8 +0,0 @@ -build.xml.data.CRC32=d4396c02 -build.xml.script.CRC32=b70baa11 -build.xml.stylesheet.CRC32=28e38971@1.56.1.46 -# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml. -# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you. -nbproject/build-impl.xml.data.CRC32=d4396c02 -nbproject/build-impl.xml.script.CRC32=6bdc7120 -nbproject/build-impl.xml.stylesheet.CRC32=c6d2a60f@1.56.1.46 diff --git a/DuskServer/nbproject/project.properties b/DuskServer/nbproject/project.properties deleted file mode 100644 index 347a74d..0000000 --- a/DuskServer/nbproject/project.properties +++ /dev/null @@ -1,77 +0,0 @@ -application.title=DuskServer -application.vendor=Michael Zucchi -endorsed.classpath= -project.license=dusk -annotation.processing.enabled=true -annotation.processing.enabled.in.editor=false -annotation.processing.processors.list= -annotation.processing.run.all.processors=true -annotation.processing.source.output=${build.generated.sources.dir}/ap-source-output -build.classes.dir=${build.dir}/classes -build.classes.excludes=**/*.java,**/*.form -# This directory is removed when the project is cleaned: -build.dir=build -build.generated.dir=${build.dir}/generated -build.generated.sources.dir=${build.dir}/generated-sources -# Only compile against the classpath explicitly listed here: -build.sysclasspath=ignore -build.test.classes.dir=${build.dir}/test/classes -build.test.results.dir=${build.dir}/test/results -# Uncomment to specify the preferred debugger connection transport: -#debug.transport=dt_socket -debug.classpath=\ - ${run.classpath} -debug.test.classpath=\ - ${run.test.classpath} -# This directory is removed when the project is cleaned: -dist.dir=dist -dist.jar=${dist.dir}/DuskServer.jar -dist.javadoc.dir=${dist.dir}/javadoc -excludes= -includes=** -jar.compress=false -javac.classpath=\ - ${reference.DuskCommon.jar} -# Space-separated list of extra javac options -javac.compilerargs= -javac.deprecation=false -javac.processorpath=\ - ${javac.classpath} -javac.source=1.7 -javac.target=1.7 -javac.test.classpath=\ - ${javac.classpath}:\ - ${build.classes.dir} -javac.test.processorpath=\ - ${javac.test.classpath} -javadoc.additionalparam= -javadoc.author=false -javadoc.encoding=${source.encoding} -javadoc.noindex=false -javadoc.nonavbar=false -javadoc.notree=false -javadoc.private=false -javadoc.splitindex=true -javadoc.use=true -javadoc.version=false -javadoc.windowtitle= -main.class=duskz.server.DuskServer -manifest.file=manifest.mf -meta.inf.dir=${src.dir}/META-INF -mkdist.disabled=false -platform.active=default_platform -project.DuskCommon=../DuskCommon -reference.DuskCommon.jar=${project.DuskCommon}/dist/DuskCommon.jar -run.classpath=\ - ${javac.classpath}:\ - ${build.classes.dir} -# Space-separated list of JVM arguments used when running the project. -# You may also define separate properties like run-sys-prop.name=value instead of -Dname=value. -# To set system properties for unit tests define test-sys-prop.name=value: -run.jvmargs= -run.test.classpath=\ - ${javac.test.classpath}:\ - ${build.test.classes.dir} -source.encoding=UTF-8 -src.dir=src -test.src.dir=test diff --git a/DuskServer/nbproject/project.xml b/DuskServer/nbproject/project.xml deleted file mode 100644 index 030b1fb..0000000 --- a/DuskServer/nbproject/project.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - org.netbeans.modules.java.j2seproject - - - DuskServer - - - - - - - - - - DuskCommon - jar - - jar - clean - jar - - - - diff --git a/DuskZ/README b/DuskZ/README deleted file mode 100644 index b7bcf18..0000000 --- a/DuskZ/README +++ /dev/null @@ -1,86 +0,0 @@ - -CODE STATUS September 2013 --------------------------- - -As most of the 'smarts' in Dusk happens in the server the client is -fairly simple - it basically handles some local input and rendering -the tiles. - -This should be feature complete against the latest DuskServer, but -needs some aesthetic and usability work. - -Original README follows. - -README ------- -This is the client frontend to DuskZ, it uses JavaFX. It connects -to the DuskServer togehter and requires some local data installed. - -It is a fork and major overhaul of the Dusk 2.7.3 source code, released -circa 2000. - -Currently a recent Oracle JRE is required to execute this application. - -This is currently in an alpha state. - - ... to be completed ... - -INSTALLATION ------------- - ... to be completed ... - -RUNNING -------- - ... to be completed ... - -LICENSE -------- - DuskZ is free software, see COPYING for your rights. - - Some files are under other compatible licenses. - - Copyright (C) 2000 Tom Weingarten - Copyright (C) 2013 Michael Zucchi - - DuskZ is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - DuskZ is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with DuskZ. If not, see . - - - DuskZ also uses the ListSpinner widget from JFXExtras. - -/** - * Copyright (c) 2011, JFXtras - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of the nor the - * names of its contributors may be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ \ No newline at end of file diff --git a/DuskZ/build.xml b/DuskZ/build.xml deleted file mode 100644 index 0d44bda..0000000 --- a/DuskZ/build.xml +++ /dev/null @@ -1,53 +0,0 @@ - - Builds, tests, and runs the project DuskZ. - - - diff --git a/DuskZ/manifest.mf b/DuskZ/manifest.mf deleted file mode 100644 index 328e8e5..0000000 --- a/DuskZ/manifest.mf +++ /dev/null @@ -1,3 +0,0 @@ -Manifest-Version: 1.0 -X-COMMENT: Main-Class will be added automatically by build - diff --git a/DuskZ/nbproject/build-impl.xml b/DuskZ/nbproject/build-impl.xml deleted file mode 100644 index 467fa6e..0000000 --- a/DuskZ/nbproject/build-impl.xml +++ /dev/null @@ -1,1459 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Must set platform.home - Must set platform.bootcp - Must set platform.java - Must set platform.javac - - The J2SE Platform is not correctly set up. - Your active platform is: ${platform.active}, but the corresponding property "platforms.${platform.active}.home" is not found in the project's properties files. - Either open the project in the IDE and setup the Platform with the same name or add it manually. - For example like this: - ant -Duser.properties.file=<path_to_property_file> jar (where you put the property "platforms.${platform.active}.home" in a .properties file) - or ant -Dplatforms.${platform.active}.home=<path_to_JDK_home> jar (where no properties file is used) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Must set src.dir - Must set test.src.dir - Must set build.dir - Must set dist.dir - Must set build.classes.dir - Must set dist.javadoc.dir - Must set build.test.classes.dir - Must set build.test.results.dir - Must set build.classes.excludes - Must set dist.jar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Must set javac.includes - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - No tests executed. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Must set JVM to use for profiling in profiler.info.jvm - Must set profiler agent JVM arguments in profiler.info.jvmargs.agent - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Must select some files in the IDE or set javac.includes - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - To run this application from the command line without Ant, try: - - - - - - - ${platform.java} -cp "${run.classpath.with.dist.jar}" ${main.class} - - - - - - - - - - - - - - - - - - - - - - - - - To run this application from the command line without Ant, try: - - ${platform.java} -jar "${dist.jar.resolved}" - - - - - - - - - - - - - - - - - - - - - - - - - Must select one file in the IDE or set run.class - - - - Must select one file in the IDE or set run.class - - - - - - - - - - - - - - - - - - - - - - - Must select one file in the IDE or set debug.class - - - - - Must select one file in the IDE or set debug.class - - - - - Must set fix.includes - - - - - - - - - - This target only works when run from inside the NetBeans IDE. - - - - - - - - - Must select one file in the IDE or set profile.class - This target only works when run from inside the NetBeans IDE. - - - - - - - - - This target only works when run from inside the NetBeans IDE. - - - - - - - - - - - - - This target only works when run from inside the NetBeans IDE. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Must select one file in the IDE or set run.class - - - - - - Must select some files in the IDE or set test.includes - - - - - Must select one file in the IDE or set run.class - - - - - Must select one file in the IDE or set applet.url - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Must select some files in the IDE or set javac.includes - - - - - - - - - - - - - - - - - - - - Some tests failed; see details above. - - - - - - - - - Must select some files in the IDE or set test.includes - - - - Some tests failed; see details above. - - - - Must select some files in the IDE or set test.class - Must select some method in the IDE or set test.method - - - - Some tests failed; see details above. - - - - - Must select one file in the IDE or set test.class - - - - Must select one file in the IDE or set test.class - Must select some method in the IDE or set test.method - - - - - - - - - - - - - - Must select one file in the IDE or set applet.url - - - - - - - - - Must select one file in the IDE or set applet.url - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/DuskZ/nbproject/configs/Run_as_WebStart.properties b/DuskZ/nbproject/configs/Run_as_WebStart.properties deleted file mode 100644 index 670fff0..0000000 --- a/DuskZ/nbproject/configs/Run_as_WebStart.properties +++ /dev/null @@ -1,2 +0,0 @@ -# Do not modify this property in this configuration. It can be re-generated. -$label=Run as WebStart diff --git a/DuskZ/nbproject/configs/Run_in_Browser.properties b/DuskZ/nbproject/configs/Run_in_Browser.properties deleted file mode 100644 index f2a5a65..0000000 --- a/DuskZ/nbproject/configs/Run_in_Browser.properties +++ /dev/null @@ -1,2 +0,0 @@ -# Do not modify this property in this configuration. It can be re-generated. -$label=Run in Browser diff --git a/DuskZ/nbproject/genfiles.properties b/DuskZ/nbproject/genfiles.properties deleted file mode 100644 index a6ee1b3..0000000 --- a/DuskZ/nbproject/genfiles.properties +++ /dev/null @@ -1,8 +0,0 @@ -build.xml.data.CRC32=be5f771c -build.xml.script.CRC32=d9af4be0 -build.xml.stylesheet.CRC32=28e38971@1.56.1.46 -# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml. -# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you. -nbproject/build-impl.xml.data.CRC32=46d0094e -nbproject/build-impl.xml.script.CRC32=21080c51 -nbproject/build-impl.xml.stylesheet.CRC32=c6d2a60f@1.56.1.46 diff --git a/DuskZ/nbproject/jfx-impl.xml b/DuskZ/nbproject/jfx-impl.xml deleted file mode 100644 index 43adba7..0000000 --- a/DuskZ/nbproject/jfx-impl.xml +++ /dev/null @@ -1,3218 +0,0 @@ - - - - - JavaFX-specific Ant calls - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ${cssfileslist} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/DuskZ/nbproject/project.properties b/DuskZ/nbproject/project.properties deleted file mode 100644 index 0c0a31d..0000000 --- a/DuskZ/nbproject/project.properties +++ /dev/null @@ -1,120 +0,0 @@ -project.license=dusk3 -annotation.processing.enabled=true -annotation.processing.enabled.in.editor=false -annotation.processing.processors.list= -annotation.processing.run.all.processors=true -annotation.processing.source.output=${build.generated.sources.dir}/ap-source-output -application.title=DuskZ -application.vendor=notzed -build.classes.dir=${build.dir}/classes -build.classes.excludes=**/*.java,**/*.form -# This directory is removed when the project is cleaned: -build.dir=build -build.generated.dir=${build.dir}/generated -build.generated.sources.dir=${build.dir}/generated-sources -# Only compile against the classpath explicitly listed here: -build.sysclasspath=ignore -build.test.classes.dir=${build.dir}/test/classes -build.test.results.dir=${build.dir}/test/results -compile.on.save=true -compile.on.save.unsupported.javafx=true -# Uncomment to specify the preferred debugger connection transport: -#debug.transport=dt_socket -debug.classpath=\ - ${run.classpath} -debug.test.classpath=\ - ${run.test.classpath} -# This directory is removed when the project is cleaned: -dist.dir=dist -dist.jar=${dist.dir}/DuskZ.jar -dist.javadoc.dir=${dist.dir}/javadoc -endorsed.classpath= -excludes= -includes=** -# Non-JavaFX jar file creation is deactivated in JavaFX 2.0+ projects -jar.archive.disabled=true -jar.compress=false -javac.classpath=\ - ${javafx.runtime}/lib/jfxrt.jar:\ - ${javafx.runtime}/lib/deploy.jar:\ - ${javafx.runtime}/lib/javaws.jar:\ - ${javafx.runtime}/lib/plugin.jar:\ - ${reference.DuskCommon.jar} -# Space-separated list of extra javac options -javac.compilerargs= -javac.deprecation=false -javac.processorpath=\ - ${javac.classpath} -javac.source=1.7 -javac.target=1.7 -javac.test.classpath=\ - ${javac.classpath}:\ - ${build.classes.dir} -javac.test.processorpath=\ - ${javac.test.classpath} -javadoc.additionalparam= -javadoc.author=false -javadoc.encoding=${source.encoding} -javadoc.noindex=false -javadoc.nonavbar=false -javadoc.notree=false -javadoc.private=false -javadoc.splitindex=true -javadoc.use=true -javadoc.version=false -javadoc.windowtitle= -javafx.binarycss=false -javafx.deploy.adddesktopshortcut=false -javafx.deploy.addstartmenushortcut=false -javafx.deploy.allowoffline=true -# If true, application update mode is set to 'background', if false, update mode is set to 'eager' -javafx.deploy.backgroundupdate=false -javafx.deploy.embedJNLP=true -javafx.deploy.includeDT=true -javafx.deploy.installpermanently=false -javafx.deploy.permissionselevated=false -# Set true to prevent creation of temporary copy of deployment artifacts before each run (disables concurrent runs) -javafx.disable.concurrent.runs=false -# Set true to enable multiple concurrent runs of the same WebStart or Run-in-Browser project -javafx.enable.concurrent.external.runs=false -# This is a JavaFX project -javafx.enabled=true -javafx.fallback.class=com.javafx.main.NoJavaFXFallback -# Main class for JavaFX -javafx.main.class=duskz.client.fx.DuskFX -javafx.native.bundling.enabled=false -javafx.native.bundling.type=none -javafx.preloader.class= -# This project does not use Preloader -javafx.preloader.enabled=false -javafx.preloader.jar.filename= -javafx.preloader.jar.path= -javafx.preloader.project.path= -javafx.preloader.type=none -# Set true for GlassFish only. Rebases manifest classpaths of JARs in lib dir. Not usable with signed JARs. -javafx.rebase.libs=false -javafx.run.height=600 -javafx.run.width=800 -javafx.runtime=${platforms.Default_JavaFX_Platform.javafx.runtime.home} -javafx.sdk=${platforms.Default_JavaFX_Platform.javafx.sdk.home} -javafx.signing.enabled=false -javafx.signing.type=notsigned -# Pre-JavaFX 2.0 WebStart is deactivated in JavaFX 2.0+ projects -jnlp.enabled=false -# Main class for Java launcher -main.class=com.javafx.main.Main -manifest.file=manifest.mf -meta.inf.dir=${src.dir}/META-INF -mkdist.disabled=false -platform.active=Default_JavaFX_Platform -project.DuskCommon=../DuskCommon -reference.DuskCommon.jar=${project.DuskCommon}/dist/DuskCommon.jar -run.classpath=\ - ${dist.jar}:\ - ${javac.classpath} -run.test.classpath=\ - ${javac.test.classpath}:\ - ${build.test.classes.dir} -source.encoding=UTF-8 -src.dir=src -test.src.dir=test diff --git a/DuskZ/nbproject/project.xml b/DuskZ/nbproject/project.xml deleted file mode 100644 index 7782e6a..0000000 --- a/DuskZ/nbproject/project.xml +++ /dev/null @@ -1,39 +0,0 @@ - - - org.netbeans.modules.java.j2seproject - - - - - - - - - - - - - - - - DuskZ - - - - - - - - - - - DuskCommon - jar - - jar - clean - jar - - - - diff --git a/Makefile b/Makefile index bd70261..9488d4e 100644 --- a/Makefile +++ b/Makefile @@ -1,19 +1,22 @@ -# Temporary makefile +dist_VERSION=0.1.99 +dist_NAME=duskz +dist_EXTRA= -SUBDIRS=DuskCommon DuskServer DuskZ -JAVA_HOME=/usr/local/jdk -JAVAFX_HOME=/usr/local/javafx-sdk -ANT=/usr/local/netbeans/extide/ant/bin/ant +include config.make -JAVAC=$(JAVA_HOME)/bin/javac -JAVA=$(JAVA_HOME)/bin/java +java_MODULES = duskz.common duskz.client duskz.server -maven_central_JARS = \ - jakarta.xml.bind:jakarta.xml.bind-api:4.0.0 \ - jakarta.activation:jakarta.activation-api:2.1.1 \ - com.sun.xml.bind:jaxb-impl:4.0.1 \ - com.sun.xml.bind:jaxb-core:4.0.2 +duskz.client_JDEPMOD = duskz.common +duskz.server_JDEPMOD = duskz.common + +include java.make + +maven_central_JARS = \ + jakarta.xml.bind:jakarta.xml.bind-api:4.0.0 \ + jakarta.activation:jakarta.activation-api:2.1.1 \ + com.sun.xml.bind:jaxb-impl:4.0.1 \ + com.sun.xml.bind:jaxb-core:4.0.2 # two possible javascript engines maven_central_JARS += \ @@ -28,51 +31,20 @@ maven_central_JARS += \ # org.mozilla:rhino:1.7.14 \ # org.mozilla:rhino-engine:1.7.14 -javafx_LIBS=$(patsubst %,$(JAVAFX_HOME)/lib/%.jar,javafx.base javafx.controls javafx.graphics) -server_LIBS=$(strip $(foreach lib,$(maven_central_JARS),\ - .lib/$(word 2,$(subst :, ,$(lib)))-$(word 3,$(subst :, ,$(lib))).jar)) - -client_LIBS=$(javafx_LIBS) -tilez_LIBS=$(strip $(foreach lib,$(maven_central_JARS),\ - .lib/$(word 2,$(subst :, ,$(lib)))-$(word 3,$(subst :, ,$(lib))).jar) \ - DuskServer/build/classes \ - DuskZ/build/classes \ - $(javafx_LIBS)) - -E:= -S:=$(E) $(E) - -all: - $(JAVAC) -g -d DuskCommon/build/classes \ - $$(find DuskCommon/src -name '*.java') - $(JAVAC) -g -d DuskServer/build/classes \ - -cp $(subst $(S),:,$(server_LIBS) DuskCommon/build/classes) \ - $$(find DuskServer/src -name '*.java') - $(JAVAC) -g -d DuskZ/build/classes \ - -cp $(subst $(S),:,$(client_LIBS) DuskCommon/build/classes) \ - $$(find DuskZ/src -name '*.java') - -tilez: - $(JAVAC) -g -d TileZ/build/classes \ - -cp $(subst $(S),:,$(tilez_LIBS)) \ - $$(find TileZ/src -name '*.java') - -clean: - set -e ; for d in $(SUBDIRS); do \ - rm -rf "$$d/build" ; \ - done +include maven.make -run-server: +run-server-old: duskz.server + cd game-2.7.3 && \ $(JAVA) \ - -cp $(subst $(S),:,$(server_LIBS) DuskServer/build/classes DuskCommon/build/classes) \ - duskz.server.entityz.GameServer game + --module-path $(JAVAFX_HOME)/lib:../.lib:../bin/$(TARGET)/lib \ + -m duskz.server/duskz.server.DuskServer -run-client: +run-server: duskz.server $(JAVA) \ - --module-path $(JAVAFX_HOME)/lib \ - --add-modules javafx.graphics,javafx.controls \ - -cp $(subst $(S),:,DuskZ/build/classes DuskCommon/build/classes DuskZ/src) \ - duskz.client.fx.DuskFX - + --module-path $(JAVAFX_HOME)/lib:../.lib:../bin/$(TARGET)/lib \ + -m duskz.server/duskz.server.entityz.GameServer game -include maven.make +run-client: duskz.client + $(JAVA) \ + $(if $(JAVAMODPATH),--module-path $(subst $(S),:,$(JAVAMODPATH))) \ + -m duskz.client/duskz.client.fx.DuskFX diff --git a/README b/README index 6140755..9de326d 100644 --- a/README +++ b/README @@ -1,28 +1,103 @@ -DuskRPG with JavaFX client +CODE STATUS Feburary 2023 +------------------------- + +Well I can't believe it's been 10 years ... but Xyphoid asked me if i +still had the source around so i dug it out and did a bit of work to +make it build with the latest OpenJDK and JavaFX. I also decided to +modularise it, it wasn't much work and it simplifies building, +particulalry inside Netbeans. + +This version builds with OpenJDK 19, JavaFX 19, and Netbeans 17, +although it should work with earlier versions (OpenJDK 11 or 17 +perhaps). + +This branch is before the berkeleydb work although that was never +implemented anyway and isn't hard to merge in. + +CODE STATUS September 2013 -------------------------- -This updates the code to build and run with OpenJDK 19 and JavaFX 19 -using the existing file structure. This is a placeholder before -converting to a modularised project. +After a very active development period the work simply stopped - so it +is in a bit of a half-way state as you'd imagine. Other time +pressures and interests meant I haven't had time to work on this for +months but I hope to again one day in some shape or form. + +Essentially the code in duskz/server and duskz/server/entity is the +original Dusk code which has been refactored a bit (badly), updated to +newer Java and a new protocol (I think), but more or less shares the +original features and data format. It's basically a dead branch. + +The code in dusk/server/entityz is mostly a complete re-write of the +object class hierarchy, data i/o, map handling and a few other things. +Unfortunately as it was in active development when it stopped it too +isn't entirely in a good state either. + +I think the object heirarchy is pretty good, and the script system was +"upgraded" to javascript but there is a ton of work left to make it +usable. In hindsight i should've gone straight to a database +(berkeleydb) backend as too much of the entity code is dealing with +i/o. + +INTRODUCTION +------------ + +This is a fork and major overhaul of the Dusk 2.7.3 source code, +released circa 2000. The main changes are updating for 20 years of +Java progress, a new binary network protocol, and a (rudimentary) +JavaFX client. + +A compatible game is required - each server implementation uses +slightly different game formats. -Info ----- +This is currently in an alpha state. -Only a rudimentary makefile is provided. + ... to be completed ... -First: +BUIDING +------- + +First get the 3rd party libraries from maven: $ make maven-init -$ make all -This downloads maven artifacts required and then compiles everything, -maven-init only needs to be run once. +Then build everything: + +$ make + +TODO: make a jlink target +TODO: Netbeans + +INSTALLATION +------------ + +TODO: depends on jlink thing +TODO: where to put game files + +RUNNING +------- + +See the Makefile targets run-server, run-server-old, and run-client. + +LICENSE +------- + DuskZ is free software, see COPYING for your rights. + + Some files are under other compatible licenses. -$ make run-server + Copyright (C) 2000 Tom Weingarten + Copyright (C) 2013 Michael Zucchi -Start the server. A compatible game must be installed in './game'. + DuskZ is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. -$ make run-client + DuskZ is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. -Run the client. Requires client data files. + You should have received a copy of the GNU General Public License + along with DuskZ; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. diff --git a/DuskServer/TODO b/TODO similarity index 100% rename from DuskServer/TODO rename to TODO diff --git a/TileZ/COPYING b/TileZ/COPYING deleted file mode 100644 index 94a9ed0..0000000 --- a/TileZ/COPYING +++ /dev/null @@ -1,674 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU General Public License is a free, copyleft license for -software and other kinds of works. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -the GNU General Public License is intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. We, the Free Software Foundation, use the -GNU General Public License for most of our software; it applies also to -any other work released this way by its authors. You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - To protect your rights, we need to prevent others from denying you -these rights or asking you to surrender the rights. Therefore, you have -certain responsibilities if you distribute copies of the software, or if -you modify it: responsibilities to respect the freedom of others. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must pass on to the recipients the same -freedoms that you received. You must make sure that they, too, receive -or can get the source code. And you must show them these terms so they -know their rights. - - Developers that use the GNU GPL protect your rights with two steps: -(1) assert copyright on the software, and (2) offer you this License -giving you legal permission to copy, distribute and/or modify it. - - For the developers' and authors' protection, the GPL clearly explains -that there is no warranty for this free software. For both users' and -authors' sake, the GPL requires that modified versions be marked as -changed, so that their problems will not be attributed erroneously to -authors of previous versions. - - Some devices are designed to deny users access to install or run -modified versions of the software inside them, although the manufacturer -can do so. This is fundamentally incompatible with the aim of -protecting users' freedom to change the software. The systematic -pattern of such abuse occurs in the area of products for individuals to -use, which is precisely where it is most unacceptable. Therefore, we -have designed this version of the GPL to prohibit the practice for those -products. If such problems arise substantially in other domains, we -stand ready to extend this provision to those domains in future versions -of the GPL, as needed to protect the freedom of users. - - Finally, every program is threatened constantly by software patents. -States should not allow patents to restrict development and use of -software on general-purpose computers, but in those that do, we wish to -avoid the special danger that patents applied to a free program could -make it effectively proprietary. To prevent this, the GPL assures that -patents cannot be used to render the program non-free. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Use with the GNU Affero General Public License. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU Affero General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the special requirements of the GNU Affero General Public License, -section 13, concerning interaction through a network will apply to the -combination as such. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . - -Also add information on how to contact you by electronic and paper mail. - - If the program does terminal interaction, make it output a short -notice like this when it starts in an interactive mode: - - Copyright (C) - This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, your program's commands -might be different; for a GUI interface, you would use an "about box". - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU GPL, see -. - - The GNU General Public License does not permit incorporating your program -into proprietary programs. If your program is a subroutine library, you -may consider it more useful to permit linking proprietary applications with -the library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. But first, please read -. diff --git a/TileZ/README b/TileZ/README deleted file mode 100644 index f36093f..0000000 --- a/TileZ/README +++ /dev/null @@ -1,16 +0,0 @@ - -README ------- - -This is pre-alpha work-in-progress map editor for DuskZ using JavaFX. - -In it's present state it allows for loading of a Tiled map and cross -referencing the content of an 'old' Dusk game with a 'new' DuskZ game -(i.e. scripts so on). - -At the moment it is hardcoded to data I only have locally so isn't -much use to anyone else. - -I can't even remember if i had intented to keep working on or or just -use it as a transition tool. There is very little code here at any -rate and most of it was a JavaFX learning exercise. diff --git a/TileZ/build.xml b/TileZ/build.xml deleted file mode 100644 index 7364f6a..0000000 --- a/TileZ/build.xml +++ /dev/null @@ -1,53 +0,0 @@ - - Builds, tests, and runs the project TileZ. - - - diff --git a/TileZ/manifest.mf b/TileZ/manifest.mf deleted file mode 100644 index 328e8e5..0000000 --- a/TileZ/manifest.mf +++ /dev/null @@ -1,3 +0,0 @@ -Manifest-Version: 1.0 -X-COMMENT: Main-Class will be added automatically by build - diff --git a/TileZ/nbproject/build-impl.xml b/TileZ/nbproject/build-impl.xml deleted file mode 100644 index be7416c..0000000 --- a/TileZ/nbproject/build-impl.xml +++ /dev/null @@ -1,1473 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Must set platform.home - Must set platform.bootcp - Must set platform.java - Must set platform.javac - - The J2SE Platform is not correctly set up. - Your active platform is: ${platform.active}, but the corresponding property "platforms.${platform.active}.home" is not found in the project's properties files. - Either open the project in the IDE and setup the Platform with the same name or add it manually. - For example like this: - ant -Duser.properties.file=<path_to_property_file> jar (where you put the property "platforms.${platform.active}.home" in a .properties file) - or ant -Dplatforms.${platform.active}.home=<path_to_JDK_home> jar (where no properties file is used) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Must set src.dir - Must set test.src.dir - Must set build.dir - Must set dist.dir - Must set build.classes.dir - Must set dist.javadoc.dir - Must set build.test.classes.dir - Must set build.test.results.dir - Must set build.classes.excludes - Must set dist.jar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Must set javac.includes - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - No tests executed. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Must set JVM to use for profiling in profiler.info.jvm - Must set profiler agent JVM arguments in profiler.info.jvmargs.agent - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Must select some files in the IDE or set javac.includes - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - To run this application from the command line without Ant, try: - - - - - - - ${platform.java} -cp "${run.classpath.with.dist.jar}" ${main.class} - - - - - - - - - - - - - - - - - - - - - - - - - To run this application from the command line without Ant, try: - - ${platform.java} -jar "${dist.jar.resolved}" - - - - - - - - - - - - - - - - - - - - - - - - - Must select one file in the IDE or set run.class - - - - Must select one file in the IDE or set run.class - - - - - - - - - - - - - - - - - - - - - - - Must select one file in the IDE or set debug.class - - - - - Must select one file in the IDE or set debug.class - - - - - Must set fix.includes - - - - - - - - - - This target only works when run from inside the NetBeans IDE. - - - - - - - - - Must select one file in the IDE or set profile.class - This target only works when run from inside the NetBeans IDE. - - - - - - - - - This target only works when run from inside the NetBeans IDE. - - - - - - - - - - - - - This target only works when run from inside the NetBeans IDE. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Must select one file in the IDE or set run.class - - - - - - Must select some files in the IDE or set test.includes - - - - - Must select one file in the IDE or set run.class - - - - - Must select one file in the IDE or set applet.url - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Must select some files in the IDE or set javac.includes - - - - - - - - - - - - - - - - - - - - Some tests failed; see details above. - - - - - - - - - Must select some files in the IDE or set test.includes - - - - Some tests failed; see details above. - - - - Must select some files in the IDE or set test.class - Must select some method in the IDE or set test.method - - - - Some tests failed; see details above. - - - - - Must select one file in the IDE or set test.class - - - - Must select one file in the IDE or set test.class - Must select some method in the IDE or set test.method - - - - - - - - - - - - - - Must select one file in the IDE or set applet.url - - - - - - - - - Must select one file in the IDE or set applet.url - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/TileZ/nbproject/configs/Run_as_WebStart.properties b/TileZ/nbproject/configs/Run_as_WebStart.properties deleted file mode 100644 index 670fff0..0000000 --- a/TileZ/nbproject/configs/Run_as_WebStart.properties +++ /dev/null @@ -1,2 +0,0 @@ -# Do not modify this property in this configuration. It can be re-generated. -$label=Run as WebStart diff --git a/TileZ/nbproject/configs/Run_in_Browser.properties b/TileZ/nbproject/configs/Run_in_Browser.properties deleted file mode 100644 index f2a5a65..0000000 --- a/TileZ/nbproject/configs/Run_in_Browser.properties +++ /dev/null @@ -1,2 +0,0 @@ -# Do not modify this property in this configuration. It can be re-generated. -$label=Run in Browser diff --git a/TileZ/nbproject/genfiles.properties b/TileZ/nbproject/genfiles.properties deleted file mode 100644 index 8f8bdbe..0000000 --- a/TileZ/nbproject/genfiles.properties +++ /dev/null @@ -1,8 +0,0 @@ -build.xml.data.CRC32=79945bc4 -build.xml.script.CRC32=80e8c13b -build.xml.stylesheet.CRC32=28e38971@1.56.1.46 -# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml. -# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you. -nbproject/build-impl.xml.data.CRC32=75566cc4 -nbproject/build-impl.xml.script.CRC32=fd7d9148 -nbproject/build-impl.xml.stylesheet.CRC32=c6d2a60f@1.56.1.46 diff --git a/TileZ/nbproject/jfx-impl.xml b/TileZ/nbproject/jfx-impl.xml deleted file mode 100644 index 43adba7..0000000 --- a/TileZ/nbproject/jfx-impl.xml +++ /dev/null @@ -1,3218 +0,0 @@ - - - - - JavaFX-specific Ant calls - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ${cssfileslist} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/TileZ/nbproject/project.properties b/TileZ/nbproject/project.properties deleted file mode 100644 index f73a8d4..0000000 --- a/TileZ/nbproject/project.properties +++ /dev/null @@ -1,123 +0,0 @@ -project.DuskServer=../DuskServer -project.DuskZ=../DuskZ -project.license=gpl30 -annotation.processing.enabled=true -annotation.processing.enabled.in.editor=false -annotation.processing.processors.list= -annotation.processing.run.all.processors=true -annotation.processing.source.output=${build.generated.sources.dir}/ap-source-output -application.title=TileZ -application.vendor=Michael Zucchi -build.classes.dir=${build.dir}/classes -build.classes.excludes=**/*.java,**/*.form -# This directory is removed when the project is cleaned: -build.dir=build -build.generated.dir=${build.dir}/generated -build.generated.sources.dir=${build.dir}/generated-sources -# Only compile against the classpath explicitly listed here: -build.sysclasspath=ignore -build.test.classes.dir=${build.dir}/test/classes -build.test.results.dir=${build.dir}/test/results -compile.on.save=true -compile.on.save.unsupported.javafx=true -# Uncomment to specify the preferred debugger connection transport: -#debug.transport=dt_socket -debug.classpath=\ - ${run.classpath} -debug.test.classpath=\ - ${run.test.classpath} -# This directory is removed when the project is cleaned: -dist.dir=dist -dist.jar=${dist.dir}/TileZ.jar -dist.javadoc.dir=${dist.dir}/javadoc -endorsed.classpath= -excludes= -includes=** -# Non-JavaFX jar file creation is deactivated in JavaFX 2.0+ projects -jar.archive.disabled=true -jar.compress=false -javac.classpath=\ - ${javafx.runtime}/lib/jfxrt.jar:\ - ${javafx.runtime}/lib/deploy.jar:\ - ${javafx.runtime}/lib/javaws.jar:\ - ${javafx.runtime}/lib/plugin.jar:\ - ${reference.DuskServer.jar}:\ - ${reference.DuskZ.jar} -# Space-separated list of extra javac options -javac.compilerargs= -javac.deprecation=false -javac.processorpath=\ - ${javac.classpath} -javac.source=1.7 -javac.target=1.7 -javac.test.classpath=\ - ${javac.classpath}:\ - ${build.classes.dir} -javac.test.processorpath=\ - ${javac.test.classpath} -javadoc.additionalparam= -javadoc.author=false -javadoc.encoding=${source.encoding} -javadoc.noindex=false -javadoc.nonavbar=false -javadoc.notree=false -javadoc.private=false -javadoc.splitindex=true -javadoc.use=true -javadoc.version=false -javadoc.windowtitle= -javafx.binarycss=false -javafx.deploy.adddesktopshortcut=false -javafx.deploy.addstartmenushortcut=false -javafx.deploy.allowoffline=true -# If true, application update mode is set to 'background', if false, update mode is set to 'eager' -javafx.deploy.backgroundupdate=false -javafx.deploy.embedJNLP=true -javafx.deploy.includeDT=true -javafx.deploy.installpermanently=false -javafx.deploy.permissionselevated=false -# Set true to prevent creation of temporary copy of deployment artifacts before each run (disables concurrent runs) -javafx.disable.concurrent.runs=false -# Set true to enable multiple concurrent runs of the same WebStart or Run-in-Browser project -javafx.enable.concurrent.external.runs=false -# This is a JavaFX project -javafx.enabled=true -javafx.fallback.class=com.javafx.main.NoJavaFXFallback -# Main class for JavaFX -javafx.main.class=au.notzed.tilez.TileZ -javafx.native.bundling.enabled=false -javafx.native.bundling.type=none -javafx.preloader.class= -# This project does not use Preloader -javafx.preloader.enabled=false -javafx.preloader.jar.filename= -javafx.preloader.jar.path= -javafx.preloader.project.path= -javafx.preloader.type=none -# Set true for GlassFish only. Rebases manifest classpaths of JARs in lib dir. Not usable with signed JARs. -javafx.rebase.libs=false -javafx.run.height=600 -javafx.run.width=800 -javafx.runtime=${platforms.Default_JavaFX_Platform.javafx.runtime.home} -javafx.sdk=${platforms.Default_JavaFX_Platform.javafx.sdk.home} -javafx.signing.enabled=false -javafx.signing.type=notsigned -# Pre-JavaFX 2.0 WebStart is deactivated in JavaFX 2.0+ projects -jnlp.enabled=false -# Main class for Java launcher -main.class=com.javafx.main.Main -manifest.file=manifest.mf -meta.inf.dir=${src.dir}/META-INF -mkdist.disabled=false -platform.active=Default_JavaFX_Platform -reference.DuskServer.jar=${project.DuskServer}/dist/DuskServer.jar -reference.DuskZ.jar=${project.DuskZ}/dist/DuskZ.jar -run.classpath=\ - ${dist.jar}:\ - ${javac.classpath} -run.test.classpath=\ - ${javac.test.classpath}:\ - ${build.test.classes.dir} -source.encoding=UTF-8 -src.dir=src -test.src.dir=test diff --git a/TileZ/nbproject/project.xml b/TileZ/nbproject/project.xml deleted file mode 100644 index 6b5a0bb..0000000 --- a/TileZ/nbproject/project.xml +++ /dev/null @@ -1,47 +0,0 @@ - - - org.netbeans.modules.java.j2seproject - - - - - - - - - - - - - - - - TileZ - - - - - - - - - - - DuskServer - jar - - jar - clean - jar - - - DuskZ - jar - - jar - clean - jar - - - - diff --git a/config.make.in b/config.make.in new file mode 100644 index 0000000..eed42de --- /dev/null +++ b/config.make.in @@ -0,0 +1,14 @@ + +TARGET ?= linux-amd64 + +JAVA_HOME ?= /usr/local/jdk +JAVAFX_HOME ?= /usr/local/javafx-sdk + +JAVAMODPATH = $(JAVAFX_HOME)/lib .lib bin/$(TARGET)/lib +JAVACFLAGS = --source 19 + +JAVA ?= $(JAVA_HOME)/bin/java +JAVAC ?= $(JAVA_HOME)/bin/javac +JAR ?= $(JAVA_HOME)/bin/jar +JMOD ?= $(JAVA_HOME)/bin/jmod + diff --git a/DuskServer/docs/dusk-script b/docs/dusk-script similarity index 100% rename from DuskServer/docs/dusk-script rename to docs/dusk-script diff --git a/DuskServer/docs/duskz-classes b/docs/duskz-classes similarity index 100% rename from DuskServer/docs/duskz-classes rename to docs/duskz-classes diff --git a/DuskServer/docs/duskz-javascript b/docs/duskz-javascript similarity index 100% rename from DuskServer/docs/duskz-javascript rename to docs/duskz-javascript diff --git a/DuskServer/docs/duskz-multimap b/docs/duskz-multimap similarity index 100% rename from DuskServer/docs/duskz-multimap rename to docs/duskz-multimap diff --git a/DuskServer/docs/duskz-script b/docs/duskz-script similarity index 100% rename from DuskServer/docs/duskz-script rename to docs/duskz-script diff --git a/DuskServer/docs/duskz-state b/docs/duskz-state similarity index 100% rename from DuskServer/docs/duskz-state rename to docs/duskz-state diff --git a/java.make b/java.make new file mode 100644 index 0000000..266b0ac --- /dev/null +++ b/java.make @@ -0,0 +1,425 @@ +# +# Copyright (C) 2019,2022 Michael Zucchi +# +# This is the copyright for java.make +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + +# General purpose modular java makefile that supports native library +# compilation directly. Non-recrusve implementation. +# +# Uses metamake programming with some file conventions to implement +# auto-make-like features. + +# Define modules +# -------------- +# java_MODULES list of java modules to compile. The sources must +# exist in src//classes. Resource files are +# stored in src//classes. Source-code +# generators must exist in src//gen. Native +# libraries must exist in src//jni. + +# native_MODULES list of native-only "modules". + + +# Global variables + +# JAVA_HOME location of jdk. +# JAVAC java compiler to use. Default is 'javac' on the path. +# JAVACFLAGS javac flags applied to all invocations. +# JAR jar command. +# JARFLAGS jar flags +# JMOD jmod command. +# JMODFLAGS jmod flags. +# JAVAFLAGS java flags for run targets + +# Module specific variables + +# _JDEPMOD Lists modules which this one depends on. + +# _JAVACFLAGS Extra module-specific flags for each command. +# _JARFLAGS +# _JMODFLAGS + +# all paths are relative to the root package name + +# _JAVA Java sources. If not set it is found from src//classes/(*.java) +# _RESOURCES .jar resources. If not set it is found from src//classes/(not *.java) +# _JAVA_GENERATED Java generated sources. +# _RESOURCES_GENERATED Java generated sources. + +# Variables for use in fragments + +# gen.make and jni.make can additionally make use of these variables + +# _gendir Location for files used in Java generation process (per project). +# _genjavadir Location where _JAVA_GENERATED .java files will be created (per project). +# _objdir Location for c objects (per target). +# _incdir Location for output includes, .jmod staging. +# _libdir Location for output libraries, .jmod staging. May point to _bindir. +# _bindir Location for output commands, .jmod staging. + +# Define libraries +# ---------------- + +# Each module can define one or more native libraries. + +# These are compiled after the java sources have been compiled as that +# process also generates any native binding headers. + +# _NATIVE_LIBRARIES list of libraries to build. +# library names match System.loadLibrary(). + +# Global variables + +# _LDFLAGS +# _LDLIBS +# _CPPFLAGS +# _CFLAGS +# _CC +# _CXXFLAGS +# _CXX +# SO shared library suffix +# LIB shared library prefix + +# Utility functions +# +# $(call library-path,,) will resolve to the library file name. + +# Per library variables. + +# _SOURCES .c source files for library. Paths are relative to src//native. +# _CXXSOURCES .c source files for library. Paths are relative to src//native. +# _HEADERS header files for install/jmod +# _COMMANDS commands/bin/scripts for install/jmod + +# _LDFLAGS link flags +# _LIBADD extra objects to add to link line +# _LDLIBS link libraries +# _CPPFLAGS c and c++ pre-processor flags. "-Isrc//jni -Ibin/include/" is implicit. +# _CCFLAGS c compiler flags +# _CXXFLAGS c++ compiler flags + +# _DEPENDENCIES A list of other objects on which this library depends before linking. + +# .c and .cc files have dependencies automatically generated + +# Targets +# ------- + +# make gen only generate java sources +# make clean rm -rf bin +# make dist create dist tar in bin/ +# make | make jar make all jars and jmods + +# Outputs +# ------- + +# All intermediate and output files are written to bin/ + +# This layout is enforced by javac +# bin/include// .h files from javac -h +# bin/modules// .class files from javac + +# This layout is convenient for netbeans +# bin/gen//gen/ .c, exe files for generator free use +# bin/gen//classes/ .java files from generator _JAVA_GENERATED + +# Working files +# bin/status/ marker files for makefile + +# bin///lib .so librareies for jmod _LIBRARIES = libname +# bin///obj .o, .d files for library _SOURCES +# bin///include .h files for jmod _HEADERS +# bin///.jmod .jmod module + +# Output files +# bin//lib/ modular jar files and shared libraries for GNU/linux dev +# bin//include/ header files for exported shared libraries +# bin//bin/ shared libraries for microsoft dev +# bin//jmods/ jmod files for 'jlink' use. + +# ###################################################################### + +all_MODULES = $(java_MODULES) $(native_MODULES) + +E:= +S:=$(E) $(E) +SO=$($(TARGET)_SO) +LIB=$($(TARGET)_LIB) + +# Define some useful variables before including fragments +define common_variables= +$1_gendir:=bin/gen/$1/gen +$1_genjavadir:=bin/gen/$1/classes +$1_objdir:=bin/$1/$(TARGET)/obj +$1_incdir:=bin/$1/$(TARGET)/include +$1_libdir:=$$(if $$(filter windows-%,$(TARGET)),bin/$1/$(TARGET)/bin,bin/$1/$(TARGET)/lib) +$1_bindir:=bin/$1/$(TARGET)/bin +endef + +define java_variables= +ifndef $1_JAVA +$1_JAVA := $$(shell cd src/$1/classes && find * -type f -name '*.java') +endif +ifndef $1_RESOURCES +$1_RESOURCES := $$(shell cd src/$1/classes && find * -type f \! -name '*.java') +endif +endef + +java_libdir:=$(if $(filter windows-%,$(TARGET)),bin/$(TARGET)/bin,bin/$(TARGET)/lib) +java_bindir:=bin/$(TARGET)/bin +java_jardir:=bin/$(TARGET)/lib +java_incdir:=bin/$(TARGET)/include +java_jmoddir:=bin/$(TARGET)/jmods + +$(foreach module,$(java_MODULES) $(native_MODULES),$(eval $(call common_variables,$(module)))) +$(foreach module,$(java_MODULES),$(eval $(call java_variables,$(module)))) + +# ###################################################################### + +all: +jar: +gen: + +.PHONY: all clean jar gen $(java_MODULES) dist +clean: + rm -rf bin + +# dist things +dist_TAR = bin/$(dist_NAME)-$(dist_VERSION).tar.gz +dist_FILES = config.make.in java.make Makefile src $(dist_EXTRA) + +# Gen is things that go into the jar (sources and resources) +include $(wildcard $(all_MODULES:%=src/%/gen/gen.make)) +# Native is things that go into the sdk/jmod +include $(wildcard $(all_MODULES:%=src/%/native/native.make)) + +# ###################################################################### + +# create module depencies +# variables: +# _sdk is the target location of an expanded 'sdk' for this module +# it resides in a common location bin// +# _jmod is the target location of a staging area for jmod files +# is resides in a per-module lcoation bin/// +# _java is all the targets that will cause the invocation of javac +# it includes the module source, generated sources, and sentinals for generated sources + +# targets: +# bin/status/.depjava marks all source/generated sources are ready/updated +# bin/status/.depjar all compiled class files and resources are ready/updated +# bin/status/.sdk all files are available in bin/ as if it was an installed image + +define module_vars= +$1_sdk := $(addprefix $(java_bindir)/,$($1_COMMANDS)) $(addprefix $(java_libdir)/,$($1_LIBRARIES)) $($1_NATIVE_LIBRARIES:%=$(java_libdir)/lib%.so) +$1_jmod := $(addprefix $($1_bindir)/,$($1_COMMANDS)) $(addprefix $($1_libdir)/,$($1_LIBRARIES)) $($1_NATIVE_LIBRARIES:%=$($1_libdir)/lib%.so) +$1_java :=$($1_JAVA:%=src/$1/classes/%) $($1_JAVA_GENERATED:%=$($1_genjavadir)/%) +$1_resources:= $($1_RESOURCES:%=src/$1/classes/%) $($1_RESOURCES_GENERATED:%=$($1_genjavadir)/%) +$1_depjava := $($1_API:%=bin/status/$1-%.export) $(patsubst %,bin/status/%.classes, $(filter $($1_JDEPMOD),$(java_MODULES))) + +ifneq ("$$(strip $$($1_java) $$($1_depjava))", "") +bin/status/$1.depjava: $$($1_java) $$($1_depjava) + @install -d $$(@D) + touch $$@ +bin/status/$1.depjar: bin/status/$1.classes $$($1_resources) + @install -d $$(@D) + touch $$@ +bin/status/$1.depmod: bin/status/$1.classes $$($1_resources) $$($1_jmod) + @install -d $$(@D) + touch $$@ +bin/status/$1.sdk: $(java_jardir)/$1.jar +jar: $(java_jardir)/$1.jar +gen: bin/status/$1.depjava +$1 all: $(java_jardir)/$1.jar $(java_jmoddir)/$1.jmod +else +# acutally not sure here? +$1 all: bin/status/$1.sdk +endif + +$1-sdk sdk: bin/status/$1.sdk + +bin/status/$1.sdk: $$($1_sdk) $$($1_jmod) + @install -d $$(@D) + touch $$@ + +endef + +#$(foreach m,$(all_MODULES),$(info $(call module_vars,$m))) +$(foreach m,$(all_MODULES),$(eval $(call module_vars,$m))) + +# ###################################################################### +# notzed.nativez export-api +# ###################################################################### + +define api_targets= +bin/status/$1-$2.export: src/$1/gen/$2.api src/$1/gen/$2.h +bin/status/$1-$2.export: + mkdir -p bin/gen/$1/gen bin/status + $(NATIVEZ_HOME)/bin/export-api \ + -w bin/gen/$1/gen -d bin/gen/$1/classes $($1_APIFLAGS) $($1_$2_APIFLAGS) src/$1/gen/$2.api + touch $$@ + +bin/status/$1-$2.export.d: + @$(NATIVEZ_HOME)/bin/export-api -M -MT "$$(@:.d=) $$@" -MF $$@ \ + -w bin/gen/$1/gen -d bin/gen/$1/classes $($1_APIFLAGS) $($1_$2_APIFLAGS) src/$1/gen/$2.api 2>/dev/null + +$(if $(filter clean dist gen,$(MAKECMDGOALS)),,-include bin/status/$1-$2.export.d) +endef + +$(foreach m,$(all_MODULES),$(foreach a,$($m_API),$(eval $(call api_targets,$m,$a)))) + +# ###################################################################### +# Java +# ###################################################################### + +# Build targets for java modules + +define java_targets= + +# Create (modular) jar +$(java_jardir)/$1.jar: bin/status/$1.depjar + @install -d $$(@D) + $(JAR) cf $$@ \ + $(JARFLAGS) $$($(1)_JARFLAGS) \ + -C bin/modules/$(1) . \ + $(if $($1_RESOURCES),$($1_RESOURCES:%=-C src/$1/classes %)) \ + $(if $($1_RESOURCES_GENERATED),$($1_RESOURCES_GENERATED:%=-C bin/gen/$1/classes %)) + +# Create a jmod +$(java_jmoddir)/$1.jmod: bin/status/$1.depmod + rm -f $$@ + @install -d $$(@D) + $$(JMOD) create \ + $$(JMODFLAGS) $$($(1)_JMODFLAGS) \ + --target-platform $(TARGET) \ + --class-path bin/modules/$(1) \ + $$(if $$(wildcard bin/$(1)/$(TARGET)/include),--header-files bin/$(1)/$(TARGET)/include) \ + $$(if $$(wildcard src/$(1)/legal),--legal-notices src/$(1)/legal) \ + $$(if $$(wildcard bin/$(1)/$(TARGET)/bin),--cmds bin/$(1)/$(TARGET)/bin) \ + $$(if $$(wildcard bin/$(1)/$(TARGET)/lib),--libs bin/$(1)/$(TARGET)/lib) \ + $$@ + +# Create an IDE source zip, paths have to match --module-source-path +$(java_jardir)/$1-sources.zip: bin/status/$1.depjar + @install -d $$(@D) + $(JAR) -c -f $$@ -M \ + $$($1_JAVA:%=-C src/$1/classes %) \ + $$($1_JAVA_GENERATED:%=-C bin/gen/$1/classes %) + +# resources +bin/modules/$1/%: src/$1/classes/% + install -vD $$< $$@ + +# Compile module. +bin/status/$1.classes: bin/status/$1.depjava + @install -d $$(@D) + $(JAVAC) \ + --module-source-path "src/*/classes:bin/gen/*/classes" \ + $(if $(JAVAMODPATH),--module-path $(subst $(S),:,$(JAVAMODPATH))) \ + $(JAVACFLAGS) $($1_JAVACFLAGS) \ + -d bin/modules \ + -m $1 \ + $$($1_JAVA:%=src/$1/classes/%) \ + $$($1_JAVA_GENERATED:%=bin/gen/$1/classes/%) + touch $$@ +endef + +#$(foreach module,$(java_MODULES),$(info $(call java_targets,$(module)))) +$(foreach module,$(java_MODULES),$(eval $(call java_targets,$(module)))) + +# ###################################################################### + +# setup run-* targets +define run_targets= +run-$1/$2: bin/status/$1.sdk $($1_JDEPMOD:%=bin/status/%.sdk) + LD_LIBRARY_PATH=$(FFMPEG_HOME)/lib \ + $(JAVA) \ + $(if $(strip $(JAVAMODPATH) $($1_JAVAMODPATH)),--module-path $(subst $(S),:,$(strip $(JAVAMODPATH) $($1_JAVAMODPATH)))) \ + $(JMAINFLAGS) $($1_JMAINFLAGS) \ + -m $1/$2 \ + $(ARGV) +.PHONY: run-$1/$2 +endef + +#$(foreach module,$(java_MODULES),$(foreach main,$($(module)_JMAIN),$(info $(call run_targets,$(module),$(main))))) +$(foreach module,$(java_MODULES),$(foreach main,$($(module)_JMAIN),$(eval $(call run_targets,$(module),$(main))))) + +# ###################################################################### +# C and c++ native library support +# ###################################################################### + +define native_library= +# Rule for library $$2 in module $$1 +$2_OBJS = $(patsubst %.c, $($1_objdir)/%.o, $($2_SOURCES)) \ + $(patsubst %.cc, $($1_objdir)/%.o, $($2_CXXSOURCES)) +$2_SRCS = $(addprefix src/$1/native/,$($2_SOURCES)) +$2_SO = $($1_libdir)/$(LIB)$2$(SO) + +# Copy anything from staging area for jmods bin/module//* to sdk area bin//* +$(java_libdir)/%: $($(1)_libdir)/% + @install -d $$(@D) + ln -fs $$(abspath $$<) $$@ +$(java_bindir)/%: $($(1)_bindir)/% + @install -d $$(@D) + ln -fs $$(abspath $$<) $$@ +$(java_incdir)/%: $($(1)_incdir)/% + @install -d $$(@D) + ln -fs $$(abspath $$<) $$@ + +$($1_libdir)/$(LIB)$2$(SO): $$($2_OBJS) $($2_LIBADD) $($2_DEPENDENCIES) + @install -d $$(@D) + $($(TARGET)_CC) -o $$@ -shared \ + $($(TARGET)_LDFLAGS) $($2_LDFLAGS) $$($2_OBJS) $($2_LIBADD) $($(TARGET)_LDLIBS) $($2_LDLIBS) + +$($1_objdir)/%.o: src/$1/native/%.c + @install -d $$(@D) + $($(TARGET)_CC) -Isrc/$1/native -Ibin/include/$1 \ + $($(TARGET)_CPPFLAGS) $($2_CPPFLAGS) \ + $($(TARGET)_CFLAGS) $($2_CFLAGS) -c -o $$@ $$< + +$($1_objdir)/%.o: src/$1/native/%.cc + @install -d $$(@D) + $($(TARGET)_CXX) -Isrc/$1/native -Ibin/include/$1 \ + $($(TARGET)_CPPFLAGS) $($2_CPPFLAGS) \ + $($(TARGET)_CXXFLAGS) $($2_CXXFLAGS) -c -o $$@ $$< + +# auto-dependencies for c files +$($1_objdir)/%.d: src/$1/native/%.c + @install -d $$(@D) + @rm -f $$@ + @$($(TARGET)_CC) -MM -MT "$$(@:.d=.o) $$@" -Isrc/$1/jni -Ibin/include/$1 \ + $($(TARGET)_CPPFLAGS) $($2_CPPFLAGS) $$< -o $$@ 2>/dev/null + +# auto-dependencies for c++ files +$($1_objdir)/%.d: src/$1/native/%.cc + @install -d $$(@D) + @rm -f $$@ + @$($(TARGET)_CXX) -MM -MT "$$(@:.d=.o) $$@" -Isrc/$1/jni -Ibin/include/$1 \ + $($(TARGET)_CPPFLAGS) $($2_CPPFLAGS) $$< -o $$@ 2>/dev/null + +$(if $(filter clean dist gen,$(MAKECMDGOALS)),,-include $$($2_OBJS:.o=.d)) +endef + +#$(foreach module,$(all_MODULES),$(foreach library,$($(module)_NATIVE_LIBRARIES),$(info $(call native_library,$(module),$(library))))) +$(foreach module,$(all_MODULES),$(foreach library,$($(module)_NATIVE_LIBRARIES),$(eval $(call native_library,$(module),$(library))))) + +# ###################################################################### + +dist: + @install -d bin + tar cfz bin/$(dist_NAME)-$(dist_VERSION).tar.gz \ + --transform=s,^,$(dist_NAME)-$(dist_VERSION)/, \ + $(dist_FILES) diff --git a/nbproject/build-impl.xml b/nbproject/build-impl.xml new file mode 100644 index 0000000..4e045f8 --- /dev/null +++ b/nbproject/build-impl.xml @@ -0,0 +1,1845 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +package netbeans; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.regex.Pattern; +import java.util.stream.Collectors; +import org.apache.tools.ant.BuildException; +import org.apache.tools.ant.Task; + +public class CoalesceKeyvalue extends Task { + private String property; + + public void setProperty(String property) { + this.property = property; + } + + private String value; + + public void setValue(String value) { + this.value = value; + } + + private String valueSep; + + public void setValueSep(String valueSep) { + this.valueSep = valueSep; + } + + private String entrySep; + + public void setEntrySep(String entrySep) { + this.entrySep = entrySep; + } + + private String multiSep; + + public void setMultiSep(String multiSep) { + this.multiSep = multiSep; + } + + private String outSep; + + public void setOutSep(String outSep) { + this.outSep = outSep; + } + + @Override + public void execute() throws BuildException { + List<String> result = new ArrayList<>(); + Map<String, List<String>> module2Paths = new HashMap<>(); + + for (String entry : value.split(Pattern.quote(entrySep))) { + String[] keyValue = entry.split(Pattern.quote(valueSep), 2); + if (keyValue.length == 1) { + result.add(keyValue[0]); + } else { + module2Paths.computeIfAbsent(keyValue[0], s -> new ArrayList<>()) + .add(keyValue[1].trim()); + } + } + module2Paths.entrySet() + .stream() + .forEach(e -> result.add(e.getKey() + valueSep + e.getValue().stream().collect(Collectors.joining(multiSep)))); + getProject().setProperty(property, result.stream().collect(Collectors.joining(" " + entrySep))); + } + +} + + + + +package netbeans; + +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; +import org.apache.tools.ant.BuildException; +import org.apache.tools.ant.Task; + +public class ModsourceRegexp extends Task { + private String property; + + public void setProperty(String property) { + this.property = property; + } + + private String filePattern; + + public void setFilePattern(String filePattern) { + this.filePattern = filePattern; + } + + private String modsource; + + public void setModsource(String modsource) { + this.modsource = modsource; + } + + private List<String> expandGroup(String grp) { + List<String> exp = new ArrayList<>(); + String item = ""; + int depth = 0; + + for (int i = 0; i < grp.length(); i++) { + char c = grp.charAt(i); + switch (c) { + case '{': + if (depth++ == 0) { + continue; + } + break; + case '}': + if (--depth == 0) { + exp.add(item); + continue; + } + break; + case ',': + if (depth == 1) { + exp.add(item); + item = ""; + continue; + } + default: + break; + } + item = item + c; + } + return exp; + } + + private List<String> pathVariants(String spec) { + return pathVariants(spec, new ArrayList<>()); + } + + private List<String> pathVariants(String spec, List<String> res) { + int start = spec.indexOf('{'); + if (start == -1) { + res.add(spec); + return res; + } + int depth = 1; + int end; + for (end = start + 1; end < spec.length() && depth > 0; end++) { + char c = spec.charAt(end); + switch (c) { + case '{': depth++; break; + case '}': depth--; break; + } + } + String prefix = spec.substring(0, start); + String suffix = spec.substring(end); + expandGroup(spec.substring(start, end)).stream().forEach(item -> { + pathVariants(prefix + item + suffix, res); + }); + return res; + } + + private String toRegexp2(String spec, String filepattern, String separator) { + List<String> prefixes = new ArrayList<>(); + List<String> suffixes = new ArrayList<>(); + pathVariants(spec).forEach(item -> { + suffixes.add(item); + }); + String tail = ""; + String separatorString = separator; + if ("\\".equals(separatorString)) { + separatorString = "\\\\"; + } + if (filepattern != null && !Objects.equals(filepattern, tail)) { + tail = separatorString + filepattern; + } + return "([^" + separatorString +"]+)\\Q" + separator + "\\E(" + suffixes.stream().collect(Collectors.joining("|")) + ")" + tail; + } + + @Override + public void execute() throws BuildException { + getProject().setProperty(property, toRegexp2(modsource, filePattern, getProject().getProperty("file.separator"))); + } + +} + + + + +package netbeans; + +import java.io.File; +import java.util.Arrays; +import org.apache.tools.ant.BuildException; +import org.apache.tools.ant.types.selectors.BaseExtendSelector; + +public class ModuleInfoSelector extends BaseExtendSelector { + + @Override + public boolean isSelected(File basedir, String filename, File file) throws BuildException { + String extension = Arrays.stream(getParameters()) + .filter(p -> "extension".equals(p.getName())) + .map(p -> p.getValue()) + .findAny() + .get(); + return !new File(file, "module-info." + extension).exists(); + } + +} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @{paths} + + + + + + + + + + + + @{paths} + + + + + + + + + + + + + + + + + + + + Must set src.dir + Must set test.src.dir + Must set build.dir + Must set dist.dir + Must set build.modules.dir + Must set dist.javadoc.dir + Must set build.test.modules.dir + Must set build.test.results.dir + Must set build.classes.excludes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must set javac.includes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + No tests executed. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must set JVM to use for profiling in profiler.info.jvm + Must set profiler agent JVM arguments in profiler.info.jvmargs.agent + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must select some files in the IDE or set javac.includes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + No main class specified + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must select one file in the IDE or set run.class + + + + Must select one file in the IDE or set run.class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must select one file in the IDE or set debug.class + + + + + Must select one file in the IDE or set debug.class + + + + + Must set fix.includes + + + + + + + + + + + This target only works when run from inside the NetBeans IDE. + + + + + + + + + Must select one file in the IDE or set profile.class + This target only works when run from inside the NetBeans IDE. + + + + + + + + + This target only works when run from inside the NetBeans IDE. + + + + + + + + + + + + + This target only works when run from inside the NetBeans IDE. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must select one file in the IDE or set run.class + + + + + + Must select some files in the IDE or set test.includes + + + + + Must select one file in the IDE or set run.class + + + + + Must select one file in the IDE or set applet.url + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must select some files in the IDE or set javac.includes + + + + + + + + + + + + + + + + + + + + + + + + + + Some tests failed; see details above. + + + + + + + + + Must select some files in the IDE or set test.includes + + + + Some tests failed; see details above. + + + + Must select some files in the IDE or set test.class + Must select some method in the IDE or set test.method + + + + Some tests failed; see details above. + + + + + Must select one file in the IDE or set test.class + + + + Must select one file in the IDE or set test.class + Must select some method in the IDE or set test.method + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/nbproject/genfiles.properties b/nbproject/genfiles.properties new file mode 100644 index 0000000..8559c1b --- /dev/null +++ b/nbproject/genfiles.properties @@ -0,0 +1,8 @@ +build.xml.data.CRC32=e72b4646 +build.xml.script.CRC32=76b9a1f6 +build.xml.stylesheet.CRC32=32069288@1.21 +# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml. +# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you. +nbproject/build-impl.xml.data.CRC32=e72b4646 +nbproject/build-impl.xml.script.CRC32=09983720 +nbproject/build-impl.xml.stylesheet.CRC32=d1ebcf0f@1.21 diff --git a/nbproject/project.properties b/nbproject/project.properties new file mode 100644 index 0000000..e0d5ce6 --- /dev/null +++ b/nbproject/project.properties @@ -0,0 +1,111 @@ +annotation.processing.enabled=true +annotation.processing.enabled.in.editor=false +annotation.processing.processors.list= +annotation.processing.run.all.processors=true +annotation.processing.source.output=${build.generated.sources.dir}/ap-source-output +application.title=DuskZ +application.vendor=notzed +build.classes.dir=${build.dir}/classes +build.classes.excludes=**/*.java,**/*.form +# This directory is removed when the project is cleaned: +build.dir=build +build.generated.dir=${build.dir}/generated +build.generated.sources.dir=${build.dir}/generated-sources +build.modules.dir=${build.dir}/modules +# Only compile against the classpath explicitly listed here: +build.sysclasspath=ignore +build.test.classes.dir=${build.dir}/test/classes +build.test.modules.dir=${build.dir}/test/modules +build.test.results.dir=${build.dir}/test/results +# Uncomment to specify the preferred debugger connection transport: +#debug.transport=dt_socket +debug.classpath=\ + ${run.classpath} +debug.modulepath=\ + ${run.modulepath} +debug.test.classpath=\ + ${run.test.classpath} +debug.test.modulepath=\ + ${run.test.modulepath} +# Files in build.classes.dir which should be excluded from distribution jar +dist.archive.excludes= +# This directory is removed when the project is cleaned: +dist.dir=dist +dist.javadoc.dir=${dist.dir}/javadoc +dist.jlink.dir=${dist.dir}/jlink +dist.jlink.output=${dist.jlink.dir}/DuskZ +endorsed.classpath= +excludes= +file.reference.DuskZ-.lib=.lib +file.reference.javafx.base.jar=/usr/local/javafx-sdk/lib/javafx.base.jar +file.reference.javafx.controls.jar=/usr/local/javafx-sdk/lib/javafx.controls.jar +file.reference.javafx.graphics.jar=/usr/local/javafx-sdk/lib/javafx.graphics.jar +includes=** +jar.compress=false +javac.classpath= +# Space-separated list of extra javac options +javac.compilerargs= +javac.deprecation=false +javac.external.vm=false +javac.modulepath=\ + ${file.reference.javafx.base.jar}:\ + ${file.reference.javafx.controls.jar}:\ + ${file.reference.javafx.graphics.jar}:\ + ${file.reference.DuskZ-.lib} +javac.processormodulepath= +javac.processorpath=\ + ${javac.classpath} +javac.source=19 +javac.target=19 +javac.test.classpath=\ + ${javac.classpath} +javac.test.modulepath=\ + ${javac.modulepath}:\ + ${build.modules.dir} +javac.test.processorpath=\ + ${javac.test.classpath} +javadoc.additionalparam= +javadoc.author=false +javadoc.encoding=${source.encoding} +javadoc.html5=false +javadoc.noindex=false +javadoc.nonavbar=false +javadoc.notree=false +javadoc.private=false +javadoc.reference.javafx.base.jar=/usr/local/javafx-sdk/javadoc/javafx-base-19.0.2.1-javadoc.jar +javadoc.reference.javafx.controls.jar=/usr/local/javafx-sdk/javadoc/javafx-controls-19.0.2.1-javadoc.jar +javadoc.reference.javafx.graphics.jar=/usr/local/javafx-sdk/javadoc/javafx-graphics-19.0.2.1-javadoc.jar +javadoc.splitindex=true +javadoc.use=true +javadoc.version=false +javadoc.windowtitle= +# The jlink additional root modules to resolve +jlink.additionalmodules= +# The jlink additional command line parameters +jlink.additionalparam= +jlink.launcher=true +jlink.launcher.name=DuskZ +main.class=duskz.client.fx.DuskFX +platform.active=default_platform +project.license=gpl20_notzed +run.classpath= +# Space-separated list of JVM arguments used when running the project. +# You may also define separate properties like run-sys-prop.name=value instead of -Dname=value. +# To set system properties for unit tests define test-sys-prop.name=value: +run.jvmargs= +run.modulepath=\ + ${javac.modulepath}:\ + ${build.modules.dir} +run.test.classpath=\ + ${javac.test.classpath} +run.test.modulepath=\ + ${javac.test.modulepath}:\ + ${build.test.modules.dir} +source.encoding=UTF-8 +source.reference.javafx.base.jar=/usr/local/javafx-sdk/sources/javafx-base-19.0.2.1-sources.jar +source.reference.javafx.controls.jar=/usr/local/javafx-sdk/sources/javafx-controls-19.0.2.1-sources.jar +source.reference.javafx.graphics.jar=/usr/local/javafx-sdk/sources/javafx-graphics-19.0.2.1-sources.jar +src.dir=src +src.dir.path=classes +test.src.dir=src +test.src.dir.path=tests diff --git a/nbproject/project.xml b/nbproject/project.xml new file mode 100644 index 0000000..d65f501 --- /dev/null +++ b/nbproject/project.xml @@ -0,0 +1,15 @@ + + + org.netbeans.modules.java.j2semodule + + + DuskZ + + + + + + + + + diff --git a/DuskZ/src/duskz/client/Bookmarks.java b/src/duskz.client/classes/duskz/client/Bookmarks.java similarity index 100% rename from DuskZ/src/duskz/client/Bookmarks.java rename to src/duskz.client/classes/duskz/client/Bookmarks.java diff --git a/DuskZ/src/duskz/client/ClientMap.java b/src/duskz.client/classes/duskz/client/ClientMap.java similarity index 100% rename from DuskZ/src/duskz/client/ClientMap.java rename to src/duskz.client/classes/duskz/client/ClientMap.java diff --git a/DuskZ/src/duskz/client/DataManager.java b/src/duskz.client/classes/duskz/client/DataManager.java similarity index 100% rename from DuskZ/src/duskz/client/DataManager.java rename to src/duskz.client/classes/duskz/client/DataManager.java diff --git a/DuskZ/src/duskz/client/Direction.java b/src/duskz.client/classes/duskz/client/Direction.java similarity index 100% rename from DuskZ/src/duskz/client/Direction.java rename to src/duskz.client/classes/duskz/client/Direction.java diff --git a/DuskZ/src/duskz/client/Dusk.java b/src/duskz.client/classes/duskz/client/Dusk.java similarity index 100% rename from DuskZ/src/duskz/client/Dusk.java rename to src/duskz.client/classes/duskz/client/Dusk.java diff --git a/DuskZ/src/duskz/client/Entity.java b/src/duskz.client/classes/duskz/client/Entity.java similarity index 100% rename from DuskZ/src/duskz/client/Entity.java rename to src/duskz.client/classes/duskz/client/Entity.java diff --git a/DuskZ/src/duskz/client/Equipment.java b/src/duskz.client/classes/duskz/client/Equipment.java similarity index 100% rename from DuskZ/src/duskz/client/Equipment.java rename to src/duskz.client/classes/duskz/client/Equipment.java diff --git a/DuskZ/src/duskz/client/GUI.java b/src/duskz.client/classes/duskz/client/GUI.java similarity index 100% rename from DuskZ/src/duskz/client/GUI.java rename to src/duskz.client/classes/duskz/client/GUI.java diff --git a/DuskZ/src/duskz/client/Status.java b/src/duskz.client/classes/duskz/client/Status.java similarity index 100% rename from DuskZ/src/duskz/client/Status.java rename to src/duskz.client/classes/duskz/client/Status.java diff --git a/DuskZ/src/duskz/client/fx/DataManagerFX.java b/src/duskz.client/classes/duskz/client/fx/DataManagerFX.java similarity index 100% rename from DuskZ/src/duskz/client/fx/DataManagerFX.java rename to src/duskz.client/classes/duskz/client/fx/DataManagerFX.java diff --git a/DuskZ/src/duskz/client/fx/DuskFX.java b/src/duskz.client/classes/duskz/client/fx/DuskFX.java similarity index 100% rename from DuskZ/src/duskz/client/fx/DuskFX.java rename to src/duskz.client/classes/duskz/client/fx/DuskFX.java diff --git a/DuskZ/src/duskz/client/fx/EquipmentPane.java b/src/duskz.client/classes/duskz/client/fx/EquipmentPane.java similarity index 100% rename from DuskZ/src/duskz/client/fx/EquipmentPane.java rename to src/duskz.client/classes/duskz/client/fx/EquipmentPane.java diff --git a/DuskZ/src/duskz/client/fx/MainFrameFX.java b/src/duskz.client/classes/duskz/client/fx/MainFrameFX.java similarity index 100% rename from DuskZ/src/duskz/client/fx/MainFrameFX.java rename to src/duskz.client/classes/duskz/client/fx/MainFrameFX.java diff --git a/DuskZ/src/duskz/client/fx/TileAnimator.java b/src/duskz.client/classes/duskz/client/fx/TileAnimator.java similarity index 100% rename from DuskZ/src/duskz/client/fx/TileAnimator.java rename to src/duskz.client/classes/duskz/client/fx/TileAnimator.java diff --git a/DuskZ/src/duskz/client/fx/TransactionPane.java b/src/duskz.client/classes/duskz/client/fx/TransactionPane.java similarity index 100% rename from DuskZ/src/duskz/client/fx/TransactionPane.java rename to src/duskz.client/classes/duskz/client/fx/TransactionPane.java diff --git a/DuskZ/src/duskz/client/fx/style.css b/src/duskz.client/classes/duskz/client/fx/style.css similarity index 100% rename from DuskZ/src/duskz/client/fx/style.css rename to src/duskz.client/classes/duskz/client/fx/style.css diff --git a/DuskZ/src/jfxtras/animation/Timer.java b/src/duskz.client/classes/jfxtras/animation/Timer.java similarity index 100% rename from DuskZ/src/jfxtras/animation/Timer.java rename to src/duskz.client/classes/jfxtras/animation/Timer.java diff --git a/DuskZ/src/jfxtras/css/CssMetaDataForSkinProperty.java b/src/duskz.client/classes/jfxtras/css/CssMetaDataForSkinProperty.java similarity index 100% rename from DuskZ/src/jfxtras/css/CssMetaDataForSkinProperty.java rename to src/duskz.client/classes/jfxtras/css/CssMetaDataForSkinProperty.java diff --git a/DuskZ/src/jfxtras/internal/scene/control/skin/ListSpinnerSkin.java b/src/duskz.client/classes/jfxtras/internal/scene/control/skin/ListSpinnerSkin.java similarity index 100% rename from DuskZ/src/jfxtras/internal/scene/control/skin/ListSpinnerSkin.java rename to src/duskz.client/classes/jfxtras/internal/scene/control/skin/ListSpinnerSkin.java diff --git a/DuskZ/src/jfxtras/scene/control/ListSpinner.java b/src/duskz.client/classes/jfxtras/scene/control/ListSpinner.java similarity index 100% rename from DuskZ/src/jfxtras/scene/control/ListSpinner.java rename to src/duskz.client/classes/jfxtras/scene/control/ListSpinner.java diff --git a/DuskZ/src/jfxtras/scene/control/ListSpinnerBigIntegerList.java b/src/duskz.client/classes/jfxtras/scene/control/ListSpinnerBigIntegerList.java similarity index 100% rename from DuskZ/src/jfxtras/scene/control/ListSpinnerBigIntegerList.java rename to src/duskz.client/classes/jfxtras/scene/control/ListSpinnerBigIntegerList.java diff --git a/DuskZ/src/jfxtras/scene/control/ListSpinnerIntegerList.java b/src/duskz.client/classes/jfxtras/scene/control/ListSpinnerIntegerList.java similarity index 100% rename from DuskZ/src/jfxtras/scene/control/ListSpinnerIntegerList.java rename to src/duskz.client/classes/jfxtras/scene/control/ListSpinnerIntegerList.java diff --git a/DuskZ/src/jfxtras/scene/layout/GenericLayoutConstraints.java b/src/duskz.client/classes/jfxtras/scene/layout/GenericLayoutConstraints.java similarity index 100% rename from DuskZ/src/jfxtras/scene/layout/GenericLayoutConstraints.java rename to src/duskz.client/classes/jfxtras/scene/layout/GenericLayoutConstraints.java diff --git a/DuskZ/src/jfxtras/scene/layout/HBox.java b/src/duskz.client/classes/jfxtras/scene/layout/HBox.java similarity index 100% rename from DuskZ/src/jfxtras/scene/layout/HBox.java rename to src/duskz.client/classes/jfxtras/scene/layout/HBox.java diff --git a/DuskZ/src/jfxtras/scene/layout/VBox.java b/src/duskz.client/classes/jfxtras/scene/layout/VBox.java similarity index 100% rename from DuskZ/src/jfxtras/scene/layout/VBox.java rename to src/duskz.client/classes/jfxtras/scene/layout/VBox.java diff --git a/DuskZ/src/jfxtras/util/NodeUtil.java b/src/duskz.client/classes/jfxtras/util/NodeUtil.java similarity index 100% rename from DuskZ/src/jfxtras/util/NodeUtil.java rename to src/duskz.client/classes/jfxtras/util/NodeUtil.java diff --git a/src/duskz.client/classes/module-info.java b/src/duskz.client/classes/module-info.java new file mode 100644 index 0000000..5c79a77 --- /dev/null +++ b/src/duskz.client/classes/module-info.java @@ -0,0 +1,30 @@ +/* + * Copyright (C) 2023 Michael Zucchi + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ + +module duskz.client { + + requires java.logging; + requires duskz.common; + + requires javafx.graphics; + requires javafx.controls; + + exports duskz.client.fx; + + +} diff --git a/DuskCommon/src/duskz/protocol/DuskMessage.java b/src/duskz.common/classes/duskz/protocol/DuskMessage.java similarity index 100% rename from DuskCommon/src/duskz/protocol/DuskMessage.java rename to src/duskz.common/classes/duskz/protocol/DuskMessage.java diff --git a/DuskCommon/src/duskz/protocol/DuskProtocol.java b/src/duskz.common/classes/duskz/protocol/DuskProtocol.java similarity index 100% rename from DuskCommon/src/duskz/protocol/DuskProtocol.java rename to src/duskz.common/classes/duskz/protocol/DuskProtocol.java diff --git a/DuskCommon/src/duskz/protocol/EntityListMessage.java b/src/duskz.common/classes/duskz/protocol/EntityListMessage.java similarity index 100% rename from DuskCommon/src/duskz/protocol/EntityListMessage.java rename to src/duskz.common/classes/duskz/protocol/EntityListMessage.java diff --git a/DuskCommon/src/duskz/protocol/EntityUpdateMessage.java b/src/duskz.common/classes/duskz/protocol/EntityUpdateMessage.java similarity index 100% rename from DuskCommon/src/duskz/protocol/EntityUpdateMessage.java rename to src/duskz.common/classes/duskz/protocol/EntityUpdateMessage.java diff --git a/DuskCommon/src/duskz/protocol/ListMessage.java b/src/duskz.common/classes/duskz/protocol/ListMessage.java similarity index 100% rename from DuskCommon/src/duskz/protocol/ListMessage.java rename to src/duskz.common/classes/duskz/protocol/ListMessage.java diff --git a/DuskCommon/src/duskz/protocol/MapMessage.java b/src/duskz.common/classes/duskz/protocol/MapMessage.java similarity index 100% rename from DuskCommon/src/duskz/protocol/MapMessage.java rename to src/duskz.common/classes/duskz/protocol/MapMessage.java diff --git a/DuskCommon/src/duskz/protocol/TransactionItem.java b/src/duskz.common/classes/duskz/protocol/TransactionItem.java similarity index 100% rename from DuskCommon/src/duskz/protocol/TransactionItem.java rename to src/duskz.common/classes/duskz/protocol/TransactionItem.java diff --git a/DuskCommon/src/duskz/protocol/TransactionMessage.java b/src/duskz.common/classes/duskz/protocol/TransactionMessage.java similarity index 100% rename from DuskCommon/src/duskz/protocol/TransactionMessage.java rename to src/duskz.common/classes/duskz/protocol/TransactionMessage.java diff --git a/DuskCommon/src/duskz/protocol/Wearing.java b/src/duskz.common/classes/duskz/protocol/Wearing.java similarity index 100% rename from DuskCommon/src/duskz/protocol/Wearing.java rename to src/duskz.common/classes/duskz/protocol/Wearing.java diff --git a/DuskCommon/src/duskz/util/Debug.java b/src/duskz.common/classes/duskz/util/Debug.java similarity index 100% rename from DuskCommon/src/duskz/util/Debug.java rename to src/duskz.common/classes/duskz/util/Debug.java diff --git a/DuskCommon/src/duskz/util/Maths.java b/src/duskz.common/classes/duskz/util/Maths.java similarity index 100% rename from DuskCommon/src/duskz/util/Maths.java rename to src/duskz.common/classes/duskz/util/Maths.java diff --git a/src/duskz.common/classes/module-info.java b/src/duskz.common/classes/module-info.java new file mode 100644 index 0000000..eba8bac --- /dev/null +++ b/src/duskz.common/classes/module-info.java @@ -0,0 +1,6 @@ + +module duskz.common { + + exports duskz.protocol; + exports duskz.util; +} diff --git a/TileZ/src/au/notzed/tilez/DuskInfoView.java b/src/duskz.editor/classes/au/notzed/tilez/DuskInfoView.java similarity index 100% rename from TileZ/src/au/notzed/tilez/DuskInfoView.java rename to src/duskz.editor/classes/au/notzed/tilez/DuskInfoView.java diff --git a/TileZ/src/au/notzed/tilez/LocationEditor.java b/src/duskz.editor/classes/au/notzed/tilez/LocationEditor.java similarity index 100% rename from TileZ/src/au/notzed/tilez/LocationEditor.java rename to src/duskz.editor/classes/au/notzed/tilez/LocationEditor.java diff --git a/TileZ/src/au/notzed/tilez/MapLayer.java b/src/duskz.editor/classes/au/notzed/tilez/MapLayer.java similarity index 100% rename from TileZ/src/au/notzed/tilez/MapLayer.java rename to src/duskz.editor/classes/au/notzed/tilez/MapLayer.java diff --git a/TileZ/src/au/notzed/tilez/MapSelectionModel.java b/src/duskz.editor/classes/au/notzed/tilez/MapSelectionModel.java similarity index 100% rename from TileZ/src/au/notzed/tilez/MapSelectionModel.java rename to src/duskz.editor/classes/au/notzed/tilez/MapSelectionModel.java diff --git a/TileZ/src/au/notzed/tilez/MapView.java b/src/duskz.editor/classes/au/notzed/tilez/MapView.java similarity index 100% rename from TileZ/src/au/notzed/tilez/MapView.java rename to src/duskz.editor/classes/au/notzed/tilez/MapView.java diff --git a/TileZ/src/au/notzed/tilez/TZ.java b/src/duskz.editor/classes/au/notzed/tilez/TZ.java similarity index 100% rename from TileZ/src/au/notzed/tilez/TZ.java rename to src/duskz.editor/classes/au/notzed/tilez/TZ.java diff --git a/TileZ/src/au/notzed/tilez/TextEditor.java b/src/duskz.editor/classes/au/notzed/tilez/TextEditor.java similarity index 100% rename from TileZ/src/au/notzed/tilez/TextEditor.java rename to src/duskz.editor/classes/au/notzed/tilez/TextEditor.java diff --git a/TileZ/src/au/notzed/tilez/TileView.java b/src/duskz.editor/classes/au/notzed/tilez/TileView.java similarity index 100% rename from TileZ/src/au/notzed/tilez/TileView.java rename to src/duskz.editor/classes/au/notzed/tilez/TileView.java diff --git a/TileZ/src/au/notzed/tilez/TileZ.java b/src/duskz.editor/classes/au/notzed/tilez/TileZ.java similarity index 100% rename from TileZ/src/au/notzed/tilez/TileZ.java rename to src/duskz.editor/classes/au/notzed/tilez/TileZ.java diff --git a/TileZ/src/au/notzed/tilez/io/Data.java b/src/duskz.editor/classes/au/notzed/tilez/io/Data.java similarity index 100% rename from TileZ/src/au/notzed/tilez/io/Data.java rename to src/duskz.editor/classes/au/notzed/tilez/io/Data.java diff --git a/TileZ/src/au/notzed/tilez/io/Image.java b/src/duskz.editor/classes/au/notzed/tilez/io/Image.java similarity index 100% rename from TileZ/src/au/notzed/tilez/io/Image.java rename to src/duskz.editor/classes/au/notzed/tilez/io/Image.java diff --git a/TileZ/src/au/notzed/tilez/io/Layer.java b/src/duskz.editor/classes/au/notzed/tilez/io/Layer.java similarity index 100% rename from TileZ/src/au/notzed/tilez/io/Layer.java rename to src/duskz.editor/classes/au/notzed/tilez/io/Layer.java diff --git a/TileZ/src/au/notzed/tilez/io/Map.java b/src/duskz.editor/classes/au/notzed/tilez/io/Map.java similarity index 100% rename from TileZ/src/au/notzed/tilez/io/Map.java rename to src/duskz.editor/classes/au/notzed/tilez/io/Map.java diff --git a/TileZ/src/au/notzed/tilez/io/Object.java b/src/duskz.editor/classes/au/notzed/tilez/io/Object.java similarity index 100% rename from TileZ/src/au/notzed/tilez/io/Object.java rename to src/duskz.editor/classes/au/notzed/tilez/io/Object.java diff --git a/TileZ/src/au/notzed/tilez/io/ObjectFactory.java b/src/duskz.editor/classes/au/notzed/tilez/io/ObjectFactory.java similarity index 100% rename from TileZ/src/au/notzed/tilez/io/ObjectFactory.java rename to src/duskz.editor/classes/au/notzed/tilez/io/ObjectFactory.java diff --git a/TileZ/src/au/notzed/tilez/io/Objectgroup.java b/src/duskz.editor/classes/au/notzed/tilez/io/Objectgroup.java similarity index 100% rename from TileZ/src/au/notzed/tilez/io/Objectgroup.java rename to src/duskz.editor/classes/au/notzed/tilez/io/Objectgroup.java diff --git a/TileZ/src/au/notzed/tilez/io/Properties.java b/src/duskz.editor/classes/au/notzed/tilez/io/Properties.java similarity index 100% rename from TileZ/src/au/notzed/tilez/io/Properties.java rename to src/duskz.editor/classes/au/notzed/tilez/io/Properties.java diff --git a/TileZ/src/au/notzed/tilez/io/Property.java b/src/duskz.editor/classes/au/notzed/tilez/io/Property.java similarity index 100% rename from TileZ/src/au/notzed/tilez/io/Property.java rename to src/duskz.editor/classes/au/notzed/tilez/io/Property.java diff --git a/TileZ/src/au/notzed/tilez/io/Tile.java b/src/duskz.editor/classes/au/notzed/tilez/io/Tile.java similarity index 100% rename from TileZ/src/au/notzed/tilez/io/Tile.java rename to src/duskz.editor/classes/au/notzed/tilez/io/Tile.java diff --git a/TileZ/src/au/notzed/tilez/io/Tileset.java b/src/duskz.editor/classes/au/notzed/tilez/io/Tileset.java similarity index 100% rename from TileZ/src/au/notzed/tilez/io/Tileset.java rename to src/duskz.editor/classes/au/notzed/tilez/io/Tileset.java diff --git a/DuskServer/src/au/notzed/duskz/util/BCrypt.java b/src/duskz.server/classes/au/notzed/duskz/util/BCrypt.java similarity index 100% rename from DuskServer/src/au/notzed/duskz/util/BCrypt.java rename to src/duskz.server/classes/au/notzed/duskz/util/BCrypt.java diff --git a/DuskServer/src/au/notzed/duskz/util/Chars.java b/src/duskz.server/classes/au/notzed/duskz/util/Chars.java similarity index 100% rename from DuskServer/src/au/notzed/duskz/util/Chars.java rename to src/duskz.server/classes/au/notzed/duskz/util/Chars.java diff --git a/DuskServer/src/duskz/io/Convert.java b/src/duskz.server/classes/duskz/io/Convert.java similarity index 100% rename from DuskServer/src/duskz/io/Convert.java rename to src/duskz.server/classes/duskz/io/Convert.java diff --git a/DuskServer/src/duskz/io/Tiled.java b/src/duskz.server/classes/duskz/io/Tiled.java similarity index 100% rename from DuskServer/src/duskz/io/Tiled.java rename to src/duskz.server/classes/duskz/io/Tiled.java diff --git a/DuskServer/src/duskz/io/tiled/Data.java b/src/duskz.server/classes/duskz/io/tiled/Data.java similarity index 100% rename from DuskServer/src/duskz/io/tiled/Data.java rename to src/duskz.server/classes/duskz/io/tiled/Data.java diff --git a/DuskServer/src/duskz/io/tiled/Image.java b/src/duskz.server/classes/duskz/io/tiled/Image.java similarity index 100% rename from DuskServer/src/duskz/io/tiled/Image.java rename to src/duskz.server/classes/duskz/io/tiled/Image.java diff --git a/DuskServer/src/duskz/io/tiled/Layer.java b/src/duskz.server/classes/duskz/io/tiled/Layer.java similarity index 100% rename from DuskServer/src/duskz/io/tiled/Layer.java rename to src/duskz.server/classes/duskz/io/tiled/Layer.java diff --git a/DuskServer/src/duskz/io/tiled/Map.java b/src/duskz.server/classes/duskz/io/tiled/Map.java similarity index 100% rename from DuskServer/src/duskz/io/tiled/Map.java rename to src/duskz.server/classes/duskz/io/tiled/Map.java diff --git a/DuskServer/src/duskz/io/tiled/Object.java b/src/duskz.server/classes/duskz/io/tiled/Object.java similarity index 100% rename from DuskServer/src/duskz/io/tiled/Object.java rename to src/duskz.server/classes/duskz/io/tiled/Object.java diff --git a/DuskServer/src/duskz/io/tiled/ObjectFactory.java b/src/duskz.server/classes/duskz/io/tiled/ObjectFactory.java similarity index 100% rename from DuskServer/src/duskz/io/tiled/ObjectFactory.java rename to src/duskz.server/classes/duskz/io/tiled/ObjectFactory.java diff --git a/DuskServer/src/duskz/io/tiled/Objectgroup.java b/src/duskz.server/classes/duskz/io/tiled/Objectgroup.java similarity index 100% rename from DuskServer/src/duskz/io/tiled/Objectgroup.java rename to src/duskz.server/classes/duskz/io/tiled/Objectgroup.java diff --git a/DuskServer/src/duskz/io/tiled/Properties.java b/src/duskz.server/classes/duskz/io/tiled/Properties.java similarity index 100% rename from DuskServer/src/duskz/io/tiled/Properties.java rename to src/duskz.server/classes/duskz/io/tiled/Properties.java diff --git a/DuskServer/src/duskz/io/tiled/Property.java b/src/duskz.server/classes/duskz/io/tiled/Property.java similarity index 100% rename from DuskServer/src/duskz/io/tiled/Property.java rename to src/duskz.server/classes/duskz/io/tiled/Property.java diff --git a/DuskServer/src/duskz/io/tiled/Tile.java b/src/duskz.server/classes/duskz/io/tiled/Tile.java similarity index 100% rename from DuskServer/src/duskz/io/tiled/Tile.java rename to src/duskz.server/classes/duskz/io/tiled/Tile.java diff --git a/DuskServer/src/duskz/io/tiled/Tileset.java b/src/duskz.server/classes/duskz/io/tiled/Tileset.java similarity index 100% rename from DuskServer/src/duskz/io/tiled/Tileset.java rename to src/duskz.server/classes/duskz/io/tiled/Tileset.java diff --git a/DuskServer/src/duskz/proto/Junk.java b/src/duskz.server/classes/duskz/proto/Junk.java similarity index 100% rename from DuskServer/src/duskz/proto/Junk.java rename to src/duskz.server/classes/duskz/proto/Junk.java diff --git a/DuskServer/src/duskz/server/BannedIPException.java b/src/duskz.server/classes/duskz/server/BannedIPException.java similarity index 100% rename from DuskServer/src/duskz/server/BannedIPException.java rename to src/duskz.server/classes/duskz/server/BannedIPException.java diff --git a/DuskServer/src/duskz/server/Battle.java b/src/duskz.server/classes/duskz/server/Battle.java similarity index 100% rename from DuskServer/src/duskz/server/Battle.java rename to src/duskz.server/classes/duskz/server/Battle.java diff --git a/DuskServer/src/duskz/server/BlockedIPException.java b/src/duskz.server/classes/duskz/server/BlockedIPException.java similarity index 100% rename from DuskServer/src/duskz/server/BlockedIPException.java rename to src/duskz.server/classes/duskz/server/BlockedIPException.java diff --git a/DuskServer/src/duskz/server/Commands.java b/src/duskz.server/classes/duskz/server/Commands.java similarity index 100% rename from DuskServer/src/duskz/server/Commands.java rename to src/duskz.server/classes/duskz/server/Commands.java diff --git a/DuskServer/src/duskz/server/Condition.java b/src/duskz.server/classes/duskz/server/Condition.java similarity index 100% rename from DuskServer/src/duskz/server/Condition.java rename to src/duskz.server/classes/duskz/server/Condition.java diff --git a/DuskServer/src/duskz/server/Config.java b/src/duskz.server/classes/duskz/server/Config.java similarity index 100% rename from DuskServer/src/duskz/server/Config.java rename to src/duskz.server/classes/duskz/server/Config.java diff --git a/DuskServer/src/duskz/server/Constants.java b/src/duskz.server/classes/duskz/server/Constants.java similarity index 100% rename from DuskServer/src/duskz/server/Constants.java rename to src/duskz.server/classes/duskz/server/Constants.java diff --git a/DuskServer/src/duskz/server/DuskEngine.java b/src/duskz.server/classes/duskz/server/DuskEngine.java similarity index 100% rename from DuskServer/src/duskz/server/DuskEngine.java rename to src/duskz.server/classes/duskz/server/DuskEngine.java diff --git a/DuskServer/src/duskz/server/DuskServer.java b/src/duskz.server/classes/duskz/server/DuskServer.java similarity index 100% rename from DuskServer/src/duskz/server/DuskServer.java rename to src/duskz.server/classes/duskz/server/DuskServer.java diff --git a/DuskServer/src/duskz/server/Faction.java b/src/duskz.server/classes/duskz/server/Faction.java similarity index 100% rename from DuskServer/src/duskz/server/Faction.java rename to src/duskz.server/classes/duskz/server/Faction.java diff --git a/DuskServer/src/duskz/server/GiveItem.java b/src/duskz.server/classes/duskz/server/GiveItem.java similarity index 100% rename from DuskServer/src/duskz/server/GiveItem.java rename to src/duskz.server/classes/duskz/server/GiveItem.java diff --git a/DuskServer/src/duskz/server/ItemList.java b/src/duskz.server/classes/duskz/server/ItemList.java similarity index 100% rename from DuskServer/src/duskz/server/ItemList.java rename to src/duskz.server/classes/duskz/server/ItemList.java diff --git a/DuskServer/src/duskz/server/Log.java b/src/duskz.server/classes/duskz/server/Log.java similarity index 100% rename from DuskServer/src/duskz/server/Log.java rename to src/duskz.server/classes/duskz/server/Log.java diff --git a/DuskServer/src/duskz/server/RandomAccessString.java b/src/duskz.server/classes/duskz/server/RandomAccessString.java similarity index 100% rename from DuskServer/src/duskz/server/RandomAccessString.java rename to src/duskz.server/classes/duskz/server/RandomAccessString.java diff --git a/DuskServer/src/duskz/server/SaveThread.java b/src/duskz.server/classes/duskz/server/SaveThread.java similarity index 100% rename from DuskServer/src/duskz/server/SaveThread.java rename to src/duskz.server/classes/duskz/server/SaveThread.java diff --git a/DuskServer/src/duskz/server/Script.java b/src/duskz.server/classes/duskz/server/Script.java similarity index 100% rename from DuskServer/src/duskz/server/Script.java rename to src/duskz.server/classes/duskz/server/Script.java diff --git a/DuskServer/src/duskz/server/SpellGroup.java b/src/duskz.server/classes/duskz/server/SpellGroup.java similarity index 100% rename from DuskServer/src/duskz/server/SpellGroup.java rename to src/duskz.server/classes/duskz/server/SpellGroup.java diff --git a/DuskServer/src/duskz/server/TickThread.java b/src/duskz.server/classes/duskz/server/TickThread.java similarity index 100% rename from DuskServer/src/duskz/server/TickThread.java rename to src/duskz.server/classes/duskz/server/TickThread.java diff --git a/DuskServer/src/duskz/server/TrackerThread.java b/src/duskz.server/classes/duskz/server/TrackerThread.java similarity index 100% rename from DuskServer/src/duskz/server/TrackerThread.java rename to src/duskz.server/classes/duskz/server/TrackerThread.java diff --git a/DuskServer/src/duskz/server/Variable.java b/src/duskz.server/classes/duskz/server/Variable.java similarity index 100% rename from DuskServer/src/duskz/server/Variable.java rename to src/duskz.server/classes/duskz/server/Variable.java diff --git a/DuskServer/src/duskz/server/VariableSet.java b/src/duskz.server/classes/duskz/server/VariableSet.java similarity index 100% rename from DuskServer/src/duskz/server/VariableSet.java rename to src/duskz.server/classes/duskz/server/VariableSet.java diff --git a/DuskServer/src/duskz/server/entity/Ability.java b/src/duskz.server/classes/duskz/server/entity/Ability.java similarity index 100% rename from DuskServer/src/duskz/server/entity/Ability.java rename to src/duskz.server/classes/duskz/server/entity/Ability.java diff --git a/DuskServer/src/duskz/server/entity/DuskObject.java b/src/duskz.server/classes/duskz/server/entity/DuskObject.java similarity index 100% rename from DuskServer/src/duskz/server/entity/DuskObject.java rename to src/duskz.server/classes/duskz/server/entity/DuskObject.java diff --git a/DuskServer/src/duskz/server/entity/Equipment.java b/src/duskz.server/classes/duskz/server/entity/Equipment.java similarity index 100% rename from DuskServer/src/duskz/server/entity/Equipment.java rename to src/duskz.server/classes/duskz/server/entity/Equipment.java diff --git a/DuskServer/src/duskz/server/entity/Item.java b/src/duskz.server/classes/duskz/server/entity/Item.java similarity index 100% rename from DuskServer/src/duskz/server/entity/Item.java rename to src/duskz.server/classes/duskz/server/entity/Item.java diff --git a/DuskServer/src/duskz/server/entity/LivingThing.java b/src/duskz.server/classes/duskz/server/entity/LivingThing.java similarity index 100% rename from DuskServer/src/duskz/server/entity/LivingThing.java rename to src/duskz.server/classes/duskz/server/entity/LivingThing.java diff --git a/DuskServer/src/duskz/server/entity/Merchant.java b/src/duskz.server/classes/duskz/server/entity/Merchant.java similarity index 100% rename from DuskServer/src/duskz/server/entity/Merchant.java rename to src/duskz.server/classes/duskz/server/entity/Merchant.java diff --git a/DuskServer/src/duskz/server/entity/Mob.java b/src/duskz.server/classes/duskz/server/entity/Mob.java similarity index 100% rename from DuskServer/src/duskz/server/entity/Mob.java rename to src/duskz.server/classes/duskz/server/entity/Mob.java diff --git a/DuskServer/src/duskz/server/entity/PlayerMerchant.java b/src/duskz.server/classes/duskz/server/entity/PlayerMerchant.java similarity index 100% rename from DuskServer/src/duskz/server/entity/PlayerMerchant.java rename to src/duskz.server/classes/duskz/server/entity/PlayerMerchant.java diff --git a/DuskServer/src/duskz/server/entity/Prop.java b/src/duskz.server/classes/duskz/server/entity/Prop.java similarity index 100% rename from DuskServer/src/duskz/server/entity/Prop.java rename to src/duskz.server/classes/duskz/server/entity/Prop.java diff --git a/DuskServer/src/duskz/server/entity/Sign.java b/src/duskz.server/classes/duskz/server/entity/Sign.java similarity index 100% rename from DuskServer/src/duskz/server/entity/Sign.java rename to src/duskz.server/classes/duskz/server/entity/Sign.java diff --git a/DuskServer/src/duskz/server/entity/TileMap.java b/src/duskz.server/classes/duskz/server/entity/TileMap.java similarity index 100% rename from DuskServer/src/duskz/server/entity/TileMap.java rename to src/duskz.server/classes/duskz/server/entity/TileMap.java diff --git a/DuskServer/src/duskz/server/entityz/Ability.java b/src/duskz.server/classes/duskz/server/entityz/Ability.java similarity index 100% rename from DuskServer/src/duskz/server/entityz/Ability.java rename to src/duskz.server/classes/duskz/server/entityz/Ability.java diff --git a/DuskServer/src/duskz/server/entityz/Active.java b/src/duskz.server/classes/duskz/server/entityz/Active.java similarity index 100% rename from DuskServer/src/duskz/server/entityz/Active.java rename to src/duskz.server/classes/duskz/server/entityz/Active.java diff --git a/DuskServer/src/duskz/server/entityz/Armour.java b/src/duskz.server/classes/duskz/server/entityz/Armour.java similarity index 100% rename from DuskServer/src/duskz/server/entityz/Armour.java rename to src/duskz.server/classes/duskz/server/entityz/Armour.java diff --git a/DuskServer/src/duskz/server/entityz/Battle.java b/src/duskz.server/classes/duskz/server/entityz/Battle.java similarity index 100% rename from DuskServer/src/duskz/server/entityz/Battle.java rename to src/duskz.server/classes/duskz/server/entityz/Battle.java diff --git a/DuskServer/src/duskz/server/entityz/Commands.java b/src/duskz.server/classes/duskz/server/entityz/Commands.java similarity index 100% rename from DuskServer/src/duskz/server/entityz/Commands.java rename to src/duskz.server/classes/duskz/server/entityz/Commands.java diff --git a/DuskServer/src/duskz/server/entityz/Condition.java b/src/duskz.server/classes/duskz/server/entityz/Condition.java similarity index 100% rename from DuskServer/src/duskz/server/entityz/Condition.java rename to src/duskz.server/classes/duskz/server/entityz/Condition.java diff --git a/DuskServer/src/duskz/server/entityz/ConditionList.java b/src/duskz.server/classes/duskz/server/entityz/ConditionList.java similarity index 100% rename from DuskServer/src/duskz/server/entityz/ConditionList.java rename to src/duskz.server/classes/duskz/server/entityz/ConditionList.java diff --git a/DuskServer/src/duskz/server/entityz/Container.java b/src/duskz.server/classes/duskz/server/entityz/Container.java similarity index 100% rename from DuskServer/src/duskz/server/entityz/Container.java rename to src/duskz.server/classes/duskz/server/entityz/Container.java diff --git a/DuskServer/src/duskz/server/entityz/Converter.java b/src/duskz.server/classes/duskz/server/entityz/Converter.java similarity index 100% rename from DuskServer/src/duskz/server/entityz/Converter.java rename to src/duskz.server/classes/duskz/server/entityz/Converter.java diff --git a/DuskServer/src/duskz/server/entityz/Drink.java b/src/duskz.server/classes/duskz/server/entityz/Drink.java similarity index 100% rename from DuskServer/src/duskz/server/entityz/Drink.java rename to src/duskz.server/classes/duskz/server/entityz/Drink.java diff --git a/DuskServer/src/duskz/server/entityz/Equipment.java b/src/duskz.server/classes/duskz/server/entityz/Equipment.java similarity index 100% rename from DuskServer/src/duskz/server/entityz/Equipment.java rename to src/duskz.server/classes/duskz/server/entityz/Equipment.java diff --git a/DuskServer/src/duskz/server/entityz/Faction.java b/src/duskz.server/classes/duskz/server/entityz/Faction.java similarity index 100% rename from DuskServer/src/duskz/server/entityz/Faction.java rename to src/duskz.server/classes/duskz/server/entityz/Faction.java diff --git a/DuskServer/src/duskz/server/entityz/Food.java b/src/duskz.server/classes/duskz/server/entityz/Food.java similarity index 100% rename from DuskServer/src/duskz/server/entityz/Food.java rename to src/duskz.server/classes/duskz/server/entityz/Food.java diff --git a/DuskServer/src/duskz/server/entityz/Game.java b/src/duskz.server/classes/duskz/server/entityz/Game.java similarity index 100% rename from DuskServer/src/duskz/server/entityz/Game.java rename to src/duskz.server/classes/duskz/server/entityz/Game.java diff --git a/DuskServer/src/duskz/server/entityz/GameServer.java b/src/duskz.server/classes/duskz/server/entityz/GameServer.java similarity index 100% rename from DuskServer/src/duskz/server/entityz/GameServer.java rename to src/duskz.server/classes/duskz/server/entityz/GameServer.java diff --git a/DuskServer/src/duskz/server/entityz/GameShop.java b/src/duskz.server/classes/duskz/server/entityz/GameShop.java similarity index 100% rename from DuskServer/src/duskz/server/entityz/GameShop.java rename to src/duskz.server/classes/duskz/server/entityz/GameShop.java diff --git a/DuskServer/src/duskz/server/entityz/Holdable.java b/src/duskz.server/classes/duskz/server/entityz/Holdable.java similarity index 100% rename from DuskServer/src/duskz/server/entityz/Holdable.java rename to src/duskz.server/classes/duskz/server/entityz/Holdable.java diff --git a/DuskServer/src/duskz/server/entityz/Inventory.java b/src/duskz.server/classes/duskz/server/entityz/Inventory.java similarity index 100% rename from DuskServer/src/duskz/server/entityz/Inventory.java rename to src/duskz.server/classes/duskz/server/entityz/Inventory.java diff --git a/DuskServer/src/duskz/server/entityz/Item.java b/src/duskz.server/classes/duskz/server/entityz/Item.java similarity index 100% rename from DuskServer/src/duskz/server/entityz/Item.java rename to src/duskz.server/classes/duskz/server/entityz/Item.java diff --git a/DuskServer/src/duskz/server/entityz/Location.java b/src/duskz.server/classes/duskz/server/entityz/Location.java similarity index 100% rename from DuskServer/src/duskz/server/entityz/Location.java rename to src/duskz.server/classes/duskz/server/entityz/Location.java diff --git a/DuskServer/src/duskz/server/entityz/Log.java b/src/duskz.server/classes/duskz/server/entityz/Log.java similarity index 100% rename from DuskServer/src/duskz/server/entityz/Log.java rename to src/duskz.server/classes/duskz/server/entityz/Log.java diff --git a/DuskServer/src/duskz/server/entityz/Mobile.java b/src/duskz.server/classes/duskz/server/entityz/Mobile.java similarity index 100% rename from DuskServer/src/duskz/server/entityz/Mobile.java rename to src/duskz.server/classes/duskz/server/entityz/Mobile.java diff --git a/DuskServer/src/duskz/server/entityz/Pack.java b/src/duskz.server/classes/duskz/server/entityz/Pack.java similarity index 100% rename from DuskServer/src/duskz/server/entityz/Pack.java rename to src/duskz.server/classes/duskz/server/entityz/Pack.java diff --git a/DuskServer/src/duskz/server/entityz/Pet.java b/src/duskz.server/classes/duskz/server/entityz/Pet.java similarity index 100% rename from DuskServer/src/duskz/server/entityz/Pet.java rename to src/duskz.server/classes/duskz/server/entityz/Pet.java diff --git a/DuskServer/src/duskz/server/entityz/Player.java b/src/duskz.server/classes/duskz/server/entityz/Player.java similarity index 100% rename from DuskServer/src/duskz/server/entityz/Player.java rename to src/duskz.server/classes/duskz/server/entityz/Player.java diff --git a/DuskServer/src/duskz/server/entityz/PlayerCommands.java b/src/duskz.server/classes/duskz/server/entityz/PlayerCommands.java similarity index 100% rename from DuskServer/src/duskz/server/entityz/PlayerCommands.java rename to src/duskz.server/classes/duskz/server/entityz/PlayerCommands.java diff --git a/DuskServer/src/duskz/server/entityz/PlayerConnection.java b/src/duskz.server/classes/duskz/server/entityz/PlayerConnection.java similarity index 100% rename from DuskServer/src/duskz/server/entityz/PlayerConnection.java rename to src/duskz.server/classes/duskz/server/entityz/PlayerConnection.java diff --git a/DuskServer/src/duskz/server/entityz/PlayerShop.java b/src/duskz.server/classes/duskz/server/entityz/PlayerShop.java similarity index 100% rename from DuskServer/src/duskz/server/entityz/PlayerShop.java rename to src/duskz.server/classes/duskz/server/entityz/PlayerShop.java diff --git a/DuskServer/src/duskz/server/entityz/PlayerState.java b/src/duskz.server/classes/duskz/server/entityz/PlayerState.java similarity index 100% rename from DuskServer/src/duskz/server/entityz/PlayerState.java rename to src/duskz.server/classes/duskz/server/entityz/PlayerState.java diff --git a/DuskServer/src/duskz/server/entityz/Prop.java b/src/duskz.server/classes/duskz/server/entityz/Prop.java similarity index 100% rename from DuskServer/src/duskz/server/entityz/Prop.java rename to src/duskz.server/classes/duskz/server/entityz/Prop.java diff --git a/DuskServer/src/duskz/server/entityz/PropertyLoader.java b/src/duskz.server/classes/duskz/server/entityz/PropertyLoader.java similarity index 100% rename from DuskServer/src/duskz/server/entityz/PropertyLoader.java rename to src/duskz.server/classes/duskz/server/entityz/PropertyLoader.java diff --git a/DuskServer/src/duskz/server/entityz/Race.java b/src/duskz.server/classes/duskz/server/entityz/Race.java similarity index 100% rename from DuskServer/src/duskz/server/entityz/Race.java rename to src/duskz.server/classes/duskz/server/entityz/Race.java diff --git a/DuskServer/src/duskz/server/entityz/ScriptManager.java b/src/duskz.server/classes/duskz/server/entityz/ScriptManager.java similarity index 100% rename from DuskServer/src/duskz/server/entityz/ScriptManager.java rename to src/duskz.server/classes/duskz/server/entityz/ScriptManager.java diff --git a/DuskServer/src/duskz/server/entityz/Shop.java b/src/duskz.server/classes/duskz/server/entityz/Shop.java similarity index 100% rename from DuskServer/src/duskz/server/entityz/Shop.java rename to src/duskz.server/classes/duskz/server/entityz/Shop.java diff --git a/DuskServer/src/duskz/server/entityz/Sign.java b/src/duskz.server/classes/duskz/server/entityz/Sign.java similarity index 100% rename from DuskServer/src/duskz/server/entityz/Sign.java rename to src/duskz.server/classes/duskz/server/entityz/Sign.java diff --git a/DuskServer/src/duskz/server/entityz/Thing.java b/src/duskz.server/classes/duskz/server/entityz/Thing.java similarity index 100% rename from DuskServer/src/duskz/server/entityz/Thing.java rename to src/duskz.server/classes/duskz/server/entityz/Thing.java diff --git a/DuskServer/src/duskz/server/entityz/ThingTable.java b/src/duskz.server/classes/duskz/server/entityz/ThingTable.java similarity index 100% rename from DuskServer/src/duskz/server/entityz/ThingTable.java rename to src/duskz.server/classes/duskz/server/entityz/ThingTable.java diff --git a/DuskServer/src/duskz/server/entityz/TileMap.java b/src/duskz.server/classes/duskz/server/entityz/TileMap.java similarity index 100% rename from DuskServer/src/duskz/server/entityz/TileMap.java rename to src/duskz.server/classes/duskz/server/entityz/TileMap.java diff --git a/DuskServer/src/duskz/server/entityz/TooManyTriesException.java b/src/duskz.server/classes/duskz/server/entityz/TooManyTriesException.java similarity index 100% rename from DuskServer/src/duskz/server/entityz/TooManyTriesException.java rename to src/duskz.server/classes/duskz/server/entityz/TooManyTriesException.java diff --git a/DuskServer/src/duskz/server/entityz/Training.java b/src/duskz.server/classes/duskz/server/entityz/Training.java similarity index 100% rename from DuskServer/src/duskz/server/entityz/Training.java rename to src/duskz.server/classes/duskz/server/entityz/Training.java diff --git a/DuskServer/src/duskz/server/entityz/VariableList.java b/src/duskz.server/classes/duskz/server/entityz/VariableList.java similarity index 100% rename from DuskServer/src/duskz/server/entityz/VariableList.java rename to src/duskz.server/classes/duskz/server/entityz/VariableList.java diff --git a/DuskServer/src/duskz/server/entityz/Weapon.java b/src/duskz.server/classes/duskz/server/entityz/Weapon.java similarity index 100% rename from DuskServer/src/duskz/server/entityz/Weapon.java rename to src/duskz.server/classes/duskz/server/entityz/Weapon.java diff --git a/DuskServer/src/duskz/server/entityz/Wearable.java b/src/duskz.server/classes/duskz/server/entityz/Wearable.java similarity index 100% rename from DuskServer/src/duskz/server/entityz/Wearable.java rename to src/duskz.server/classes/duskz/server/entityz/Wearable.java diff --git a/src/duskz.server/classes/module-info.java b/src/duskz.server/classes/module-info.java new file mode 100644 index 0000000..8eeade9 --- /dev/null +++ b/src/duskz.server/classes/module-info.java @@ -0,0 +1,27 @@ +/* + * Copyright (C) 2023 Michael Zucchi + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ + +module duskz.server { + requires duskz.common; + requires java.scripting; + + requires java.desktop; + requires java.logging; + + requires jakarta.xml.bind; +} -- 2.39.2