[Help] Change Channel d/c Problem.
I am using my own modified version of an old OdinMS source for v55, (for the life of me can't remember where I got it, it was a long time ago) and I recently ran into an odd problem. I tried searching the net but I couldn't for the life of me find a solution.
When running the server through the localhost (non-hamachi) I am able to connect and play fine, however if I try changing channels sometimes it d/cs and I do not get any bat errors from what I can see.
Any ideas? Any help is appreciated, even just taking the time to read this. Peace.
Re: [Help] Change Channel d/c Problem.
How many channels do you have? Portforward correctly in accordance to the channels?
Re: [Help] Change Channel d/c Problem.
Quote:
Originally Posted by
Piggy
How many channels do you have? Portforward correctly in accordance to the channels?
I haven't, but I am connecting from the same computer that is running the server (I didn't believe with my current knowledge I would need to forward the ports unless connecting from outside the LAN). I tried using 5, 3, and 2 channels and still got the problem. Currently I am running it using only channel 1 to avoid d/cs.
Also (just to give more information) I have triple checked that I properly edited the channels and channelconfig tables in the OdinMS MySQL database. I am able to change channels, however if I change rapidly or stay on the same channel for an extended period of time (15 min+) and then switch channels I usually D/C. I'll mess around with it a bit more and repost specifically what I was doing when I d/c'd and I'll check again for any errors.
Thanks for the reply, if you have any suggestions (or this additional info helped) please write back at your convenience. :)
Re: [Help] Change Channel d/c Problem.
I played around with it until I disconnected and checked for any bat errors and found a few. Maybe this will help. I've also included the properties files for my server, everything connecting through localhost.
Code:
Bat Errors:
Jan 10, 2013 11:42:39 PM net.sf.odinms.net.channel.ChannelServer runINFO: Channel 1: Listening on port 7575
Jan 10, 2013 11:42:40 PM net.sf.odinms.net.channel.ChannelServer run
INFO: Channel 2: Listening on port 7576
Jan 10, 2013 11:42:41 PM net.sf.odinms.net.channel.ChannelServer run
INFO: Channel 3: Listening on port 7577
Jan 10, 2013 11:43:18 PM net.sf.odinms.net.MapleServerHandler sessionOpened
INFO: IoSession with /127.0.0.1:1140 opened
Jan 10, 2013 11:43:31 PM net.sf.odinms.server.quest.MapleCustomQuest <init>
SEVERE: Error loading custom quest.
java.io.StreamCorruptedException: invalid stream header: EFBFBDEF
at java.io.ObjectInputStream.readStreamHeader(Unknown Source)
at java.io.ObjectInputStream.<init>(Unknown Source)
at net.sf.odinms.server.quest.MapleCustomQuest.<init>(MapleCustomQuest.j
ava:89)
at net.sf.odinms.server.quest.MapleQuest.getInstance(MapleQuest.java:141
)
at net.sf.odinms.client.MapleCharacter.loadCharFromDB(MapleCharacter.jav
a:316)
at net.sf.odinms.net.channel.handler.PlayerLoggedinHandler.handlePacket(
PlayerLoggedinHandler.java:59)
at net.sf.odinms.net.MapleServerHandler.messageReceived(MapleServerHandl
er.java:150)
at org.apache.mina.common.support.AbstractIoFilterChain$TailFilter.messa
geReceived(AbstractIoFilterChain.java:570)
at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageR
eceived(AbstractIoFilterChain.java:299)
at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(Abst
ractIoFilterChain.java:53)
at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.mess
ageReceived(AbstractIoFilterChain.java:648)
at org.apache.mina.filter.codec.support.SimpleProtocolDecoderOutput.flus
h(SimpleProtocolDecoderOutput.java:58)
at org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(Prot
ocolCodecFilter.java:180)
at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageR
eceived(AbstractIoFilterChain.java:299)
at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(Abst
ractIoFilterChain.java:53)
at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.mess
ageReceived(AbstractIoFilterChain.java:648)
at org.apache.mina.filter.executor.ExecutorFilter.processEvent(ExecutorF
ilter.java:220)
at org.apache.mina.filter.executor.ExecutorFilter$ProcessEventsRunnable.
run(ExecutorFilter.java:264)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source
)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnabl
e.java:51)
at java.lang.Thread.run(Unknown Source)
Jan 10, 2013 11:43:45 PM net.sf.odinms.net.MapleServerHandler sessionOpened
INFO: IoSession with /127.0.0.1:1146 opened
Jan 10, 2013 11:43:45 PM net.sf.odinms.net.MapleServerHandler exceptionCaught
SEVERE: An existing connection was forcibly closed by the remote host
java.io.IOException: An existing connection was forcibly closed by the remote ho
st
at sun.nio.ch.SocketDispatcher.read0(Native Method)
at sun.nio.ch.SocketDispatcher.read(Unknown Source)
at sun.nio.ch.IOUtil.readIntoNativeBuffer(Unknown Source)
at sun.nio.ch.IOUtil.read(Unknown Source)
at sun.nio.ch.SocketChannelImpl.read(Unknown Source)
at org.apache.mina.transport.socket.nio.SocketIoProcessor.read(SocketIoP
rocessor.java:218)
at org.apache.mina.transport.socket.nio.SocketIoProcessor.process(Socket
IoProcessor.java:198)
at org.apache.mina.transport.socket.nio.SocketIoProcessor.access$400(Soc
ketIoProcessor.java:45)
at org.apache.mina.transport.socket.nio.SocketIoProcessor$Worker.run(Soc
ketIoProcessor.java:485)
at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnabl
e.java:51)
at java.lang.Thread.run(Unknown Source)
And here's the Properties files:
Code:
Channel Properties:
# hostname or IP address of your world server
net.sf.odinms.world.host=127.0.0.1
# number of channels to host in this process
net.sf.odinms.channel.count=3
# channel keys
# (these are defined in the channels table)
net.sf.odinms.channel.0.key=release1
net.sf.odinms.channel.1.key=release2
net.sf.odinms.channel.2.key=release3
Code:
Login Properties:
# hostname or IP address of your world server
net.sf.odinms.world.host=127.0.0.1
# login server key
# (this is defined in the loginserver table)
net.sf.odinms.login.key=releaselogin
Code:
World Properties:
# experience factor
net.sf.odinms.world.exp=10
# meso factor
net.sf.odinms.world.meso=100
# spawn a character for debugging purposes on every map
net.sf.odinms.world.faekchar=false
# time in milliseconds between loginqueue runs
net.sf.odinms.login.interval=500
# time in milliseconds between ranking updates (default: 30 minutes)
net.sf.odinms.login.ranking.interval=1800000
# total user limit of the server
net.sf.odinms.login.userlimit=500
# defaults for channelservers
net.sf.odinms.channel.net.port=7575
net.sf.odinms.channel.net.interface=127.0.0.1
# active event scripts
net.sf.odinms.channel.events=lolcastle,3rdjob
Look forward to your reply, and thanks again for all the help!
Re: [Help] Change Channel d/c Problem.
Post your MapleCustomQuest
Re: [Help] Change Channel d/c Problem.
Quote:
Originally Posted by Xerixe
Post your MapleCustomQuest
Here it is:
Code:
/* This file is part of the OdinMS Maple Story Server Copyright (C) 2008 Patrick Huy
Matthias Butz Jan Christian Meyer This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License version 3 as published by the Free Software Foundation. You may not use, modify or distribute this program under any other version of the GNU Affero General Public License. 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 Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see .*//* * To change this template, choose Tools | Templates * and open the template in the editor. */package net.sf.odinms.server.quest;import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.FileReader;import java.io.IOException;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;import java.sql.Blob;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.util.LinkedList;import java.util.Properties;import net.sf.odinms.client.MapleQuestStatus;import net.sf.odinms.database.DatabaseConnection;/** * * @author Matze */public class MapleCustomQuest extends MapleQuest { public MapleCustomQuest(int id) { try { this.id = id; startActs = new LinkedList(); completeActs = new LinkedList(); startReqs = new LinkedList(); completeReqs = new LinkedList(); Connection con = DatabaseConnection.getConnection(); PreparedStatement ps = con.prepareStatement("SELECT * FROM questrequirements WHERE " + "questid = ?"); ps.setInt(1, id); ResultSet rs = ps.executeQuery(); MapleQuestRequirement req; MapleCustomQuestData data; while (rs.next()) { Blob blob = rs.getBlob("data"); ObjectInputStream ois = new ObjectInputStream(new ByteArrayInputStream( blob.getBytes(1, (int) blob.length()))); data = (MapleCustomQuestData) ois.readObject(); req = new MapleQuestRequirement(this, MapleQuestRequirementType.getByWZName(data.getName()), data); MapleQuestStatus.Status status = MapleQuestStatus.Status.getById( rs.getInt("status")); if (status.equals(MapleQuestStatus.Status.NOT_STARTED)) { startReqs.add(req); } else if (status.equals(MapleQuestStatus.Status.STARTED)) { completeReqs.add(req); } } rs.close(); ps.close(); ps = con.prepareStatement("SELECT * FROM questactions WHERE questid = ?"); ps.setInt(1, id); rs = ps.executeQuery(); MapleQuestAction act; while (rs.next()) { Blob blob = rs.getBlob("data"); ObjectInputStream ois = new ObjectInputStream(new ByteArrayInputStream( blob.getBytes(1, (int) blob.length()))); data = (MapleCustomQuestData) ois.readObject(); act = new MapleQuestAction(MapleQuestActionType.getByWZName(data.getName()), data, this); MapleQuestStatus.Status status = MapleQuestStatus.Status.getById( rs.getInt("status")); if (status.equals(MapleQuestStatus.Status.NOT_STARTED)) { startActs.add(act); } else if (status.equals(MapleQuestStatus.Status.STARTED)) { completeActs.add(act); } } rs.close(); ps.close(); } catch (SQLException ex) { log.error("Error loading custom quest.", ex); } catch (IOException e) { log.error("Error loading custom quest.", e); } catch (ClassNotFoundException e) { log.error("Error loading custom quest.", e); } } public static void main(String[] args) throws Exception { /*int questid = 100012; Connection con = DatabaseConnection.getConnection(); PreparedStatement psr = con.prepareStatement("INSERT INTO questrequirements VALUES (DEFAULT, ?, ?, ?)"); PreparedStatement psa = con.prepareStatement("INSERT INTO questactions VALUES (DEFAULT, ?, ?, ?)"); psr.setInt(1, questid); psa.setInt(1, questid); MapleCustomQuestData data; MapleCustomQuestData dataEntry; ByteArrayOutputStream bos = new ByteArrayOutputStream(); ObjectOutputStream oos = new ObjectOutputStream(bos); data = new MapleCustomQuestData("item", null, null); dataEntry = new MapleCustomQuestData("0", null, data); data.addChild(dataEntry); dataEntry.addChild(new MapleCustomQuestData("id", 1102065, dataEntry)); dataEntry.addChild(new MapleCustomQuestData("count", 1, dataEntry)); dataEntry.addChild(new MapleCustomQuestData("prop", 1, dataEntry)); dataEntry = new MapleCustomQuestData("1", null, data); data.addChild(dataEntry); dataEntry.addChild(new MapleCustomQuestData("id", 1332032, dataEntry)); dataEntry.addChild(new MapleCustomQuestData("count", 1, dataEntry)); dataEntry.addChild(new MapleCustomQuestData("prop", 1, dataEntry)); dataEntry = new MapleCustomQuestData("2", null, data); data.addChild(dataEntry); dataEntry.addChild(new MapleCustomQuestData("id", 2022120, dataEntry)); dataEntry.addChild(new MapleCustomQuestData("count", 50, dataEntry)); dataEntry.addChild(new MapleCustomQuestData("prop", 1, dataEntry)); psa.setInt(2, MapleQuestStatus.Status.STARTED.getId()); bos = new ByteArrayOutputStream(); oos = new ObjectOutputStream(bos); oos.writeObject(data); oos.flush(); psa.setBlob(3, new ByteArrayInputStream(bos.toByteArray())); psa.executeUpdate(); data = new MapleCustomQuestData("item", null, null); dataEntry = new MapleCustomQuestData("0", null, data); data.addChild(dataEntry); dataEntry.addChild(new MapleCustomQuestData("id", 1002419, dataEntry)); dataEntry.addChild(new MapleCustomQuestData("count", 1, dataEntry)); psa.setInt(2, MapleQuestStatus.Status.NOT_STARTED.getId()); bos = new ByteArrayOutputStream(); oos = new ObjectOutputStream(bos); oos.writeObject(data); oos.flush(); psa.setBlob(3, new ByteArrayInputStream(bos.toByteArray())); psa.executeUpdate();*/ /* THIEF int questid = 100011; Properties dbProps = new Properties(); dbProps.load(new FileReader("db.properties")); DatabaseConnection.setProps(dbProps); Connection con = DatabaseConnection.getConnection(); PreparedStatement psr = con.prepareStatement("INSERT INTO questrequirements VALUES (DEFAULT, ?, ?, ?)"); PreparedStatement psa = con.prepareStatement("INSERT INTO questactions VALUES (DEFAULT, ?, ?, ?)"); psr.setInt(1, questid); psa.setInt(1, questid); MapleCustomQuestData data; MapleCustomQuestData dataEntry; ByteArrayOutputStream bos = new ByteArrayOutputStream(); ObjectOutputStream oos = new ObjectOutputStream(bos); data = new MapleCustomQuestData("quest", null, null); dataEntry = new MapleCustomQuestData("0", null, data); data.addChild(dataEntry); dataEntry.addChild(new MapleCustomQuestData("id", 100010, dataEntry)); dataEntry.addChild(new MapleCustomQuestData("state", MapleQuestStatus.Status.COMPLETED.getId(), dataEntry)); psr.setInt(2, MapleQuestStatus.Status.NOT_STARTED.getId()); bos = new ByteArrayOutputStream(); oos = new ObjectOutputStream(bos); oos.writeObject(data); oos.flush(); psr.setBlob(3, new ByteArrayInputStream(bos.toByteArray())); psr.executeUpdate(); data = new MapleCustomQuestData("item", null, null); dataEntry = new MapleCustomQuestData("0", null, data); data.addChild(dataEntry); dataEntry.addChild(new MapleCustomQuestData("id", 4031012, dataEntry)); dataEntry.addChild(new MapleCustomQuestData("count", 1, dataEntry)); psr.setInt(2, MapleQuestStatus.Status.STARTED.getId()); bos = new ByteArrayOutputStream(); oos = new ObjectOutputStream(bos); oos.writeObject(data); oos.flush(); psr.setBlob(3, new ByteArrayInputStream(bos.toByteArray())); psr.executeUpdate(); data = new MapleCustomQuestData("item", null, null); dataEntry = new MapleCustomQuestData("1", null, data); data.addChild(dataEntry); dataEntry.addChild(new MapleCustomQuestData("id", 4031012, dataEntry)); dataEntry.addChild(new MapleCustomQuestData("count", -1, dataEntry)); psa.setInt(2, MapleQuestStatus.Status.STARTED.getId()); bos = new ByteArrayOutputStream(); oos = new ObjectOutputStream(bos); oos.writeObject(data); oos.flush(); psa.setBlob(3, new ByteArrayInputStream(bos.toByteArray())); psa.executeUpdate(); questid = 100010; psr.setInt(1, questid); psa.setInt(1, questid); data = new MapleCustomQuestData("quest", null, null); dataEntry = new MapleCustomQuestData("0", null, data); data.addChild(dataEntry); dataEntry.addChild(new MapleCustomQuestData("id", 100009, dataEntry)); dataEntry.addChild(new MapleCustomQuestData("state", MapleQuestStatus.Status.COMPLETED.getId(), dataEntry)); psr.setInt(2, MapleQuestStatus.Status.NOT_STARTED.getId()); bos = new ByteArrayOutputStream(); oos = new ObjectOutputStream(bos); oos.writeObject(data); oos.flush(); psr.setBlob(3, new ByteArrayInputStream(bos.toByteArray())); psr.executeUpdate(); data = new MapleCustomQuestData("item", null, null); dataEntry = new MapleCustomQuestData("0", null, data); data.addChild(dataEntry); dataEntry.addChild(new MapleCustomQuestData("id", 4031013, dataEntry)); dataEntry.addChild(new MapleCustomQuestData("count", 30, dataEntry)); psr.setInt(2, MapleQuestStatus.Status.STARTED.getId()); bos = new ByteArrayOutputStream(); oos = new ObjectOutputStream(bos); oos.writeObject(data); oos.flush(); psr.setBlob(3, new ByteArrayInputStream(bos.toByteArray())); psr.executeUpdate(); data = new MapleCustomQuestData("item", null, null); dataEntry = new MapleCustomQuestData("0", null, null); data.addChild(dataEntry); dataEntry.addChild(new MapleCustomQuestData("id", 4031013, dataEntry)); dataEntry.addChild(new MapleCustomQuestData("count", -30, dataEntry)); dataEntry = new MapleCustomQuestData("1", null, data); data.addChild(dataEntry); dataEntry.addChild(new MapleCustomQuestData("id", 4031012, dataEntry)); dataEntry.addChild(new MapleCustomQuestData("count", 1, dataEntry)); psa.setInt(2, MapleQuestStatus.Status.STARTED.getId()); bos = new ByteArrayOutputStream(); oos = new ObjectOutputStream(bos); oos.writeObject(data); oos.flush(); psa.setBlob(3, new ByteArrayInputStream(bos.toByteArray())); psa.executeUpdate(); questid = 100009; psr.setInt(1, questid); psa.setInt(1, questid); data = new MapleCustomQuestData("job", null, null); data.addChild(new MapleCustomQuestData("0", MapleJob.THIEF.getId(), data)); psr.setInt(2, MapleQuestStatus.Status.NOT_STARTED.getId()); bos = new ByteArrayOutputStream(); oos = new ObjectOutputStream(bos); oos.writeObject(data); oos.flush(); psr.setBlob(3, new ByteArrayInputStream(bos.toByteArray())); psr.executeUpdate(); data = new MapleCustomQuestData("lvmin", 30, null); psr.setInt(2, MapleQuestStatus.Status.NOT_STARTED.getId()); bos = new ByteArrayOutputStream(); oos = new ObjectOutputStream(bos); oos.writeObject(data); oos.flush(); psr.setBlob(3, new ByteArrayInputStream(bos.toByteArray())); psr.executeUpdate(); data = new MapleCustomQuestData("item", null, null); dataEntry = new MapleCustomQuestData("0", null, data); data.addChild(dataEntry); dataEntry.addChild(new MapleCustomQuestData("id", 4031011, dataEntry)); dataEntry.addChild(new MapleCustomQuestData("count", 1, dataEntry)); psa.setInt(2, MapleQuestStatus.Status.NOT_STARTED.getId()); bos = new ByteArrayOutputStream(); oos = new ObjectOutputStream(bos); oos.writeObject(data); oos.flush(); psa.setBlob(3, new ByteArrayInputStream(bos.toByteArray())); psa.executeUpdate(); data = new MapleCustomQuestData("item", null, null); dataEntry = new MapleCustomQuestData("0", null, data); data.addChild(dataEntry); dataEntry.addChild(new MapleCustomQuestData("id", 4031011, dataEntry)); dataEntry.addChild(new MapleCustomQuestData("count", -1, dataEntry)); psa.setInt(2, MapleQuestStatus.Status.STARTED.getId()); bos = new ByteArrayOutputStream(); oos = new ObjectOutputStream(bos); oos.writeObject(data); oos.flush(); psa.setBlob(3, new ByteArrayInputStream(bos.toByteArray())); psa.executeUpdate(); psr.close(); psa.close(); con.close();*/ /* BOWMAN int questid = 100002; Properties dbProps = new Properties(); dbProps.load(new FileReader("db.properties")); DatabaseConnection.setProps(dbProps); Connection con = DatabaseConnection.getConnection(); PreparedStatement psr = con.prepareStatement("INSERT INTO questrequirements VALUES (DEFAULT, ?, ?, ?)"); PreparedStatement psa = con.prepareStatement("INSERT INTO questactions VALUES (DEFAULT, ?, ?, ?)"); psr.setInt(1, questid); psa.setInt(1, questid); MapleCustomQuestData data; MapleCustomQuestData dataEntry; ByteArrayOutputStream bos = new ByteArrayOutputStream(); ObjectOutputStream oos = new ObjectOutputStream(bos); data = new MapleCustomQuestData("quest", null, null); dataEntry = new MapleCustomQuestData("0", null, data); data.addChild(dataEntry); dataEntry.addChild(new MapleCustomQuestData("id", 100001, dataEntry)); dataEntry.addChild(new MapleCustomQuestData("state", MapleQuestStatus.Status.COMPLETED.getId(), dataEntry)); psr.setInt(2, MapleQuestStatus.Status.NOT_STARTED.getId()); bos = new ByteArrayOutputStream(); oos = new ObjectOutputStream(bos); oos.writeObject(data); oos.flush(); psr.setBlob(3, new ByteArrayInputStream(bos.toByteArray())); psr.executeUpdate(); data = new MapleCustomQuestData("item", null, null); dataEntry = new MapleCustomQuestData("0", null, data); data.addChild(dataEntry); dataEntry.addChild(new MapleCustomQuestData("id", 4031012, dataEntry)); dataEntry.addChild(new MapleCustomQuestData("count", 1, dataEntry)); psr.setInt(2, MapleQuestStatus.Status.STARTED.getId()); bos = new ByteArrayOutputStream(); oos = new ObjectOutputStream(bos); oos.writeObject(data); oos.flush(); psr.setBlob(3, new ByteArrayInputStream(bos.toByteArray())); psr.executeUpdate(); data = new MapleCustomQuestData("item", null, null); dataEntry = new MapleCustomQuestData("1", null, data); data.addChild(dataEntry); dataEntry.addChild(new MapleCustomQuestData("id", 4031012, dataEntry)); dataEntry.addChild(new MapleCustomQuestData("count", -1, dataEntry)); psa.setInt(2, MapleQuestStatus.Status.STARTED.getId()); bos = new ByteArrayOutputStream(); oos = new ObjectOutputStream(bos); oos.writeObject(data); oos.flush(); psa.setBlob(3, new ByteArrayInputStream(bos.toByteArray())); psa.executeUpdate(); questid = 100001; psr.setInt(1, questid); psa.setInt(1, questid); data = new MapleCustomQuestData("quest", null, null); dataEntry = new MapleCustomQuestData("0", null, data); data.addChild(dataEntry); dataEntry.addChild(new MapleCustomQuestData("id", 100000, dataEntry)); dataEntry.addChild(new MapleCustomQuestData("state", MapleQuestStatus.Status.COMPLETED.getId(), dataEntry)); psr.setInt(2, MapleQuestStatus.Status.NOT_STARTED.getId()); bos = new ByteArrayOutputStream(); oos = new ObjectOutputStream(bos); oos.writeObject(data); oos.flush(); psr.setBlob(3, new ByteArrayInputStream(bos.toByteArray())); psr.executeUpdate(); data = new MapleCustomQuestData("item", null, null); dataEntry = new MapleCustomQuestData("0", null, data); data.addChild(dataEntry); dataEntry.addChild(new MapleCustomQuestData("id", 4031013, dataEntry)); dataEntry.addChild(new MapleCustomQuestData("count", 30, dataEntry)); psr.setInt(2, MapleQuestStatus.Status.STARTED.getId()); bos = new ByteArrayOutputStream(); oos = new ObjectOutputStream(bos); oos.writeObject(data); oos.flush(); psr.setBlob(3, new ByteArrayInputStream(bos.toByteArray())); psr.executeUpdate(); data = new MapleCustomQuestData("item", null, null); dataEntry = new MapleCustomQuestData("0", null, null); data.addChild(dataEntry); dataEntry.addChild(new MapleCustomQuestData("id", 4031013, dataEntry)); dataEntry.addChild(new MapleCustomQuestData("count", -30, dataEntry)); dataEntry = new MapleCustomQuestData("1", null, data); data.addChild(dataEntry); dataEntry.addChild(new MapleCustomQuestData("id", 4031012, dataEntry)); dataEntry.addChild(new MapleCustomQuestData("count", 1, dataEntry)); psa.setInt(2, MapleQuestStatus.Status.STARTED.getId()); bos = new ByteArrayOutputStream(); oos = new ObjectOutputStream(bos); oos.writeObject(data); oos.flush(); psa.setBlob(3, new ByteArrayInputStream(bos.toByteArray())); psa.executeUpdate(); questid = 100000; psr.setInt(1, questid); psa.setInt(1, questid); data = new MapleCustomQuestData("job", null, null); data.addChild(new MapleCustomQuestData("0", MapleJob.BOWMAN.getId(), data)); psr.setInt(2, MapleQuestStatus.Status.NOT_STARTED.getId()); bos = new ByteArrayOutputStream(); oos = new ObjectOutputStream(bos); oos.writeObject(data); oos.flush(); psr.setBlob(3, new ByteArrayInputStream(bos.toByteArray())); psr.executeUpdate(); data = new MapleCustomQuestData("lvmin", 30, null); psr.setInt(2, MapleQuestStatus.Status.NOT_STARTED.getId()); bos = new ByteArrayOutputStream(); oos = new ObjectOutputStream(bos); oos.writeObject(data); oos.flush(); psr.setBlob(3, new ByteArrayInputStream(bos.toByteArray())); psr.executeUpdate(); data = new MapleCustomQuestData("item", null, null); dataEntry = new MapleCustomQuestData("0", null, data); data.addChild(dataEntry); dataEntry.addChild(new MapleCustomQuestData("id", 4031010, dataEntry)); dataEntry.addChild(new MapleCustomQuestData("count", 1, dataEntry)); psa.setInt(2, MapleQuestStatus.Status.NOT_STARTED.getId()); bos = new ByteArrayOutputStream(); oos = new ObjectOutputStream(bos); oos.writeObject(data); oos.flush(); psa.setBlob(3, new ByteArrayInputStream(bos.toByteArray())); psa.executeUpdate(); data = new MapleCustomQuestData("item", null, null); dataEntry = new MapleCustomQuestData("0", null, data); data.addChild(dataEntry); dataEntry.addChild(new MapleCustomQuestData("id", 4031010, dataEntry)); dataEntry.addChild(new MapleCustomQuestData("count", -1, dataEntry)); psa.setInt(2, MapleQuestStatus.Status.STARTED.getId()); bos = new ByteArrayOutputStream(); oos = new ObjectOutputStream(bos); oos.writeObject(data); oos.flush(); psa.setBlob(3, new ByteArrayInputStream(bos.toByteArray())); psa.executeUpdate(); psr.close(); psa.close(); con.close();*/ // WARRIOR /*int questid = 100005; Properties dbProps = new Properties(); dbProps.load(new FileReader("db.properties")); DatabaseConnection.setProps(dbProps); Connection con = DatabaseConnection.getConnection(); PreparedStatement psr = con.prepareStatement("INSERT INTO questrequirements VALUES (DEFAULT, ?, ?, ?)"); PreparedStatement psa = con.prepareStatement("INSERT INTO questactions VALUES (DEFAULT, ?, ?, ?)"); psr.setInt(1, questid); psa.setInt(1, questid); MapleCustomQuestData data; MapleCustomQuestData dataEntry; ByteArrayOutputStream bos = new ByteArrayOutputStream(); ObjectOutputStream oos = new ObjectOutputStream(bos); data = new MapleCustomQuestData("quest", null, null); dataEntry = new MapleCustomQuestData("0", null, data); data.addChild(dataEntry); dataEntry.addChild(new MapleCustomQuestData("id", 100004, dataEntry)); dataEntry.addChild(new MapleCustomQuestData("state", MapleQuestStatus.Status.COMPLETED.getId(), dataEntry)); psr.setInt(2, MapleQuestStatus.Status.NOT_STARTED.getId()); bos = new ByteArrayOutputStream(); oos = new ObjectOutputStream(bos); oos.writeObject(data); oos.flush(); psr.setBlob(3, new ByteArrayInputStream(bos.toByteArray())); psr.executeUpdate(); data = new MapleCustomQuestData("item", null, null); dataEntry = new MapleCustomQuestData("0", null, data); data.addChild(dataEntry); dataEntry.addChild(new MapleCustomQuestData("id", 4031012, dataEntry)); dataEntry.addChild(new MapleCustomQuestData("count", 1, dataEntry)); psr.setInt(2, MapleQuestStatus.Status.STARTED.getId()); bos = new ByteArrayOutputStream(); oos = new ObjectOutputStream(bos); oos.writeObject(data); oos.flush(); psr.setBlob(3, new ByteArrayInputStream(bos.toByteArray())); psr.executeUpdate(); data = new MapleCustomQuestData("item", null, null); dataEntry = new MapleCustomQuestData("1", null, data); data.addChild(dataEntry); dataEntry.addChild(new MapleCustomQuestData("id", 4031012, dataEntry)); dataEntry.addChild(new MapleCustomQuestData("count", -1, dataEntry)); psa.setInt(2, MapleQuestStatus.Status.STARTED.getId()); bos = new ByteArrayOutputStream(); oos = new ObjectOutputStream(bos); oos.writeObject(data); oos.flush(); psa.setBlob(3, new ByteArrayInputStream(bos.toByteArray())); psa.executeUpdate(); questid = 100004; psr.setInt(1, questid); psa.setInt(1, questid); data = new MapleCustomQuestData("quest", null, null); dataEntry = new MapleCustomQuestData("0", null, data); data.addChild(dataEntry); dataEntry.addChild(new MapleCustomQuestData("id", 100003, dataEntry)); dataEntry.addChild(new MapleCustomQuestData("state", MapleQuestStatus.Status.COMPLETED.getId(), dataEntry)); psr.setInt(2, MapleQuestStatus.Status.NOT_STARTED.getId()); bos = new ByteArrayOutputStream(); oos = new ObjectOutputStream(bos); oos.writeObject(data); oos.flush(); psr.setBlob(3, new ByteArrayInputStream(bos.toByteArray())); psr.executeUpdate(); data = new MapleCustomQuestData("item", null, null); dataEntry = new MapleCustomQuestData("0", null, data); data.addChild(dataEntry); dataEntry.addChild(new MapleCustomQuestData("id", 4031013, dataEntry)); dataEntry.addChild(new MapleCustomQuestData("count", 30, dataEntry)); psr.setInt(2, MapleQuestStatus.Status.STARTED.getId()); bos = new ByteArrayOutputStream(); oos = new ObjectOutputStream(bos); oos.writeObject(data); oos.flush(); psr.setBlob(3, new ByteArrayInputStream(bos.toByteArray())); psr.executeUpdate(); data = new MapleCustomQuestData("item", null, null); dataEntry = new MapleCustomQuestData("0", null, null); data.addChild(dataEntry); dataEntry.addChild(new MapleCustomQuestData("id", 4031013, dataEntry)); dataEntry.addChild(new MapleCustomQuestData("count", -30, dataEntry)); dataEntry = new MapleCustomQuestData("1", null, data); data.addChild(dataEntry); dataEntry.addChild(new MapleCustomQuestData("id", 4031012, dataEntry)); dataEntry.addChild(new MapleCustomQuestData("count", 1, dataEntry)); psa.setInt(2, MapleQuestStatus.Status.STARTED.getId()); bos = new ByteArrayOutputStream(); oos = new ObjectOutputStream(bos); oos.writeObject(data); oos.flush(); psa.setBlob(3, new ByteArrayInputStream(bos.toByteArray())); psa.executeUpdate(); questid = 100003; psr.setInt(1, questid); psa.setInt(1, questid); data = new MapleCustomQuestData("job", null, null); data.addChild(new MapleCustomQuestData("0", MapleJob.WARRIOR.getId(), data)); psr.setInt(2, MapleQuestStatus.Status.NOT_STARTED.getId()); bos = new ByteArrayOutputStream(); oos = new ObjectOutputStream(bos); oos.writeObject(data); oos.flush(); psr.setBlob(3, new ByteArrayInputStream(bos.toByteArray())); psr.executeUpdate(); data = new MapleCustomQuestData("lvmin", 30, null); psr.setInt(2, MapleQuestStatus.Status.NOT_STARTED.getId()); bos = new ByteArrayOutputStream(); oos = new ObjectOutputStream(bos); oos.writeObject(data); oos.flush(); psr.setBlob(3, new ByteArrayInputStream(bos.toByteArray())); psr.executeUpdate(); data = new MapleCustomQuestData("item", null, null); dataEntry = new MapleCustomQuestData("0", null, data); data.addChild(dataEntry); dataEntry.addChild(new MapleCustomQuestData("id", 4031008, dataEntry)); dataEntry.addChild(new MapleCustomQuestData("count", 1, dataEntry)); psa.setInt(2, MapleQuestStatus.Status.NOT_STARTED.getId()); bos = new ByteArrayOutputStream(); oos = new ObjectOutputStream(bos); oos.writeObject(data); oos.flush(); psa.setBlob(3, new ByteArrayInputStream(bos.toByteArray())); psa.executeUpdate(); data = new MapleCustomQuestData("item", null, null); dataEntry = new MapleCustomQuestData("0", null, data); data.addChild(dataEntry); dataEntry.addChild(new MapleCustomQuestData("id", 4031008, dataEntry)); dataEntry.addChild(new MapleCustomQuestData("count", -1, dataEntry)); psa.setInt(2, MapleQuestStatus.Status.STARTED.getId()); bos = new ByteArrayOutputStream(); oos = new ObjectOutputStream(bos); oos.writeObject(data); oos.flush(); psa.setBlob(3, new ByteArrayInputStream(bos.toByteArray())); psa.executeUpdate(); psr.close(); psa.close(); con.close(); // MAGICIAN int questid = 100008; Properties dbProps = new Properties(); dbProps.load(new FileReader("db.properties")); DatabaseConnection.setProps(dbProps); Connection con = DatabaseConnection.getConnection(); PreparedStatement psr = con.prepareStatement("INSERT INTO questrequirements VALUES (DEFAULT, ?, ?, ?)"); PreparedStatement psa = con.prepareStatement("INSERT INTO questactions VALUES (DEFAULT, ?, ?, ?)"); psr.setInt(1, questid); psa.setInt(1, questid); MapleCustomQuestData data; MapleCustomQuestData dataEntry; ByteArrayOutputStream bos = new ByteArrayOutputStream(); ObjectOutputStream oos = new ObjectOutputStream(bos); data = new MapleCustomQuestData("quest", null, null); dataEntry = new MapleCustomQuestData("0", null, data); data.addChild(dataEntry); dataEntry.addChild(new MapleCustomQuestData("id", 100007, dataEntry)); dataEntry.addChild(new MapleCustomQuestData("state", MapleQuestStatus.Status.COMPLETED.getId(), dataEntry)); psr.setInt(2, MapleQuestStatus.Status.NOT_STARTED.getId()); bos = new ByteArrayOutputStream(); oos = new ObjectOutputStream(bos); oos.writeObject(data); oos.flush(); psr.setBlob(3, new ByteArrayInputStream(bos.toByteArray())); psr.executeUpdate(); data = new MapleCustomQuestData("item", null, null); dataEntry = new MapleCustomQuestData("0", null, data); data.addChild(dataEntry); dataEntry.addChild(new MapleCustomQuestData("id", 4031012, dataEntry)); dataEntry.addChild(new MapleCustomQuestData("count", 1, dataEntry)); psr.setInt(2, MapleQuestStatus.Status.STARTED.getId()); bos = new ByteArrayOutputStream(); oos = new ObjectOutputStream(bos); oos.writeObject(data); oos.flush(); psr.setBlob(3, new ByteArrayInputStream(bos.toByteArray())); psr.executeUpdate(); data = new MapleCustomQuestData("item", null, null); dataEntry = new MapleCustomQuestData("1", null, data); data.addChild(dataEntry); dataEntry.addChild(new MapleCustomQuestData("id", 4031012, dataEntry)); dataEntry.addChild(new MapleCustomQuestData("count", -1, dataEntry)); psa.setInt(2, MapleQuestStatus.Status.STARTED.getId()); bos = new ByteArrayOutputStream(); oos = new ObjectOutputStream(bos); oos.writeObject(data); oos.flush(); psa.setBlob(3, new ByteArrayInputStream(bos.toByteArray())); psa.executeUpdate(); questid = 100007; psr.setInt(1, questid); psa.setInt(1, questid); data = new MapleCustomQuestData("quest", null, null); dataEntry = new MapleCustomQuestData("0", null, data); data.addChild(dataEntry); dataEntry.addChild(new MapleCustomQuestData("id", 100006, dataEntry)); dataEntry.addChild(new MapleCustomQuestData("state", MapleQuestStatus.Status.COMPLETED.getId(), dataEntry)); psr.setInt(2, MapleQuestStatus.Status.NOT_STARTED.getId()); bos = new ByteArrayOutputStream(); oos = new ObjectOutputStream(bos); oos.writeObject(data); oos.flush(); psr.setBlob(3, new ByteArrayInputStream(bos.toByteArray())); psr.executeUpdate(); data = new MapleCustomQuestData("item", null, null); dataEntry = new MapleCustomQuestData("0", null, data); data.addChild(dataEntry); dataEntry.addChild(new MapleCustomQuestData("id", 4031013, dataEntry)); dataEntry.addChild(new MapleCustomQuestData("count", 30, dataEntry)); psr.setInt(2, MapleQuestStatus.Status.STARTED.getId()); bos = new ByteArrayOutputStream(); oos = new ObjectOutputStream(bos); oos.writeObject(data); oos.flush(); psr.setBlob(3, new ByteArrayInputStream(bos.toByteArray())); psr.executeUpdate(); data = new MapleCustomQuestData("item", null, null); dataEntry = new MapleCustomQuestData("0", null, null); data.addChild(dataEntry); dataEntry.addChild(new MapleCustomQuestData("id", 4031013, dataEntry)); dataEntry.addChild(new MapleCustomQuestData("count", -30, dataEntry)); dataEntry = new MapleCustomQuestData("1", null, data); data.addChild(dataEntry); dataEntry.addChild(new MapleCustomQuestData("id", 4031012, dataEntry)); dataEntry.addChild(new MapleCustomQuestData("count", 1, dataEntry)); psa.setInt(2, MapleQuestStatus.Status.STARTED.getId()); bos = new ByteArrayOutputStream(); oos = new ObjectOutputStream(bos); oos.writeObject(data); oos.flush(); psa.setBlob(3, new ByteArrayInputStream(bos.toByteArray())); psa.executeUpdate(); questid = 100006; psr.setInt(1, questid); psa.setInt(1, questid); data = new MapleCustomQuestData("job", null, null); data.addChild(new MapleCustomQuestData("0", MapleJob.MAGICIAN.getId(), data)); psr.setInt(2, MapleQuestStatus.Status.NOT_STARTED.getId()); bos = new ByteArrayOutputStream(); oos = new ObjectOutputStream(bos); oos.writeObject(data); oos.flush(); psr.setBlob(3, new ByteArrayInputStream(bos.toByteArray())); psr.executeUpdate(); data = new MapleCustomQuestData("lvmin", 30, null); psr.setInt(2, MapleQuestStatus.Status.NOT_STARTED.getId()); bos = new ByteArrayOutputStream(); oos = new ObjectOutputStream(bos); oos.writeObject(data); oos.flush(); psr.setBlob(3, new ByteArrayInputStream(bos.toByteArray())); psr.executeUpdate(); data = new MapleCustomQuestData("item", null, null); dataEntry = new MapleCustomQuestData("0", null, data); data.addChild(dataEntry); dataEntry.addChild(new MapleCustomQuestData("id", 4031009, dataEntry)); dataEntry.addChild(new MapleCustomQuestData("count", 1, dataEntry)); psa.setInt(2, MapleQuestStatus.Status.NOT_STARTED.getId()); bos = new ByteArrayOutputStream(); oos = new ObjectOutputStream(bos); oos.writeObject(data); oos.flush(); psa.setBlob(3, new ByteArrayInputStream(bos.toByteArray())); psa.executeUpdate(); data = new MapleCustomQuestData("item", null, null); dataEntry = new MapleCustomQuestData("0", null, data); data.addChild(dataEntry); dataEntry.addChild(new MapleCustomQuestData("id", 4031009, dataEntry)); dataEntry.addChild(new MapleCustomQuestData("count", -1, dataEntry)); psa.setInt(2, MapleQuestStatus.Status.STARTED.getId()); bos = new ByteArrayOutputStream(); oos = new ObjectOutputStream(bos); oos.writeObject(data); oos.flush(); psa.setBlob(3, new ByteArrayInputStream(bos.toByteArray())); psa.executeUpdate(); psr.close(); psa.close(); con.close();*/ // 3rd job int questid = 100100; Properties dbProps = new Properties(); dbProps.load(new FileReader("db.properties")); DatabaseConnection.setProps(dbProps); Connection con = DatabaseConnection.getConnection(); PreparedStatement psr = con.prepareStatement("INSERT INTO questrequirements VALUES (DEFAULT, ?, ?, ?)"); PreparedStatement psa = con.prepareStatement("INSERT INTO questactions VALUES (DEFAULT, ?, ?, ?)"); psr.setInt(1, questid); psa.setInt(1, questid); MapleCustomQuestData data; MapleCustomQuestData dataEntry; ByteArrayOutputStream bos = new ByteArrayOutputStream(); ObjectOutputStream oos = new ObjectOutputStream(bos); data = new MapleCustomQuestData("lvmin", 70, null); psr.setInt(2, MapleQuestStatus.Status.NOT_STARTED.getId()); bos = new ByteArrayOutputStream(); oos = new ObjectOutputStream(bos); oos.writeObject(data); oos.flush(); psr.setBlob(3, new ByteArrayInputStream(bos.toByteArray())); psr.executeUpdate(); data = new MapleCustomQuestData("item", null, null); dataEntry = new MapleCustomQuestData("0", null, data); data.addChild(dataEntry); dataEntry.addChild(new MapleCustomQuestData("id", 4031057, dataEntry)); dataEntry.addChild(new MapleCustomQuestData("count", 1, dataEntry)); psr.setInt(2, MapleQuestStatus.Status.STARTED.getId()); bos = new ByteArrayOutputStream(); oos = new ObjectOutputStream(bos); oos.writeObject(data); oos.flush(); psr.setBlob(3, new ByteArrayInputStream(bos.toByteArray())); psr.executeUpdate(); data = new MapleCustomQuestData("item", null, null); dataEntry = new MapleCustomQuestData("1", null, data); data.addChild(dataEntry); dataEntry.addChild(new MapleCustomQuestData("id", 4031057, dataEntry)); dataEntry.addChild(new MapleCustomQuestData("count", -1, dataEntry)); psa.setInt(2, MapleQuestStatus.Status.STARTED.getId()); bos = new ByteArrayOutputStream(); oos = new ObjectOutputStream(bos); oos.writeObject(data); oos.flush(); psa.setBlob(3, new ByteArrayInputStream(bos.toByteArray())); psa.executeUpdate(); // clone quest (still 3rd job) questid = 100101; psr.setInt(1, questid); psa.setInt(1, questid); data = new MapleCustomQuestData("quest", null, null); dataEntry = new MapleCustomQuestData("0", null, data); data.addChild(dataEntry); dataEntry.addChild(new MapleCustomQuestData("id", 100100, dataEntry)); dataEntry.addChild(new MapleCustomQuestData("state", MapleQuestStatus.Status.STARTED.getId(), dataEntry)); psr.setInt(2, MapleQuestStatus.Status.NOT_STARTED.getId()); bos = new ByteArrayOutputStream(); oos = new ObjectOutputStream(bos); oos.writeObject(data); oos.flush(); psr.setBlob(3, new ByteArrayInputStream(bos.toByteArray())); psr.executeUpdate(); data = new MapleCustomQuestData("item", null, null); dataEntry = new MapleCustomQuestData("0", null, data); data.addChild(dataEntry); dataEntry.addChild(new MapleCustomQuestData("id", 4031059, dataEntry)); dataEntry.addChild(new MapleCustomQuestData("count", 1, dataEntry)); psr.setInt(2, MapleQuestStatus.Status.STARTED.getId()); bos = new ByteArrayOutputStream(); oos = new ObjectOutputStream(bos); oos.writeObject(data); oos.flush(); psr.setBlob(3, new ByteArrayInputStream(bos.toByteArray())); psr.executeUpdate(); data = new MapleCustomQuestData("item", null, null); dataEntry = new MapleCustomQuestData("0", null, null); data.addChild(dataEntry); dataEntry.addChild(new MapleCustomQuestData("id", 4031059, dataEntry)); dataEntry.addChild(new MapleCustomQuestData("count", -1, dataEntry)); dataEntry = new MapleCustomQuestData("1", null, data); data.addChild(dataEntry); dataEntry.addChild(new MapleCustomQuestData("id", 4031057, dataEntry)); dataEntry.addChild(new MapleCustomQuestData("count", 1, dataEntry)); psa.setInt(2, MapleQuestStatus.Status.STARTED.getId()); bos = new ByteArrayOutputStream(); oos = new ObjectOutputStream(bos); oos.writeObject(data); oos.flush(); psa.setBlob(3, new ByteArrayInputStream(bos.toByteArray())); psa.executeUpdate(); // quiz quest (still 3rd job) questid = 100102; psr.setInt(1, questid); psa.setInt(1, questid); data = new MapleCustomQuestData("lvmin", 70, null); psr.setInt(2, MapleQuestStatus.Status.NOT_STARTED.getId()); bos = new ByteArrayOutputStream(); oos = new ObjectOutputStream(bos); oos.writeObject(data); oos.flush(); psr.setBlob(3, new ByteArrayInputStream(bos.toByteArray())); psr.executeUpdate(); data = new MapleCustomQuestData("item", null, null); dataEntry = new MapleCustomQuestData("0", null, data); data.addChild(dataEntry); dataEntry.addChild(new MapleCustomQuestData("id", 4031058, dataEntry)); dataEntry.addChild(new MapleCustomQuestData("count", 1, dataEntry)); psr.setInt(2, MapleQuestStatus.Status.STARTED.getId()); bos = new ByteArrayOutputStream(); oos = new ObjectOutputStream(bos); oos.writeObject(data); oos.flush(); psr.setBlob(3, new ByteArrayInputStream(bos.toByteArray())); psr.executeUpdate(); data = new MapleCustomQuestData("item", null, null); dataEntry = new MapleCustomQuestData("1", null, data); data.addChild(dataEntry); dataEntry.addChild(new MapleCustomQuestData("id", 4031058, dataEntry)); dataEntry.addChild(new MapleCustomQuestData("count", -1, dataEntry)); psa.setInt(2, MapleQuestStatus.Status.STARTED.getId()); bos = new ByteArrayOutputStream(); oos = new ObjectOutputStream(bos); oos.writeObject(data); oos.flush(); psa.setBlob(3, new ByteArrayInputStream(bos.toByteArray())); psa.executeUpdate(); psr.close(); psa.close(); con.close(); }}