Compare commits
12 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
431eced76a | ||
|
|
ac1f4c85b5 | ||
|
|
ee8758e63b | ||
|
|
76e114c9f2 | ||
|
|
bb16165c51 | ||
|
|
78e994402e | ||
|
|
67ab800205 | ||
|
|
afb04b0d80 | ||
|
|
a5b572023b | ||
|
|
380e4284ee | ||
|
|
16ff5a6f54 | ||
|
|
cced80991f |
19
.mvn/wrapper/maven-wrapper.properties
vendored
Normal file
19
.mvn/wrapper/maven-wrapper.properties
vendored
Normal file
@@ -0,0 +1,19 @@
|
||||
# Licensed to the Apache Software Foundation (ASF) under one
|
||||
# or more contributor license agreements. See the NOTICE file
|
||||
# distributed with this work for additional information
|
||||
# regarding copyright ownership. The ASF licenses this file
|
||||
# to you under the Apache License, Version 2.0 (the
|
||||
# "License"); you may not use this file except in compliance
|
||||
# with the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing,
|
||||
# software distributed under the License is distributed on an
|
||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
# KIND, either express or implied. See the License for the
|
||||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
wrapperVersion=3.3.2
|
||||
distributionType=only-script
|
||||
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.9/apache-maven-3.9.9-bin.zip
|
||||
51
README.md
51
README.md
@@ -57,7 +57,7 @@ We will set up the following:
|
||||
- Client - the client is the application used to _play the game_, i.e. MapleStory.exe.
|
||||
|
||||
### 1 - Database
|
||||
You will start by installing the database server and client, and then run some scripts to prepare it for the server.
|
||||
You will start by installing the database server and database client, and then run some scripts to prepare it for the server.
|
||||
|
||||
#### Steps
|
||||
|
||||
@@ -91,36 +91,21 @@ Making changes becomes a bit more tedious though as you have to rebuild the serv
|
||||
On the first launch, the database container will run the scripts which may take so long that the server fails to start. In that case, just wait until the database is done running the scripts and then retry (Ctrl+C and re-run the command).
|
||||
|
||||
#### Jar
|
||||
Another option is to start the server from a terminal by running a jar file. You first need to build the jar file from source which requires [Maven](https://maven.apache.org/).
|
||||
Another option is to start the server from a terminal by running a jar file. You first need to build the jar file from source which requires [Maven](https://maven.apache.org/). Fortunately, [Maven Wrapper](https://maven.apache.org/wrapper/) is provided so you don't have to install Maven separately.
|
||||
|
||||
Building the jar file is as easy as running ``mvn clean package``. The project is configured to produce a "fat" jar which contains all dependencies (by utilizing the _maven-assembly-plugin_). Note that the WZ XML files are __not__ included in the jar.
|
||||
Building the jar file is as easy as running ``./mvnw.cmd clean package``. The project is configured to produce a "fat" jar which contains all dependencies (by utilizing the _maven-assembly-plugin_). Note that the WZ XML files are __not__ included in the jar.
|
||||
|
||||
To run the jar, a ``launch.bat`` file is provided for convenience. Simply double-click it and the server will start in a new terminal window.
|
||||
|
||||
Alternatively, run the jar file from the terminal. Just remember to provide the `wz-path` system property pointing to your wz directory.
|
||||
|
||||
### 3 - Client
|
||||
You will start by installing the game with the old installer, then overwrite some WZ files with our custom ones, and lastly get the localhost executable in place.
|
||||
The client files are located in a separate repository: https://github.com/P0nk/Cosmic-client
|
||||
|
||||
#### Steps
|
||||
|
||||
1. Download _MapleGlobal-v83-setup.exe_ from my [Google Drive](https://drive.google.com/drive/folders/1hgnb92MGL6xqEp9szEMBh0K9pSJcJ6IT). This is the official installer from back then.
|
||||
2. Install it in a directory of your choice.
|
||||
3. Delete the following files from the installation directory: _HShield_ (entire directory), _ASPLnchr.exe_, _MapleStory.exe_, and _Patcher.exe_.
|
||||
4. Download _CosmicWZ-2024-07-17-v0.14.0.zip_ from my [Google Drive](https://drive.google.com/drive/folders/1hgnb92MGL6xqEp9szEMBh0K9pSJcJ6IT).
|
||||
5. Unzip it and copy all .wz-files into the installation directory. Replace the existing ones.
|
||||
6. Download _HeavenMS-localhost-WINDOW.exe_ from [hostr.co](https://hostr.co/amuX5SLeeVZx). This is a client modified to connect to your localhost instead of Nexon's server (along with some fixes and custom changes).
|
||||
- Your antivirus will likely detect the file as a trojan or similar and automatically delete it. To prevent this from happening, add your _Downloads_ directory and the installation directory as exclusions in your antivirus software. On W11, this is under "Virus & threat protection settings" -> "Add or remove exclusions".
|
||||
7. Move _HeavenMS-localhost-WINDOW.exe_ into the installation directory.
|
||||
8. Done! Double-click the exe and the game should start.
|
||||
- The client may be a bit fiddly. Sometimes it won't start, but if you see "Client connected" in the server console it's a good indication. Try spam-clicking it like 10+ times, that usually works for me.
|
||||
|
||||
**Important note about localhost clients**: these executables are red-flagged by antivirus tools as potentially malicious software.
|
||||
This happens due to the reverse engineering methods that were applied onto these software artifacts.
|
||||
The one provided here has been in use for years already and posed no harm so far, so it is assumed to be safe.
|
||||
Follow the installation guide in the README.
|
||||
|
||||
### 4 - Getting into the game
|
||||
The client has started, and you're looking at the login screen.
|
||||
You have successfully started the client, and you're looking at the login screen.
|
||||
|
||||
#### Logging in
|
||||
At this point, you can log in to the admin account using the following credentials:
|
||||
@@ -129,7 +114,7 @@ At this point, you can log in to the admin account using the following credentia
|
||||
* Pin: "0000"
|
||||
* Pic: "000000"
|
||||
|
||||
Or create a regular account by typing in your desired username & password and attempting to log in. This "automatic registration" feature lets you create new accounts to play around with. It is enabled by default (see _config.yaml_).
|
||||
You can also create a new regular account by typing in your desired username & password and attempting to log in. This "automatic registration" feature lets you create new accounts to play around with. It is enabled by default (see _config.yaml_).
|
||||
|
||||
#### Entering the game
|
||||
Create a new character as you normally would, and then select it to enter the game. Hooray, finally we're in!
|
||||
@@ -144,21 +129,14 @@ That's it, have fun playing around in game!
|
||||
Some slightly more advanced concepts that might be useful once you're up and running.
|
||||
|
||||
### Host on remote server
|
||||
You don't have to host the server on your local machine to play. It's possible to host on a remote server such as a VPS or even a dedicated server.
|
||||
You don't have to host the server on your local machine to play. It's possible to host on a remote server such as a VPS or a dedicated server.
|
||||
|
||||
I leave it to you to figure out the server hosting part, but once you have that running you'll need to edit the client exe to point to your remote server ip.
|
||||
|
||||
#### Edit client ip
|
||||
1. Download and install a hex editor: [HxD](https://mh-nexus.de/en/hxd/)
|
||||
2. Start HxD and open your client exe (I recommend making a copy of it first). At this point you should see a bunch of hex codes and a "Decoded text" column to the right of it.
|
||||
3. Ctrl+f and search for Text-string "127.0.0.1". You should find three occurrences right above each other.
|
||||
4. Place your cursor before the first "127" and start typing the desired ip, overwriting what is already there. Do the same on the other two and click on Save.
|
||||
5. Done! Now the client will attempt to connect to that ip address instead when you launch it.
|
||||
I leave it to you to figure out the server hosting part, but once you have that running you'll need to edit the client ip to point to your remote server ip.
|
||||
|
||||
### WZ files
|
||||
WZ files are the asset/data files required by the client and server. Typically, [HaRepacker-resurrected](https://github.com/lastbattle/Harepacker-resurrected) is used to handle (view, edit, export) the .wz files.
|
||||
WZ files are the asset/data files required by the client and server. Typically, the [HaRepacker-resurrected](https://github.com/lastbattle/Harepacker-resurrected) tool is used to manage (view, edit, export) the .wz files.
|
||||
|
||||
The client can read the .wz files directly, but the server requires them in XML format. The server also does not make use of the sprites, which is the motivation for different kinds of exporting.
|
||||
The client can read the .wz files directly, but the server requires them to be in XML format. The server does not make use of the sprites, which is the motivation for different kinds of exporting.
|
||||
HaRepacker allows you to export to "Private server", which is the .img files packaged in the .wz stripped of sprites and converted to XML. This takes much less disk space.
|
||||
|
||||
This server requires custom .wz files (unfortunately), as you may have noted during installation of the client. The intention is for these to be removed eventually and to solely run on vanilla .wz files.
|
||||
@@ -172,10 +150,3 @@ This server requires custom .wz files (unfortunately), as you may have noted dur
|
||||
Make sure to always export from the client .wz files to the server XML, and not the other way around.
|
||||
|
||||
Editing the client .wz without exporting to the server may lead to strange behavior.
|
||||
|
||||
### Client features
|
||||
For more information about the client and its features, see [HeavenMS on GitHub](https://github.com/ronancpl/HeavenMS#download-items).
|
||||
|
||||
Some notable features:
|
||||
* Opens in window mode by default
|
||||
* Uncapped max speed
|
||||
|
||||
@@ -480,9 +480,7 @@
|
||||
5590000 - High-Five Stamp - Can equip items that are 5 levels above your current level.
|
||||
5021026 - Gift Box Throwing Stars - A gift box that can be freely thrown around. Using the #cThrowing Star# will create an orbital effect.\n\nThis item cannot be deleted.
|
||||
5010073 - Miss Popular - Well, lookie here. Someone<6E>s certainly become popular with the guys. Turn this effect on and off by assigning it to a shortcut key from the keyboard settings menu.
|
||||
|
||||
5010074 - Mr. Popular - Well, lookie here. Someone<6E>s certainly become popular with the girls. Turn this effect on and off by assigning it to a shortcut key from the keyboard settings menu.
|
||||
|
||||
5240027 - Golden Drumstick - A drumstick that can be consumed only by #cBaby Tiger#. It recovers hunger and #cincreases Closeness by 100.#
|
||||
5390005 - Cute Tiger Messenger - Shout to everyone in the world your character is on with this megaphone. Now available with your avatar on the top of everyone's screen! Comes with a tiger background for your avatar.
|
||||
5390006 - Roaring Tiger Messenger - Shout to everyone in the world your character is on with this megaphone. Now available with your avatar on the top of everyone's screen! Comes with a screen shaked.
|
||||
|
||||
200
handbook/Commands.txt
Normal file
200
handbook/Commands.txt
Normal file
@@ -0,0 +1,200 @@
|
||||
Common Commands:
|
||||
@help - Show available commands.
|
||||
@commands - Show available commands.
|
||||
@droplimit - Check drop limit of current map.
|
||||
@time - Show current server time.
|
||||
@credits - Show credits. These people made the server possible.
|
||||
@uptime - Show server online time.
|
||||
@gacha - Show gachapon rewards.
|
||||
@dispose - Dispose to fix NPC chat.
|
||||
@changel - Change language settings
|
||||
@equiplv - Show levels of all equipped items.
|
||||
@showrates - Show all world/character rates.
|
||||
@rates - Show your rates.
|
||||
@online - Show all online players.
|
||||
@gm- Send a message to the game masters.
|
||||
@reportbug - Send in a bug report.
|
||||
@points - Show point total.
|
||||
@joinevent - Join active event.
|
||||
@leaveevent-Leave active event.
|
||||
@ranks - Show player rankings.
|
||||
@str - Assign AP into STR.
|
||||
@dex - Assign AP into DEX.
|
||||
@int - Assign AP into INT.
|
||||
@luk - Assign AP into LUK.
|
||||
@enableauth - Enable PIC code by resetting the cooldown.
|
||||
@toggleexp - Toggle enable/disable all exp gain.
|
||||
@mylawn - Claim ownership of the current map.
|
||||
@bosshp - Show HP of bosses on current map.
|
||||
@mobhp - Show HP of mobs on current map.
|
||||
|
||||
|
||||
Donator Commands:
|
||||
@whatdropsfrom - Show what items drop from a mob.
|
||||
@whodrops - Show what drops an item.
|
||||
@buffme - Activate GM buffs on self.
|
||||
@goto - Warp to a predefined map.
|
||||
|
||||
|
||||
JrGM Commands:
|
||||
!recharge - Recharge and refill all USE items.
|
||||
!whereami - Show info about objects on current map.
|
||||
!hide - Hide from players.
|
||||
!unhide - Toggle Hide.
|
||||
!sp - Set available SP.
|
||||
!ap - Set available AP.
|
||||
!empowerme - Activate all useful buffs.
|
||||
!buffmap - Give GM buffs to the whole map.
|
||||
!buff - Activate a buff.
|
||||
!bomb - Bomb a player, dealing damage.
|
||||
!dc - Disconnect a player.
|
||||
!cleardrops - Clear drops by player.
|
||||
!clearslot - Clear all items in an inventory tab.
|
||||
!clearsavelocs - Clear saved locations for a player.
|
||||
!warp - Warp to a map.
|
||||
!warphere - Move a player to your location.
|
||||
!summon - Move a player to your location.
|
||||
!warpto - Warp to a player.
|
||||
!reach - Warp to a player.
|
||||
!follow - Warp to a player.
|
||||
!gmshop - Open the GM shop.
|
||||
!heal - Fully heal your HP/MP.
|
||||
!item - Spawn an item into your inventory.
|
||||
!drop - Spawn an item onto the ground.
|
||||
!level - Set your level.
|
||||
!levelpro - Set your level, one by one.
|
||||
!setslot - Set amount of inventory slots in all tabs.
|
||||
!setstat - Set all primary stats to new value.
|
||||
!maxstat - Max out all character stats.
|
||||
!maxskill - Max out all job skills.
|
||||
!resetskill Set all skill levels to 0.
|
||||
!search - Search String.wz.
|
||||
!jail - Move a player to the jail.
|
||||
!unjail- Free a player from jail.
|
||||
!job - Change job of a player.
|
||||
!unbug - Unbug self.
|
||||
!id - Search in handbook.
|
||||
!gachalist - Show gachapon rewards.
|
||||
!loot - Loots all items that belong to you.
|
||||
!mobskill - Apply a mob skill to all mobs on the map.
|
||||
Args: <mob skill id> <skill level>
|
||||
|
||||
|
||||
GM Commands:
|
||||
!debuff - Put a debuff on all nearby players.
|
||||
!fly - Enable/disable fly feature.
|
||||
!spawn - Spawn mob(s) on your location.
|
||||
!mutemap - Toggle mute players in the map.
|
||||
!checkdmg - Show stats and damage of a player.
|
||||
!inmap - Show all players in the map.
|
||||
!reloadevents - Reload all event data.
|
||||
!reloaddrops - Reload all drop data.
|
||||
!reloadportals - Reload all portal scripts.
|
||||
!reloadmap - Reload the map.
|
||||
!reloadshops - Reload popup shops and NPC shops.
|
||||
!hpmp - Set HP/MP of a player.
|
||||
!maxhpmp - Set base HP/MP of a player.
|
||||
!music - Play a song.
|
||||
!monitor - Toggle monitored packet logging of a character.
|
||||
!monitors - Show all characters being monitored for packet logging.
|
||||
!ignore - Toggle ignore a character from auto-ban alerts.
|
||||
!ignored - Show all characters being ignored in auto-ban alerts.
|
||||
!pos - Show current position and foothold.
|
||||
!togglecoupon - Toggle enable/disable a coupon.
|
||||
!togglewhitechat - Toggle white GM chat.
|
||||
!fame - Set new fame value of a player.
|
||||
!givenx - Give NX to a player.
|
||||
!givevp - Give vote points to a player.
|
||||
!givems - Give mesos to a player.
|
||||
!giverp - Give reward points to a player.
|
||||
!expeds - Show all ongoing boss expeditions.
|
||||
!kill - Kill a player.
|
||||
!seed - Drop all seeds inside Henesys PQ.
|
||||
!maxenergy - Set dojo energy to max value.
|
||||
!killall - Kill all mobs in the map.
|
||||
!notice - Send a blue message to everyone on the server.
|
||||
!rip - Send a RIP notice.
|
||||
!openportal - Open a portal on the map.
|
||||
!closeportal - Close a portal.
|
||||
!pe - Handle synthesized packets from file, and handle them as if sent from a client.
|
||||
!startevent - Start an event on current map.
|
||||
!endevent - Close entry for ongoing event.
|
||||
!startmapevent - Start a "classic" event on current map.
|
||||
!stopmapevent - Stop ongoing "classic" event.
|
||||
!online2 - Show all online players.
|
||||
!ban - Ban a player.
|
||||
!unban - Unban a player.
|
||||
!healmap - Heal all HP/MP of all players in the map.
|
||||
!healperson - Heal all HP/MP of a player.
|
||||
!hurt - Nearly kill a player.
|
||||
!killmap - Kill all players in the map.
|
||||
!night - Set sky background to black.
|
||||
!npc - Spawn an NPC on your location.
|
||||
!face - Change face of a player.
|
||||
!hair - Change hair of a player.
|
||||
!startquest - Start a quest.
|
||||
!completequest - Complete an active quest.
|
||||
!resetquest - Reset a completed quest.
|
||||
!timer - Set timer on a player in current map.
|
||||
!timermap - Set timer on all players in current map.
|
||||
!timerall Set a server wide timer.
|
||||
!warpmap - Warp all characters on current map to a new map.
|
||||
!warparea - Warp all nearby players to a new map.
|
||||
|
||||
|
||||
SuperGM Commands:
|
||||
!servermessage - Set scrolling server message.
|
||||
!proitem - Spawn an item with custom stats.
|
||||
!seteqstat-Set stats of all equips in inventory.
|
||||
!exprate - Set world exp rate.
|
||||
!mesorate - Set world meso rate.
|
||||
!droprate - Set world drop rate.
|
||||
!bossdroprate - Set world boss drop rate.
|
||||
!questrate - Set world quest rate.
|
||||
!travelrate - Set world travel rate.
|
||||
!fishrate - Set fishing rate.
|
||||
!itemvac - Loot all drops on the map.
|
||||
!forcevac-Loot all drops on the map.
|
||||
!zakum - Spawn Zakum on your location.
|
||||
!horntail - Spawn Horntail on your location.
|
||||
!pinkbean - Spawn Pink Bean on your location.
|
||||
!pap - Spawn Papulatus on your location.
|
||||
!pianus - Spawn Pianus (R) on your location.
|
||||
!cake - Spawn Cake boss with specified HP.
|
||||
!playernpc - Spawn a player NPC of an online player.
|
||||
!playernpcremove - Remove a "Iv 200" player NPC.
|
||||
!pnpc - Spawn a permanent NPC on your location.
|
||||
!pnpcremove - Remove a permanent NPC on the map.
|
||||
!pmob - Spawn a permanent mob on your location.
|
||||
!pmobremove - Remove all permanent mobs of the same type on the map.
|
||||
|
||||
|
||||
Developer Commands:
|
||||
!debug - Show a debug message.
|
||||
!set - Store value in an array, for testing.
|
||||
!showpackets - Toggle show received packets in console.
|
||||
!showmovelife - Toggle show move life in console.
|
||||
!showsessions - Show online sessions.
|
||||
!iplist - Show IP of all players.
|
||||
|
||||
|
||||
Admin Commands:
|
||||
!setgmlevel - Set GM level of a player.
|
||||
!warpworld - Warp to a different world.
|
||||
!saveall - Save all characters.
|
||||
!dcall - Disconnect all players (online or logged in).
|
||||
!mapplayers - Show all players on the map.
|
||||
!getacc - Show account name of an online player.
|
||||
!shutdown - Shut down the server.
|
||||
!clearquestcache - Clear all quest cache.
|
||||
!clearquest - Clear cache of a quest.
|
||||
!supplyratecoupon - Set availability of coupons in Cash Shop.
|
||||
!spawnallpnpcs - Spawn player NPCs of all existing players.
|
||||
!eraseallpnpcs - Remove all player NPCs.
|
||||
!addchannel - Add a new channel to a world.
|
||||
!addworld - Add a new world.
|
||||
!removechannel - Remove channel from a world.
|
||||
!removeworld - Remove a world.
|
||||
!devtest - Runs devtest.js. Developer utility - test stuff without restarting the server.
|
||||
|
||||
|
||||
9
handbook/Equip/Skin.txt
Normal file
9
handbook/Equip/Skin.txt
Normal file
@@ -0,0 +1,9 @@
|
||||
0 - Light - (no description)
|
||||
1 - Tanned - (no description)
|
||||
2 - Dark - (no description)
|
||||
3 - Pale - (no description)
|
||||
4 - Blue - (no description)
|
||||
5 - Green - (no description)
|
||||
9 - White - (no description)
|
||||
10 - Pink - (no description)
|
||||
11 - Brown - (no description)
|
||||
2
handbook/Gender.txt
Normal file
2
handbook/Gender.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
0 - Male - (no description)
|
||||
1 - Female - (no description)
|
||||
70
handbook/Job.txt
Normal file
70
handbook/Job.txt
Normal file
@@ -0,0 +1,70 @@
|
||||
0 - Beginner - (no description)
|
||||
100 - Warrior - (no description)
|
||||
110 - Fighter - (no description)
|
||||
111 - Crusader - (no description)
|
||||
112 - Hero - (no description)
|
||||
120 - Page - (no description)
|
||||
121 - White Knight - (no description)
|
||||
122 - Paladin - (no description)
|
||||
130 - Spearman - (no description)
|
||||
131 - Dragon Knight - (no description)
|
||||
132 - Dark Knight - (no description)
|
||||
200 - Magician - (no description)
|
||||
210 - Fp Wizard - (no description)
|
||||
211 - Fp Mage - (no description)
|
||||
212 - Fp Archmage - (no description)
|
||||
220 - Il Wizard - (no description)
|
||||
221 - Il Mage - (no description)
|
||||
222 - Il Archmage - (no description)
|
||||
230 - Cleric - (no description)
|
||||
231 - Priest - (no description)
|
||||
232 - Bishop - (no description)
|
||||
300 - Bowman - (no description)
|
||||
310 - Hunter - (no description)
|
||||
311 - Ranger - (no description)
|
||||
312 - Bow Master - (no description)
|
||||
320 - Crossbowman - (no description)
|
||||
321 - Sniper - (no description)
|
||||
322 - Crossbow Master - (no description)
|
||||
400 - Thief - (no description)
|
||||
410 - Assassin - (no description)
|
||||
411 - Hermit - (no description)
|
||||
412 - Night Lord - (no description)
|
||||
420 - Bandit - (no description)
|
||||
421 - Chief Bandit - (no description)
|
||||
422 - Shadower - (no description)
|
||||
500 - Pirate - (no description)
|
||||
510 - Brawler - (no description)
|
||||
511 - Marauder - (no description)
|
||||
512 - Buccaneer - (no description)
|
||||
520 - Gunslinger - (no description)
|
||||
521 - Outlaw - (no description)
|
||||
522 - Corsair - (no description)
|
||||
800 - Maple Leaf Brigadier - (no description)
|
||||
900 - Gm - (no description)
|
||||
910 - Super Gm - (no description)
|
||||
1000 - Noblesse - (no description)
|
||||
1100 - Dawn Warrior 1 - (no description)
|
||||
1110 - Dawn Warrior 2 - (no description)
|
||||
1111 - Dawn Warrior 3 - (no description)
|
||||
1200 - Blaze Wizard 1 - (no description)
|
||||
1210 - Blaze Wizard 2 - (no description)
|
||||
1211 - Blaze Wizard 3 - (no description)
|
||||
1212 - Blaze Wizard 4 - (no description)
|
||||
1300 - Wind Archer 1 - (no description)
|
||||
1310 - Wind Archer 2 - (no description)
|
||||
1311 - Wind Archer 3 - (no description)
|
||||
1312 - Wind Archer 4 - (no description)
|
||||
1400 - Night Walker 1 - (no description)
|
||||
1410 - Night Walker 2 - (no description)
|
||||
1411 - Night Walker 3 - (no description)
|
||||
1412 - Night Walker 4 - (no description)
|
||||
1500 - Thunder Breaker 1 - (no description)
|
||||
1510 - Thunder Breaker 2 - (no description)
|
||||
1511 - Thunder Breaker 3 - (no description)
|
||||
1512 - Thunder Breaker 4 - (no description)
|
||||
2000 - Legend - (no description)
|
||||
2100 - Aran 1 - (no description)
|
||||
2110 - Aran 2 - (no description)
|
||||
2111 - Aran 3 - (no description)
|
||||
2112 - Aran 4 - (no description)
|
||||
@@ -36,10 +36,7 @@
|
||||
5000044 - Orange tiger - They are very gentle and obedient in nature, easily becoming friendly with the owner, which in turn speeds up the level-up process.
|
||||
5000045 - Skunk - Calm and quiet by nature, the easy-going, eccentric Skunk has a rather humorous and pompous outlook on life, the finer things are what it enjoys.
|
||||
5000026 - Sun Wu Kong - Sun Wu Kong ran out of Tang Shan Zhang. He is lazy and moody but can be changed with love.
|
||||
5000040 - ??? ?? - ??? ??? ??? ??? ???????. ??? ????? ??? ?????, ??? ? ?? ??? ??? ???? ??? ?? ????. \n#c??: ?? ??, ??? ??, ??? ?? ???&?? ??, ?? ??, ???? ??, MP ????#
|
||||
5000042 - Kino - A happy-go-lucky, orange mushroom that loves shiny stones.
|
||||
5000043 - ???? - ??? ????, ?? ??? ??? ???????. ??? ?? ? ????, ??? ??? ???? ??? ?? ????. \n#c??: ????, ?????#
|
||||
5000046 - ?? - ???? ?? ?? ???? ???? ??? ???????. \n#c??:????, ?????#
|
||||
5000047 - Robo - A special egg that becomes a mythical Robo upon hatching.
|
||||
5000048 - Baby Robo - A Baby Robo hatched out of the special Capsule. At Level 15, the pet can be evolved into a full-fledged Adult Robo with the help of Garnox the NPC using the Rock of Evolution.
|
||||
5000049 - Blue Robo - Mysterious magical powers aligned and sucessfully evolved the Baby Robo into a Blue Robo!
|
||||
|
||||
259
mvnw
vendored
Normal file
259
mvnw
vendored
Normal file
@@ -0,0 +1,259 @@
|
||||
#!/bin/sh
|
||||
# ----------------------------------------------------------------------------
|
||||
# Licensed to the Apache Software Foundation (ASF) under one
|
||||
# or more contributor license agreements. See the NOTICE file
|
||||
# distributed with this work for additional information
|
||||
# regarding copyright ownership. The ASF licenses this file
|
||||
# to you under the Apache License, Version 2.0 (the
|
||||
# "License"); you may not use this file except in compliance
|
||||
# with the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing,
|
||||
# software distributed under the License is distributed on an
|
||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
# KIND, either express or implied. See the License for the
|
||||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
# ----------------------------------------------------------------------------
|
||||
|
||||
# ----------------------------------------------------------------------------
|
||||
# Apache Maven Wrapper startup batch script, version 3.3.2
|
||||
#
|
||||
# Optional ENV vars
|
||||
# -----------------
|
||||
# JAVA_HOME - location of a JDK home dir, required when download maven via java source
|
||||
# MVNW_REPOURL - repo url base for downloading maven distribution
|
||||
# MVNW_USERNAME/MVNW_PASSWORD - user and password for downloading maven
|
||||
# MVNW_VERBOSE - true: enable verbose log; debug: trace the mvnw script; others: silence the output
|
||||
# ----------------------------------------------------------------------------
|
||||
|
||||
set -euf
|
||||
[ "${MVNW_VERBOSE-}" != debug ] || set -x
|
||||
|
||||
# OS specific support.
|
||||
native_path() { printf %s\\n "$1"; }
|
||||
case "$(uname)" in
|
||||
CYGWIN* | MINGW*)
|
||||
[ -z "${JAVA_HOME-}" ] || JAVA_HOME="$(cygpath --unix "$JAVA_HOME")"
|
||||
native_path() { cygpath --path --windows "$1"; }
|
||||
;;
|
||||
esac
|
||||
|
||||
# set JAVACMD and JAVACCMD
|
||||
set_java_home() {
|
||||
# For Cygwin and MinGW, ensure paths are in Unix format before anything is touched
|
||||
if [ -n "${JAVA_HOME-}" ]; then
|
||||
if [ -x "$JAVA_HOME/jre/sh/java" ]; then
|
||||
# IBM's JDK on AIX uses strange locations for the executables
|
||||
JAVACMD="$JAVA_HOME/jre/sh/java"
|
||||
JAVACCMD="$JAVA_HOME/jre/sh/javac"
|
||||
else
|
||||
JAVACMD="$JAVA_HOME/bin/java"
|
||||
JAVACCMD="$JAVA_HOME/bin/javac"
|
||||
|
||||
if [ ! -x "$JAVACMD" ] || [ ! -x "$JAVACCMD" ]; then
|
||||
echo "The JAVA_HOME environment variable is not defined correctly, so mvnw cannot run." >&2
|
||||
echo "JAVA_HOME is set to \"$JAVA_HOME\", but \"\$JAVA_HOME/bin/java\" or \"\$JAVA_HOME/bin/javac\" does not exist." >&2
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
else
|
||||
JAVACMD="$(
|
||||
'set' +e
|
||||
'unset' -f command 2>/dev/null
|
||||
'command' -v java
|
||||
)" || :
|
||||
JAVACCMD="$(
|
||||
'set' +e
|
||||
'unset' -f command 2>/dev/null
|
||||
'command' -v javac
|
||||
)" || :
|
||||
|
||||
if [ ! -x "${JAVACMD-}" ] || [ ! -x "${JAVACCMD-}" ]; then
|
||||
echo "The java/javac command does not exist in PATH nor is JAVA_HOME set, so mvnw cannot run." >&2
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
# hash string like Java String::hashCode
|
||||
hash_string() {
|
||||
str="${1:-}" h=0
|
||||
while [ -n "$str" ]; do
|
||||
char="${str%"${str#?}"}"
|
||||
h=$(((h * 31 + $(LC_CTYPE=C printf %d "'$char")) % 4294967296))
|
||||
str="${str#?}"
|
||||
done
|
||||
printf %x\\n $h
|
||||
}
|
||||
|
||||
verbose() { :; }
|
||||
[ "${MVNW_VERBOSE-}" != true ] || verbose() { printf %s\\n "${1-}"; }
|
||||
|
||||
die() {
|
||||
printf %s\\n "$1" >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
trim() {
|
||||
# MWRAPPER-139:
|
||||
# Trims trailing and leading whitespace, carriage returns, tabs, and linefeeds.
|
||||
# Needed for removing poorly interpreted newline sequences when running in more
|
||||
# exotic environments such as mingw bash on Windows.
|
||||
printf "%s" "${1}" | tr -d '[:space:]'
|
||||
}
|
||||
|
||||
# parse distributionUrl and optional distributionSha256Sum, requires .mvn/wrapper/maven-wrapper.properties
|
||||
while IFS="=" read -r key value; do
|
||||
case "${key-}" in
|
||||
distributionUrl) distributionUrl=$(trim "${value-}") ;;
|
||||
distributionSha256Sum) distributionSha256Sum=$(trim "${value-}") ;;
|
||||
esac
|
||||
done <"${0%/*}/.mvn/wrapper/maven-wrapper.properties"
|
||||
[ -n "${distributionUrl-}" ] || die "cannot read distributionUrl property in ${0%/*}/.mvn/wrapper/maven-wrapper.properties"
|
||||
|
||||
case "${distributionUrl##*/}" in
|
||||
maven-mvnd-*bin.*)
|
||||
MVN_CMD=mvnd.sh _MVNW_REPO_PATTERN=/maven/mvnd/
|
||||
case "${PROCESSOR_ARCHITECTURE-}${PROCESSOR_ARCHITEW6432-}:$(uname -a)" in
|
||||
*AMD64:CYGWIN* | *AMD64:MINGW*) distributionPlatform=windows-amd64 ;;
|
||||
:Darwin*x86_64) distributionPlatform=darwin-amd64 ;;
|
||||
:Darwin*arm64) distributionPlatform=darwin-aarch64 ;;
|
||||
:Linux*x86_64*) distributionPlatform=linux-amd64 ;;
|
||||
*)
|
||||
echo "Cannot detect native platform for mvnd on $(uname)-$(uname -m), use pure java version" >&2
|
||||
distributionPlatform=linux-amd64
|
||||
;;
|
||||
esac
|
||||
distributionUrl="${distributionUrl%-bin.*}-$distributionPlatform.zip"
|
||||
;;
|
||||
maven-mvnd-*) MVN_CMD=mvnd.sh _MVNW_REPO_PATTERN=/maven/mvnd/ ;;
|
||||
*) MVN_CMD="mvn${0##*/mvnw}" _MVNW_REPO_PATTERN=/org/apache/maven/ ;;
|
||||
esac
|
||||
|
||||
# apply MVNW_REPOURL and calculate MAVEN_HOME
|
||||
# maven home pattern: ~/.m2/wrapper/dists/{apache-maven-<version>,maven-mvnd-<version>-<platform>}/<hash>
|
||||
[ -z "${MVNW_REPOURL-}" ] || distributionUrl="$MVNW_REPOURL$_MVNW_REPO_PATTERN${distributionUrl#*"$_MVNW_REPO_PATTERN"}"
|
||||
distributionUrlName="${distributionUrl##*/}"
|
||||
distributionUrlNameMain="${distributionUrlName%.*}"
|
||||
distributionUrlNameMain="${distributionUrlNameMain%-bin}"
|
||||
MAVEN_USER_HOME="${MAVEN_USER_HOME:-${HOME}/.m2}"
|
||||
MAVEN_HOME="${MAVEN_USER_HOME}/wrapper/dists/${distributionUrlNameMain-}/$(hash_string "$distributionUrl")"
|
||||
|
||||
exec_maven() {
|
||||
unset MVNW_VERBOSE MVNW_USERNAME MVNW_PASSWORD MVNW_REPOURL || :
|
||||
exec "$MAVEN_HOME/bin/$MVN_CMD" "$@" || die "cannot exec $MAVEN_HOME/bin/$MVN_CMD"
|
||||
}
|
||||
|
||||
if [ -d "$MAVEN_HOME" ]; then
|
||||
verbose "found existing MAVEN_HOME at $MAVEN_HOME"
|
||||
exec_maven "$@"
|
||||
fi
|
||||
|
||||
case "${distributionUrl-}" in
|
||||
*?-bin.zip | *?maven-mvnd-?*-?*.zip) ;;
|
||||
*) die "distributionUrl is not valid, must match *-bin.zip or maven-mvnd-*.zip, but found '${distributionUrl-}'" ;;
|
||||
esac
|
||||
|
||||
# prepare tmp dir
|
||||
if TMP_DOWNLOAD_DIR="$(mktemp -d)" && [ -d "$TMP_DOWNLOAD_DIR" ]; then
|
||||
clean() { rm -rf -- "$TMP_DOWNLOAD_DIR"; }
|
||||
trap clean HUP INT TERM EXIT
|
||||
else
|
||||
die "cannot create temp dir"
|
||||
fi
|
||||
|
||||
mkdir -p -- "${MAVEN_HOME%/*}"
|
||||
|
||||
# Download and Install Apache Maven
|
||||
verbose "Couldn't find MAVEN_HOME, downloading and installing it ..."
|
||||
verbose "Downloading from: $distributionUrl"
|
||||
verbose "Downloading to: $TMP_DOWNLOAD_DIR/$distributionUrlName"
|
||||
|
||||
# select .zip or .tar.gz
|
||||
if ! command -v unzip >/dev/null; then
|
||||
distributionUrl="${distributionUrl%.zip}.tar.gz"
|
||||
distributionUrlName="${distributionUrl##*/}"
|
||||
fi
|
||||
|
||||
# verbose opt
|
||||
__MVNW_QUIET_WGET=--quiet __MVNW_QUIET_CURL=--silent __MVNW_QUIET_UNZIP=-q __MVNW_QUIET_TAR=''
|
||||
[ "${MVNW_VERBOSE-}" != true ] || __MVNW_QUIET_WGET='' __MVNW_QUIET_CURL='' __MVNW_QUIET_UNZIP='' __MVNW_QUIET_TAR=v
|
||||
|
||||
# normalize http auth
|
||||
case "${MVNW_PASSWORD:+has-password}" in
|
||||
'') MVNW_USERNAME='' MVNW_PASSWORD='' ;;
|
||||
has-password) [ -n "${MVNW_USERNAME-}" ] || MVNW_USERNAME='' MVNW_PASSWORD='' ;;
|
||||
esac
|
||||
|
||||
if [ -z "${MVNW_USERNAME-}" ] && command -v wget >/dev/null; then
|
||||
verbose "Found wget ... using wget"
|
||||
wget ${__MVNW_QUIET_WGET:+"$__MVNW_QUIET_WGET"} "$distributionUrl" -O "$TMP_DOWNLOAD_DIR/$distributionUrlName" || die "wget: Failed to fetch $distributionUrl"
|
||||
elif [ -z "${MVNW_USERNAME-}" ] && command -v curl >/dev/null; then
|
||||
verbose "Found curl ... using curl"
|
||||
curl ${__MVNW_QUIET_CURL:+"$__MVNW_QUIET_CURL"} -f -L -o "$TMP_DOWNLOAD_DIR/$distributionUrlName" "$distributionUrl" || die "curl: Failed to fetch $distributionUrl"
|
||||
elif set_java_home; then
|
||||
verbose "Falling back to use Java to download"
|
||||
javaSource="$TMP_DOWNLOAD_DIR/Downloader.java"
|
||||
targetZip="$TMP_DOWNLOAD_DIR/$distributionUrlName"
|
||||
cat >"$javaSource" <<-END
|
||||
public class Downloader extends java.net.Authenticator
|
||||
{
|
||||
protected java.net.PasswordAuthentication getPasswordAuthentication()
|
||||
{
|
||||
return new java.net.PasswordAuthentication( System.getenv( "MVNW_USERNAME" ), System.getenv( "MVNW_PASSWORD" ).toCharArray() );
|
||||
}
|
||||
public static void main( String[] args ) throws Exception
|
||||
{
|
||||
setDefault( new Downloader() );
|
||||
java.nio.file.Files.copy( java.net.URI.create( args[0] ).toURL().openStream(), java.nio.file.Paths.get( args[1] ).toAbsolutePath().normalize() );
|
||||
}
|
||||
}
|
||||
END
|
||||
# For Cygwin/MinGW, switch paths to Windows format before running javac and java
|
||||
verbose " - Compiling Downloader.java ..."
|
||||
"$(native_path "$JAVACCMD")" "$(native_path "$javaSource")" || die "Failed to compile Downloader.java"
|
||||
verbose " - Running Downloader.java ..."
|
||||
"$(native_path "$JAVACMD")" -cp "$(native_path "$TMP_DOWNLOAD_DIR")" Downloader "$distributionUrl" "$(native_path "$targetZip")"
|
||||
fi
|
||||
|
||||
# If specified, validate the SHA-256 sum of the Maven distribution zip file
|
||||
if [ -n "${distributionSha256Sum-}" ]; then
|
||||
distributionSha256Result=false
|
||||
if [ "$MVN_CMD" = mvnd.sh ]; then
|
||||
echo "Checksum validation is not supported for maven-mvnd." >&2
|
||||
echo "Please disable validation by removing 'distributionSha256Sum' from your maven-wrapper.properties." >&2
|
||||
exit 1
|
||||
elif command -v sha256sum >/dev/null; then
|
||||
if echo "$distributionSha256Sum $TMP_DOWNLOAD_DIR/$distributionUrlName" | sha256sum -c >/dev/null 2>&1; then
|
||||
distributionSha256Result=true
|
||||
fi
|
||||
elif command -v shasum >/dev/null; then
|
||||
if echo "$distributionSha256Sum $TMP_DOWNLOAD_DIR/$distributionUrlName" | shasum -a 256 -c >/dev/null 2>&1; then
|
||||
distributionSha256Result=true
|
||||
fi
|
||||
else
|
||||
echo "Checksum validation was requested but neither 'sha256sum' or 'shasum' are available." >&2
|
||||
echo "Please install either command, or disable validation by removing 'distributionSha256Sum' from your maven-wrapper.properties." >&2
|
||||
exit 1
|
||||
fi
|
||||
if [ $distributionSha256Result = false ]; then
|
||||
echo "Error: Failed to validate Maven distribution SHA-256, your Maven distribution might be compromised." >&2
|
||||
echo "If you updated your Maven version, you need to update the specified distributionSha256Sum property." >&2
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
# unzip and move
|
||||
if command -v unzip >/dev/null; then
|
||||
unzip ${__MVNW_QUIET_UNZIP:+"$__MVNW_QUIET_UNZIP"} "$TMP_DOWNLOAD_DIR/$distributionUrlName" -d "$TMP_DOWNLOAD_DIR" || die "failed to unzip"
|
||||
else
|
||||
tar xzf${__MVNW_QUIET_TAR:+"$__MVNW_QUIET_TAR"} "$TMP_DOWNLOAD_DIR/$distributionUrlName" -C "$TMP_DOWNLOAD_DIR" || die "failed to untar"
|
||||
fi
|
||||
printf %s\\n "$distributionUrl" >"$TMP_DOWNLOAD_DIR/$distributionUrlNameMain/mvnw.url"
|
||||
mv -- "$TMP_DOWNLOAD_DIR/$distributionUrlNameMain" "$MAVEN_HOME" || [ -d "$MAVEN_HOME" ] || die "fail to move MAVEN_HOME"
|
||||
|
||||
clean || :
|
||||
exec_maven "$@"
|
||||
149
mvnw.cmd
vendored
Normal file
149
mvnw.cmd
vendored
Normal file
@@ -0,0 +1,149 @@
|
||||
<# : batch portion
|
||||
@REM ----------------------------------------------------------------------------
|
||||
@REM Licensed to the Apache Software Foundation (ASF) under one
|
||||
@REM or more contributor license agreements. See the NOTICE file
|
||||
@REM distributed with this work for additional information
|
||||
@REM regarding copyright ownership. The ASF licenses this file
|
||||
@REM to you under the Apache License, Version 2.0 (the
|
||||
@REM "License"); you may not use this file except in compliance
|
||||
@REM with the License. You may obtain a copy of the License at
|
||||
@REM
|
||||
@REM http://www.apache.org/licenses/LICENSE-2.0
|
||||
@REM
|
||||
@REM Unless required by applicable law or agreed to in writing,
|
||||
@REM software distributed under the License is distributed on an
|
||||
@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
@REM KIND, either express or implied. See the License for the
|
||||
@REM specific language governing permissions and limitations
|
||||
@REM under the License.
|
||||
@REM ----------------------------------------------------------------------------
|
||||
|
||||
@REM ----------------------------------------------------------------------------
|
||||
@REM Apache Maven Wrapper startup batch script, version 3.3.2
|
||||
@REM
|
||||
@REM Optional ENV vars
|
||||
@REM MVNW_REPOURL - repo url base for downloading maven distribution
|
||||
@REM MVNW_USERNAME/MVNW_PASSWORD - user and password for downloading maven
|
||||
@REM MVNW_VERBOSE - true: enable verbose log; others: silence the output
|
||||
@REM ----------------------------------------------------------------------------
|
||||
|
||||
@IF "%__MVNW_ARG0_NAME__%"=="" (SET __MVNW_ARG0_NAME__=%~nx0)
|
||||
@SET __MVNW_CMD__=
|
||||
@SET __MVNW_ERROR__=
|
||||
@SET __MVNW_PSMODULEP_SAVE=%PSModulePath%
|
||||
@SET PSModulePath=
|
||||
@FOR /F "usebackq tokens=1* delims==" %%A IN (`powershell -noprofile "& {$scriptDir='%~dp0'; $script='%__MVNW_ARG0_NAME__%'; icm -ScriptBlock ([Scriptblock]::Create((Get-Content -Raw '%~f0'))) -NoNewScope}"`) DO @(
|
||||
IF "%%A"=="MVN_CMD" (set __MVNW_CMD__=%%B) ELSE IF "%%B"=="" (echo %%A) ELSE (echo %%A=%%B)
|
||||
)
|
||||
@SET PSModulePath=%__MVNW_PSMODULEP_SAVE%
|
||||
@SET __MVNW_PSMODULEP_SAVE=
|
||||
@SET __MVNW_ARG0_NAME__=
|
||||
@SET MVNW_USERNAME=
|
||||
@SET MVNW_PASSWORD=
|
||||
@IF NOT "%__MVNW_CMD__%"=="" (%__MVNW_CMD__% %*)
|
||||
@echo Cannot start maven from wrapper >&2 && exit /b 1
|
||||
@GOTO :EOF
|
||||
: end batch / begin powershell #>
|
||||
|
||||
$ErrorActionPreference = "Stop"
|
||||
if ($env:MVNW_VERBOSE -eq "true") {
|
||||
$VerbosePreference = "Continue"
|
||||
}
|
||||
|
||||
# calculate distributionUrl, requires .mvn/wrapper/maven-wrapper.properties
|
||||
$distributionUrl = (Get-Content -Raw "$scriptDir/.mvn/wrapper/maven-wrapper.properties" | ConvertFrom-StringData).distributionUrl
|
||||
if (!$distributionUrl) {
|
||||
Write-Error "cannot read distributionUrl property in $scriptDir/.mvn/wrapper/maven-wrapper.properties"
|
||||
}
|
||||
|
||||
switch -wildcard -casesensitive ( $($distributionUrl -replace '^.*/','') ) {
|
||||
"maven-mvnd-*" {
|
||||
$USE_MVND = $true
|
||||
$distributionUrl = $distributionUrl -replace '-bin\.[^.]*$',"-windows-amd64.zip"
|
||||
$MVN_CMD = "mvnd.cmd"
|
||||
break
|
||||
}
|
||||
default {
|
||||
$USE_MVND = $false
|
||||
$MVN_CMD = $script -replace '^mvnw','mvn'
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
# apply MVNW_REPOURL and calculate MAVEN_HOME
|
||||
# maven home pattern: ~/.m2/wrapper/dists/{apache-maven-<version>,maven-mvnd-<version>-<platform>}/<hash>
|
||||
if ($env:MVNW_REPOURL) {
|
||||
$MVNW_REPO_PATTERN = if ($USE_MVND) { "/org/apache/maven/" } else { "/maven/mvnd/" }
|
||||
$distributionUrl = "$env:MVNW_REPOURL$MVNW_REPO_PATTERN$($distributionUrl -replace '^.*'+$MVNW_REPO_PATTERN,'')"
|
||||
}
|
||||
$distributionUrlName = $distributionUrl -replace '^.*/',''
|
||||
$distributionUrlNameMain = $distributionUrlName -replace '\.[^.]*$','' -replace '-bin$',''
|
||||
$MAVEN_HOME_PARENT = "$HOME/.m2/wrapper/dists/$distributionUrlNameMain"
|
||||
if ($env:MAVEN_USER_HOME) {
|
||||
$MAVEN_HOME_PARENT = "$env:MAVEN_USER_HOME/wrapper/dists/$distributionUrlNameMain"
|
||||
}
|
||||
$MAVEN_HOME_NAME = ([System.Security.Cryptography.MD5]::Create().ComputeHash([byte[]][char[]]$distributionUrl) | ForEach-Object {$_.ToString("x2")}) -join ''
|
||||
$MAVEN_HOME = "$MAVEN_HOME_PARENT/$MAVEN_HOME_NAME"
|
||||
|
||||
if (Test-Path -Path "$MAVEN_HOME" -PathType Container) {
|
||||
Write-Verbose "found existing MAVEN_HOME at $MAVEN_HOME"
|
||||
Write-Output "MVN_CMD=$MAVEN_HOME/bin/$MVN_CMD"
|
||||
exit $?
|
||||
}
|
||||
|
||||
if (! $distributionUrlNameMain -or ($distributionUrlName -eq $distributionUrlNameMain)) {
|
||||
Write-Error "distributionUrl is not valid, must end with *-bin.zip, but found $distributionUrl"
|
||||
}
|
||||
|
||||
# prepare tmp dir
|
||||
$TMP_DOWNLOAD_DIR_HOLDER = New-TemporaryFile
|
||||
$TMP_DOWNLOAD_DIR = New-Item -Itemtype Directory -Path "$TMP_DOWNLOAD_DIR_HOLDER.dir"
|
||||
$TMP_DOWNLOAD_DIR_HOLDER.Delete() | Out-Null
|
||||
trap {
|
||||
if ($TMP_DOWNLOAD_DIR.Exists) {
|
||||
try { Remove-Item $TMP_DOWNLOAD_DIR -Recurse -Force | Out-Null }
|
||||
catch { Write-Warning "Cannot remove $TMP_DOWNLOAD_DIR" }
|
||||
}
|
||||
}
|
||||
|
||||
New-Item -Itemtype Directory -Path "$MAVEN_HOME_PARENT" -Force | Out-Null
|
||||
|
||||
# Download and Install Apache Maven
|
||||
Write-Verbose "Couldn't find MAVEN_HOME, downloading and installing it ..."
|
||||
Write-Verbose "Downloading from: $distributionUrl"
|
||||
Write-Verbose "Downloading to: $TMP_DOWNLOAD_DIR/$distributionUrlName"
|
||||
|
||||
$webclient = New-Object System.Net.WebClient
|
||||
if ($env:MVNW_USERNAME -and $env:MVNW_PASSWORD) {
|
||||
$webclient.Credentials = New-Object System.Net.NetworkCredential($env:MVNW_USERNAME, $env:MVNW_PASSWORD)
|
||||
}
|
||||
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
|
||||
$webclient.DownloadFile($distributionUrl, "$TMP_DOWNLOAD_DIR/$distributionUrlName") | Out-Null
|
||||
|
||||
# If specified, validate the SHA-256 sum of the Maven distribution zip file
|
||||
$distributionSha256Sum = (Get-Content -Raw "$scriptDir/.mvn/wrapper/maven-wrapper.properties" | ConvertFrom-StringData).distributionSha256Sum
|
||||
if ($distributionSha256Sum) {
|
||||
if ($USE_MVND) {
|
||||
Write-Error "Checksum validation is not supported for maven-mvnd. `nPlease disable validation by removing 'distributionSha256Sum' from your maven-wrapper.properties."
|
||||
}
|
||||
Import-Module $PSHOME\Modules\Microsoft.PowerShell.Utility -Function Get-FileHash
|
||||
if ((Get-FileHash "$TMP_DOWNLOAD_DIR/$distributionUrlName" -Algorithm SHA256).Hash.ToLower() -ne $distributionSha256Sum) {
|
||||
Write-Error "Error: Failed to validate Maven distribution SHA-256, your Maven distribution might be compromised. If you updated your Maven version, you need to update the specified distributionSha256Sum property."
|
||||
}
|
||||
}
|
||||
|
||||
# unzip and move
|
||||
Expand-Archive "$TMP_DOWNLOAD_DIR/$distributionUrlName" -DestinationPath "$TMP_DOWNLOAD_DIR" | Out-Null
|
||||
Rename-Item -Path "$TMP_DOWNLOAD_DIR/$distributionUrlNameMain" -NewName $MAVEN_HOME_NAME | Out-Null
|
||||
try {
|
||||
Move-Item -Path "$TMP_DOWNLOAD_DIR/$MAVEN_HOME_NAME" -Destination $MAVEN_HOME_PARENT | Out-Null
|
||||
} catch {
|
||||
if (! (Test-Path -Path "$MAVEN_HOME" -PathType Container)) {
|
||||
Write-Error "fail to move MAVEN_HOME"
|
||||
}
|
||||
} finally {
|
||||
try { Remove-Item $TMP_DOWNLOAD_DIR -Recurse -Force | Out-Null }
|
||||
catch { Write-Warning "Cannot remove $TMP_DOWNLOAD_DIR" }
|
||||
}
|
||||
|
||||
Write-Output "MVN_CMD=$MAVEN_HOME/bin/$MVN_CMD"
|
||||
23
pom.xml
23
pom.xml
@@ -1,6 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<groupId>cosmic-maplestory</groupId>
|
||||
@@ -51,24 +50,24 @@
|
||||
<mainClass>net.server.Server</mainClass>
|
||||
|
||||
<!-- Maven plugins -->
|
||||
<maven-surefire-plugin.version>3.2.5</maven-surefire-plugin.version> <!-- For running unit tests -->
|
||||
<maven-jar-plugin.version>3.4.1</maven-jar-plugin.version> <!-- Disabled. (for building thin jar) -->
|
||||
<maven-surefire-plugin.version>3.5.3</maven-surefire-plugin.version> <!-- For running unit tests -->
|
||||
<maven-jar-plugin.version>3.4.2</maven-jar-plugin.version> <!-- Disabled. (for building thin jar) -->
|
||||
<maven-assembly-plugin.version>3.7.1
|
||||
</maven-assembly-plugin.version> <!-- For packaging the executable fat jar -->
|
||||
|
||||
<!-- Dependencies -->
|
||||
<slf4j-api.version>2.0.13</slf4j-api.version> <!-- Logging facade -->
|
||||
<log4j.version>2.23.1</log4j.version> <!-- Slf4j implementation -->
|
||||
<slf4j-api.version>2.0.17</slf4j-api.version> <!-- Logging facade -->
|
||||
<log4j.version>2.25.0</log4j.version> <!-- Slf4j implementation -->
|
||||
<graalvm-js.version>23.0.4</graalvm-js.version>
|
||||
<graalvm-js-scriptengine.version>24.0.1</graalvm-js-scriptengine.version> <!-- ScriptEngine implementation -->
|
||||
<netty.version>4.1.109.Final</netty.version> <!-- Networking -->
|
||||
<netty.version>4.2.2.Final</netty.version> <!-- Networking -->
|
||||
<yamlbeans.version>1.17</yamlbeans.version> <!-- Config file -->
|
||||
<jcip-annotations.version>1.0</jcip-annotations.version> <!-- Annotations for concurrency documentation -->
|
||||
<HikariCP.version>5.1.0</HikariCP.version> <!-- Database connection pool -->
|
||||
<mysql-connector-j.version>8.4.0</mysql-connector-j.version> <!-- MySQL JDBC driver -->
|
||||
<jdbi-version>3.45.1</jdbi-version> <!-- Convenience wrapper around JDBC -->
|
||||
<junit.version>5.10.2</junit.version> <!-- Unit test -->
|
||||
<mockito.version>5.11.0</mockito.version> <!-- Unit test -->
|
||||
<HikariCP.version>6.3.0</HikariCP.version> <!-- Database connection pool -->
|
||||
<mysql-connector-j.version>9.3.0</mysql-connector-j.version> <!-- MySQL JDBC driver -->
|
||||
<jdbi-version>3.49.5</jdbi-version> <!-- Convenience wrapper around JDBC -->
|
||||
<junit.version>5.13.1</junit.version> <!-- Unit test -->
|
||||
<mockito.version>5.18.0</mockito.version> <!-- Unit test -->
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
|
||||
@@ -46,7 +46,7 @@ function action(mode, type, selection) {
|
||||
cm.dispose();
|
||||
return;
|
||||
}
|
||||
if (cm.getMeso < price) {
|
||||
if (cm.getMeso() < price) {
|
||||
cm.sendOk("Please check and see if you have " + price + " mesos to enter this place.");
|
||||
} else {
|
||||
cm.gainMeso(-price);
|
||||
|
||||
@@ -267,7 +267,7 @@ public class Character extends AbstractCharacterObject {
|
||||
private final Pet[] pets = new Pet[3];
|
||||
private PlayerShop playerShop = null;
|
||||
private Shop shop = null;
|
||||
private SkinColor skinColor = SkinColor.NORMAL;
|
||||
private SkinColor skinColor = SkinColor.LIGHT;
|
||||
private Storage storage = null;
|
||||
private Trade trade = null;
|
||||
private MonsterBook monsterbook;
|
||||
|
||||
@@ -22,14 +22,15 @@
|
||||
package client;
|
||||
|
||||
public enum SkinColor {
|
||||
NORMAL(0),
|
||||
DARK(1),
|
||||
BLACK(2),
|
||||
LIGHT(0),
|
||||
TANNED(1),
|
||||
DARK(2),
|
||||
PALE(3),
|
||||
BLUE(4),
|
||||
GREEN(5),
|
||||
WHITE(9),
|
||||
PINK(10);
|
||||
PINK(10),
|
||||
BROWN(11);
|
||||
|
||||
final int id;
|
||||
|
||||
|
||||
@@ -2063,7 +2063,7 @@ public class ItemInformationProvider {
|
||||
try (ResultSet rs = ps.executeQuery()) {
|
||||
if (rs.next()) {
|
||||
int dropperid = rs.getInt("dropperid");
|
||||
itemid = getCrystalForLevel(LifeFactory.getMonsterLevel(dropperid) - 1);
|
||||
itemid = getCrystalForLevel(LifeFactory.getMonsterLevel(dropperid));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user