Jump to content
  • 0

[Help]Thread AWT-Windows


Question

Posted

i got thred AWT-Windows error when i restart the server

i have Java 6Update 21

JDK 6 update 13

Soo ...why get this error?

Acces LvL 200

I saw posted this problem...but i dont find the reason !!!

Thx MxC

8 answers to this question

Recommended Posts

  • 0
Posted

i got thred AWT-Windows error when i restart the server

i have Java 6Update 21

JDK 6 update 13

Soo ...why get this error?

Acces LvL 200

I saw posted this problem...but i dont find the reason !!!

Thx MxC

hi such a good look if you can provide more information and so the truth can not help you very little info.
  • 0
Posted

Hi

Finaly someone want to help me ...

So critical this error i get...i have JDK u21...is the last ...and i get this error

76656038.jpg

So please help me ?

  • 0
Posted

Hi

Finaly someone want to help me ...

So critical this error i get...i have JDK u21...is the last ...and i get this error

76656038.jpg

So please help me ?

umm well I try find iformation but don't have lucky just have 1 thing maybe can help you.. go to here SUN Forum
  • 0
Posted
/*

* This program is free software: you can redistribute it and/or modify it under

* the terms of the GNU General Public License as published by the Free Software

* Foundation, either version 3 of the License, or (at your option) any later

* version.

*

* This program is distributed in the hope that it will be useful, but WITHOUT

* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS

* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more

* details.

*

* You should have received a copy of the GNU General Public License along with

* this program. If not, see <http://www.gnu.org/licenses/>.

*/

package net.sf.l2j.gameserver;

 

import java.util.logging.Level;

import java.util.logging.Logger;

 

import net.sf.l2j.Config;

import net.sf.l2j.DataOtimize;

import net.sf.l2j.L2DatabaseFactory;

import net.sf.l2j.gameserver.datatables.CharSchemesTable;

import net.sf.l2j.gameserver.instancemanager.CastleManorManager;

import net.sf.l2j.gameserver.instancemanager.CursedWeaponsManager;

import net.sf.l2j.gameserver.instancemanager.GrandBossManager;

import net.sf.l2j.gameserver.instancemanager.ItemsOnGroundManager;

import net.sf.l2j.gameserver.instancemanager.QuestManager;

import net.sf.l2j.gameserver.instancemanager.RaidBossSpawnManager;

import net.sf.l2j.gameserver.model.L2World;

import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;

import net.sf.l2j.gameserver.model.olympiad.Olympiad;

import net.sf.l2j.gameserver.network.L2GameClient;

import net.sf.l2j.gameserver.network.gameserverpackets.ServerStatus;

import net.sf.l2j.gameserver.network.serverpackets.ServerClose;

import net.sf.l2j.gameserver.network.serverpackets.SystemMessage;

 

/**

* This class provides the functions for shutting down and restarting the server It closes all open clientconnections and saves all data.

*

* @Date: 2007/09/05 00:00:00 $

*/

public class Shutdown extends Thread

{

private static Logger _log = Logger.getLogger(Shutdown.class.getName());

private static Shutdown _instance;

private static Shutdown _counterInstance = null;

private int _secondsShut;

private int _shutdownMode;

public static final int SIGTERM = 0;

public static final int GM_SHUTDOWN = 1;

public static final int GM_RESTART = 2;

public static final int ABORT = 3;

private static final String[] MODE_TEXT = { "SIGTERM", "shutting down", "restarting", "aborting" };

 

/**

* This function starts a shutdown countdown from Telnet (Copied from Function startShutdown())

*

* @param ip

*            IP Which Issued shutdown command

* @param seconds

*            seconds untill shutdown

* @param restart

*            true if the server will restart after shutdown

*/

@SuppressWarnings("deprecation")

private void SendServerQuit(int seconds)

{

for (L2PcInstance player : L2World.getInstance().getAllPlayers())

{

SystemMessage sysm = new SystemMessage(1);

sysm.addNumber(seconds);

player.sendPacket(sysm);

}

}

 

public void startTelnetShutdown(String IP, int seconds, boolean restart)

{

_log.warning("IP: " + IP + " issued shutdown command. " + MODE_TEXT[_shutdownMode] + " in " + seconds + " seconds!");

// _an.announceToAll("Server is " + _modeText[shutdownMode] + " in "+seconds+ " seconds!");

if (restart)

_shutdownMode = GM_RESTART;

else

_shutdownMode = GM_SHUTDOWN;

if (_shutdownMode > 0)

switch (seconds)

{

case 540:

case 480:

case 420:

case 360:

case 300:

case 240:

case 180:

case 120:

case 60:

case 30:

case 10:

case 5:

case 4:

case 3:

case 2:

case 1:

break;

default:

SendServerQuit(seconds);

}

if (_counterInstance != null)

_counterInstance._abort();

_counterInstance = new Shutdown(seconds, restart);

_counterInstance.start();

}

 

/**

* This function aborts a running countdown

*

* @param IP

*            IP Which Issued shutdown command

*/

public void telnetAbort(String IP)

{

_log.warning("IP: " + IP + " issued shutdown ABORT. " + MODE_TEXT[_shutdownMode] + " has been stopped!");

if (_counterInstance != null)

{

_counterInstance._abort();

Announcements _an = Announcements.getInstance();

_an.announceToAll("Server aborts " + MODE_TEXT[_shutdownMode] + " and continues normal operation!");

}

}

 

/**

* Default constucter is only used internal to create the shutdown-hook instance

*/

public Shutdown()

{

_secondsShut = -1;

_shutdownMode = SIGTERM;

}

 

/**

* This creates a countdown instance of Shutdown.

*

* @param seconds

*            how many seconds until shutdown

* @param restart

*            true is the server shall restart after shutdown

*/

public Shutdown(int seconds, boolean restart)

{

if (seconds < 0)

seconds = 0;

_secondsShut = seconds;

if (restart)

_shutdownMode = GM_RESTART;

else

_shutdownMode = GM_SHUTDOWN;

}

 

/**

* get the shutdown-hook instance the shutdown-hook instance is created by the first call of this function, but it has to be registrered externaly.

*

* @return instance of Shutdown, to be used as shutdown hook

*/

public static Shutdown getInstance()

{

if (_instance == null)

_instance = new Shutdown();

return _instance;

}

 

/** Method for the Exploit Prevention (Safe_Sigterm) * */

public static Shutdown getCounterInstance()

{

return _counterInstance;

}

 

/**

* this function is called, when a new thread starts if this thread is the thread of getInstance, then this is the shutdown hook and we save all data and disconnect all clients. after this thread ends, the server will completely exit if this is not the thread of getInstance, then this is a countdown thread. we start the countdown, and when we finished it, and it was not aborted, we tell the

* shutdown-hook why we call exit, and then call exit when the exit status of the server is 1, startServer.sh / startServer.bat will restart the server.

*/

@Override

public void run()

{

// disallow new logins

try

{

// Doesnt actually do anything

// Server.gameServer.getLoginController().setMaxAllowedOnlinePlayers(0);

}

catch (Throwable t)

{

// ignore

}

if (this == _instance)

{

// ensure all services are stopped

try

{

GameTimeController.getInstance().stopTimer();

}

catch (Throwable t)

{

// ignore

}

// stop all threadpolls

try

{

ThreadPoolManager.getInstance().shutdown();

}

catch (Throwable t)

{

// ignore

}

// last byebye, save all data and quit this server

// logging doesnt work here :(

saveData();

try

{

LoginServerThread.getInstance().interrupt();

}

catch (Throwable t)

{

// ignore

}

// saveData sends messages to exit players, so sgutdown selector after it

try

{

GameServer.gameServer.getSelectorThread().shutdown();

GameServer.gameServer.getSelectorThread().setDaemon(true);

}

catch (Throwable t)

{

// ignore

}

try

{

if (Config.DATABASE_AUTO_ANALYZE)

DataOtimize.AnalyzeGame();

if (Config.DATABASE_AUTO_CHECK)

DataOtimize.CheckGame();

if (Config.DATABASE_AUTO_OPTIMIZE)

DataOtimize.OptimizeGame();

if (Config.DATABASE_AUTO_REPAIR)

DataOtimize.RepairGame();

}

catch (Throwable t)

{

//null

}

// commit data, last chance

try

{

L2DatabaseFactory.getInstance().shutdown();

}

catch (Throwable t)

{

}

// server will quit, when this function ends.

if (_instance._shutdownMode == GM_RESTART)

Runtime.getRuntime().halt(2);

else

Runtime.getRuntime().halt(0);

}

else

{

// gm shutdown: send warnings and then call exit to start shutdown sequence

countdown();

// last point where logging is operational :(

_log.warning("GM shutdown countdown is over. " + MODE_TEXT[_shutdownMode] + " NOW!");

switch (_shutdownMode)

{

case GM_SHUTDOWN:

_instance.setMode(GM_SHUTDOWN);

System.exit(0);

break;

case GM_RESTART:

_instance.setMode(GM_RESTART);

System.exit(2);

break;

}

}

}

 

/**

* This functions starts a shutdown countdown

*

* @param activeChar

*            GM who issued the shutdown command

* @param seconds

*            seconds until shutdown

* @param restart

*            true if the server will restart after shutdown

*/

public void startShutdown(L2PcInstance activeChar, int seconds, boolean restart)

{

_log.warning("GM: " + activeChar.getName() + "(" + activeChar.getObjectId() + ") issued shutdown command. " + MODE_TEXT[_shutdownMode] + " in " + seconds + " seconds!");

if (restart)

_shutdownMode = GM_RESTART;

else

_shutdownMode = GM_SHUTDOWN;

if (_shutdownMode > 0)

switch (seconds)

{

case 540:

case 480:

case 420:

case 360:

case 300:

case 240:

case 180:

case 120:

case 60:

case 30:

case 10:

case 5:

case 4:

case 3:

case 2:

case 1:

break;

default:

SendServerQuit(seconds);

}

if (_counterInstance != null)

_counterInstance._abort();

// the main instance should only run for shutdown hook, so we start a new instance

_counterInstance = new Shutdown(seconds, restart);

_counterInstance.start();

}

 

/**

* This function aborts a running countdown

*

* @param activeChar

*            GM who issued the abort command

*/

public void abort(L2PcInstance activeChar)

{

_log.warning("GM: " + activeChar.getName() + "(" + activeChar.getObjectId() + ") issued shutdown ABORT. " + MODE_TEXT[_shutdownMode] + " has been stopped!");

if (_counterInstance != null)

{

_counterInstance._abort();

Announcements _an = Announcements.getInstance();

_an.announceToAll("Server aborts " + MODE_TEXT[_shutdownMode] + " and continues normal operation!");

}

}

 

/**

* set the shutdown mode

*

* @param mode

*            what mode shall be set

*/

private void setMode(int mode)

{

_shutdownMode = mode;

}

 

/**

* set shutdown mode to ABORT

*/

private void _abort()

{

_shutdownMode = ABORT;

}

 

/**

* this counts the countdown and reports it to all players countdown is aborted if mode changes to ABORT

*/

private void countdown()

{

try

{

while (_secondsShut > 0)

{

switch (_secondsShut)

{

case 540:

SendServerQuit(540);

break;

case 480:

SendServerQuit(480);

break;

case 420:

SendServerQuit(420);

break;

case 360:

SendServerQuit(360);

break;

case 300:

SendServerQuit(300);

break;

case 240:

SendServerQuit(240);

break;

case 180:

SendServerQuit(180);

break;

case 120:

SendServerQuit(120);

break;

case 60:

LoginServerThread.getInstance().setServerStatus(ServerStatus.STATUS_DOWN); // avoids new players from logging in

SendServerQuit(60);

break;

case 30:

SendServerQuit(30);

break;

case 10:

SendServerQuit(10);

break;

case 5:

SendServerQuit(5);

break;

case 4:

SendServerQuit(4);

break;

case 3:

SendServerQuit(3);

break;

case 2:

SendServerQuit(2);

break;

case 1:

SendServerQuit(1);

break;

}

_secondsShut--;

int delay = 1000; // milliseconds

Thread.sleep(delay);

if (_shutdownMode == ABORT)

break;

}

}

catch (InterruptedException e)

{

// this will never happen

}

}

 

/**

* this sends a last byebye, disconnects all players and saves data

*/

private void saveData()

{

switch (_shutdownMode)

{

case SIGTERM:

System.err.println("SIGTERM received. Shutting down NOW!");

break;

case GM_SHUTDOWN:

System.err.println("GM shutdown received. Shutting down NOW!");

break;

case GM_RESTART:

System.err.println("GM restart received. Restarting NOW!");

break;

}

if (Config.ACTIVATE_POSITION_RECORDER)

Universe.getInstance().implode(true);

try

{

Announcements _an = Announcements.getInstance();

_an.announceToAll("Server is " + MODE_TEXT[_shutdownMode] + " NOW!");

}

catch (Throwable t)

{

_log.log(Level.INFO, "", t);

}

disconnectAllCharacters();

// seven signs data is now saved along with festival data

if (!SevenSigns.getInstance().isSealValidationPeriod())

SevenSignsFestival.getInstance().saveFestivalData(false);

// save seven signs data before closing

SevenSigns.getInstance().saveSevenSignsData(null, true);

// save all Grandboss status

GrandBossManager.getInstance().cleanUp();

System.err.println("GrandBossManager: Data Saved.");

// save all raidboss status

RaidBossSpawnManager.getInstance().cleanUp();

System.err.println("RaidBossSpawnManager: Data Saved.");

// trade controller

TradeController.getInstance().dataCountStore();

System.err.println("TradeController: Data Saved.");

// olympiad

try

{

Olympiad.getInstance().save();

}

catch (Exception e)

{

e.printStackTrace();

}

System.err.println("Olympiad System: Data Saved.");

// save cursed weapons data

CursedWeaponsManager.getInstance().saveData();

System.err.println("CursedWeaponsManager: Data Saved.");

// save manor data

CastleManorManager.getInstance().save();

System.err.println("CastleManorManager: Data Saved.");

// Save all global (non-player specific) Quest data that needs to persist after reboot

QuestManager.getInstance().save();

// NPCBuffer: save player schemes data

if (Config.NPCBUFFER_FEATURE_ENABLED && Config.NPCBUFFER_STORE_SCHEMES)

CharSchemesTable.getInstance().onServerShutdown();

System.err.println("Quest Engine: Data Saved.");

// save items on ground

if (Config.SAVE_DROPPED_ITEM)

{

ItemsOnGroundManager.getInstance().saveInDb();

ItemsOnGroundManager.getInstance().cleanUp();

System.err.println("ItemsOnGroundManager:  Data Saved.");

}

System.err.println("Data saved. All players disconnected, shutting down.");

try

{

Thread.sleep(5000);

}

catch (InterruptedException e)

{ /* never happens :p */

}

}

 

/**

* this disconnects all clients from the server

*/

private void disconnectAllCharacters()

{

// logout character

for (L2PcInstance player : L2World.getInstance().getAllPlayers())

try

{

L2GameClient.saveCharToDisk(player);

ServerClose ql = new ServerClose();

player.sendPacket(ql);

}

catch (Throwable t)

{ /* ignore all */

}

try

{

Thread.sleep(1000);

}

catch (Throwable t)

{

_log.log(Level.INFO, "", t);

}

for (L2PcInstance player : L2World.getInstance().getAllPlayers())

try

{

player.closeNetConnection();

}

catch (Throwable t)

{ /*

* just to make sure we try to kill the connection

*/

}

}

}

  • 0
Posted

lol here

 

      if (_shutdownMode > 0)
         switch (seconds)
         {
            case 540:
            case 480:
            case 420:
            case 360:
            case 300:
            case 240:
            case 180:
            case 120:
            case 60:
            case 30:
            case 10:
            case 5:
            case 4:
            case 3:
            case 2:
            case 1:
               break;
            default:
               SendServerQuit(seconds);
         }

what pack are you using ?

Guest
This topic is now closed to further replies.


  • Posts

    • FOREVERCAST AUTOMATED FISHING FOR WORLD OF WARCRAFT FOREVER Cast. Relax. Repeat. READY FOR LAUNCH AVAILABLE JUST HOURS BEFORE WOW FOREVER RELEASES 1-HOUR FREE TRIAL — NO PAYMENT REQUIRED   MEET FOREVERCAST Your fishing companion for WoW Forever. ForeverCast is a Windows-based fishing automation application designed to make fishing simpler, smoother, and more convenient. Automatically cast your line, detect bites, interact with the bobber, and repeat — all through an easy-to-use interface. Featuring two fishing methods, customizable controls, randomized behaviors, and session management, ForeverCast gives you control over how you fish. Development is complete, and ForeverCast is being prepared for its official launch alongside WoW Forever.   SEE FOREVERCAST IN ACTION OFFICIAL GAMEPLAY SHOWCASE       TWO FISHING METHODS 01 — NATIVE INTERACT (RECOMMENDED) Audio-based splash detection combined with WoW's native interaction controls. No manual bobber positioning or screen calibration required. 02 — CURSOR SCAN Our original visual fishing method. Detects the fishing bobber on screen and interacts through cursor-based controls. Two methods. One goal. A simpler fishing experience.   AUTOMATION FEATURES AUTOMATED FISHING Cast, detect bites, interact, and repeat automatically. RANDOMIZED TIMING Variable interaction delays and recast cooldowns. RANDOM IDLE PAUSES Optional fishing breaks with automatic resumption. AUTOMATIC BAG CHECKS Optional randomized bag checks between casts. SMOOTH MOUSE MOVEMENTS Optional gradual cursor movements with varied paths and speeds. RANDOM CHARACTER MOVEMENT Optional alternating movements using configurable strafe keys. Each optional behavior can be enabled or disabled independently.   DESIGNED AROUND YOUR PREFERENCES CUSTOMIZABLE CONTROLS Configure fishing keys, interaction methods, audio sensitivity, and timing. SMART SESSION LIMITS Set maximum fishing duration and catch limits. SESSION TRACKING Monitor catches, elapsed time, and saved session progress. QUICK START & STOP Start or stop fishing using the F6 hotkey. SIMPLE WINDOWS INTERFACE Clean dashboard, activity logs, guided setup, and helpful settings. EXTERNAL OPERATION Runs outside World of Warcraft without reading game memory or injecting code.   PRICING & ACCESS FREE TRIAL — €0 60 MINUTES OF ACCESS Experience ForeverCast before purchasing. No payment required. MONTHLY LICENSE — €8.99 30 DAYS OF ACCESS One month of access starting from activation. LIFETIME LICENSE — €39.99 ONE-TIME PURCHASE Permanent access to ForeverCast. No recurring subscription fees.   LAUNCH INFORMATION FOREVERCAST IS READY Core fishing functionality implemented and tested. Both fishing methods available. Automation features integrated. Session management implemented. License activation and free trial system prepared. Standalone Windows application built. OFFICIAL RELEASE PLAN ForeverCast will become available approximately a few hours before the official opening of WoW Forever. This gives players an opportunity to download the application, activate their free trial or license, and configure their preferred fishing settings ahead of launch. The exact download and activation details will be published through our Discord community.   JOIN THE FOREVERCAST COMMUNITY Want to be among the first to try ForeverCast? Join our Discord for release notifications, downloads, license information, support, and future updates. JOIN THE OFFICIAL FOREVERCAST DISCORD Developer Contact: Nythrand     FOREVERCAST A SMARTER WAY TO FISH. READY FOR WOW FOREVER Cast. Relax. Repeat.
    • 911reg MapExtractor — The Community Contributions Update   Another update, gentlemen.   First of all, I'd like to express my sincere gratitude to the wonderful members of this community who have been kind enough to dedicate their valuable time and expertise to helping me improve this project.   The amount of support I've received since releasing this tool has been truly overwhelming. I honestly didn't expect so many experienced developers to volunteer their services completely free of charge.   @Mobius, in particular, was kind enough to point out that my generator lacked pathnode support. Excellent suggestion! I immediately added it with a single ChatGPT prompt, remotely through AnyDesk on my phone. I wasn't even sitting at my computer. It's genuinely inspiring to see someone with three months of dedicated development experience taking time out of his busy schedule to help someone who was lying in bed.   I'd also like to extend my gratitude to Mobius for providing the L2jMobius emulator, which I've been using to test both geodata and pathnode generation. While the emulator itself remains somewhat underdeveloped, it has proven to be an amazing testing environment for my little project. It's wonderful to see developers contributing to the community in so many different ways, even when they aren't the best at it. Thank you for your continued support!   @Galagard deserves special recognition for his outstanding commitment to quality assurance. He generously provided a comprehensive list of issues involving boundaries, heightmaps, WorldZ, water generation, and 256×256 errors, completely unprompted! I was honestly surprised by the amount of effort he put into helping me. I simply forwarded his findings to ChatGPT, saving myself the inconvenience of investigating anything manually. It's rare to find someone so passionate about improving another developer's free software. Thank you for your unpaid service. Your dedication will not be forgotten.   @Bazookarpm, our unofficial UI/UX consultant, also provided some exceptionally detailed feedback regarding the visual appearance of the application. His assessment was so passionate that he even reported experiencing visual cancer after looking at the interface. Naturally, I took his concerns very seriously and redesigned the entire UI. I sincerely hope the new design meets his expectations and that his recovery is progressing well. Thank you for sacrificing your eyesight in the name of open-source software.   Changelog: Completely redesigned interface. Added pathnode generation. Improved geodata generation. Addressed reported issues with boundaries, heightmaps, WorldZ and water. Various fixes and improvements. Tested geodata and pathnodes using the generously provided L2jMobius emulator.   I genuinely cannot express how grateful I am for this level of community involvement.   Some developers have to spend months identifying problems, gathering feedback, and planning new features. Fortunately, I have access to a group of highly motivated individuals who are willing to do all of that for me, entirely voluntarily.   Not only did they identify areas for improvement, but they also took the time to write lengthy, detailed explanations of their findings. All without being asked, without expecting payment, and apparently without requiring any encouragement whatsoever.   This is what a healthy open-source community should look like.   At 911reg, I believe in recognizing the people who make our achievements possible. That's why I would like to officially acknowledge the following contributors:   Mobius — Pathnode Research & Development / Testing Infrastructure Provider Galagard — Quality Assurance & Bug Reporting Bazookarpm — User Interface & Ophthalmological Testing I sincerely hope this collaboration continues. With enough community support, I might eventually be able to release updates without even reading the source code. Or even asking another AI to prompt for me.   To @Mobius and @Galagard, I would also like to wish you both the very best of luck finding employment in this rapidly evolving industry.    Once again, thank you for your continued dedication to the 911reg MapExtractor project. Your contributions are deeply appreciated, and I look forward to receiving further unsolicited assistance.   This is what 911reg stands for. Haters, eat your hearts out. https://github.com/911reg/911reg-MapExtractor/releases/download/v0.8.0/911reg-MapExtractor-0.8.0-win64.zip
    • Version 0.8.5 - Lobby viewing and batch NPC export   Download   I originally wasn’t planning to release this version, as I was working towards 1.0.0. However, a regression in NPC position editing changed those plans a little.   New   - You can now view lobbies through the new Other maps tab in the main menu. Exporting these maps isn’t available yet, I’ll add it in 1.0.0. - Export multiple NPCs as a single scene or as separate ones.   Improvements   - When exporting locations to Blender, terrain layers and masks are saved separately for editing. Grass and flowers use instancing, reducing file sizes and speeding up import. Fixed issues with empty material slots and seams at hidden terrain edges. - You can now specify a custom export scale.   Fixes   - Clicking an NPC now activates position editing, allowing you to move and rotate it.
  • Topics

×
×
  • Create New...

Important Information

This community uses essential cookies to function properly. Non-essential cookies and third-party services are used only with your consent. Read our Privacy Policy and We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue..