gt: 		if (!quest.getName().matches(regex)) {
context: /***************************************************************************
   *                   (C) Copyright 2003-2019 - Stendhal                    *
   ***************************************************************************
   ***************************************************************************
   *                                                                         *
   *   This program is free software; you can redistribute it and/or modify  *
   *   it under the terms of the GNU General Public License as published by  *
   *   the Free Software Foundation; either version 2 of the License, or     *
   *   (at your option) any later version.                                   *
   *                                                                         *
   ***************************************************************************/
  package games.stendhal.server.core.rp;
  
  
  import java.util.ArrayList;
  import java.util.Collection;
  import java.util.LinkedList;
  import java.util.List;
  
  import org.apache.log4j.Logger;
  
  import games.stendhal.common.constants.Occasion;
  import games.stendhal.server.core.events.TurnNotifier;
  import games.stendhal.server.entity.player.Player;
  import games.stendhal.server.maps.quests.*;
  import games.stendhal.server.maps.quests.antivenom_ring.AntivenomRing;
  
  /**
   * Loads and manages all quests.
   */
  public class StendhalQuestSystem {
  
  	private static final StendhalQuestSystem stendhalQuestSystem = new StendhalQuestSystem();
  
  
  	/** the logger instance. */
  	private static final Logger logger = Logger.getLogger(StendhalQuestSystem.class);
  
  	private final static List<IQuest> quests = new LinkedList<IQuest>();
  
  	private final static List<IQuest> cached = new ArrayList<>();
  	private static boolean cacheLoaded = false;
  
  
  	private StendhalQuestSystem() {
  		// hide constructor, this is a Singleton
  	}
  
  	/**
  	 * gets the singleton instance of the StendhalQuestSystem
  	 *
  	 * @return StendhalQuestSystem
  	 */
  	public static StendhalQuestSystem get() {
  		return stendhalQuestSystem;
  	}
  
  	/**
  	 *
  	 * @param player
  	 */
  	public static void updatePlayerQuests(Player player) {
  		for(int i=0; i<quests.size(); i++) {
  			quests.get(i).updatePlayer(player);
  		}
  	}
  
  	/**
  	 * Initializes the QuestSystem.
  	 */
  	public void init() {
  		//deactivated AdMemoriaInPortfolio
  		//loadQuest(new AdMemoriaInPortfolio());
  		loadQuest(new AdosDeathmatch());
  		loadQuest(new AmazonPrincess());
  		loadQuest(new AntivenomRing());
  		loadQuest(new ArmorForDagobert());
  		loadQuest(new BalloonForBobby());
  		loadQuest(new BeerForHayunn());
  		loadQuest(new Blackjack());
  		loadQuest(new BowsForOuchit());
  		loadQuest(new Campfire());
  		// deactivated capture the flag
  		//loadQuest(new CaptureFlagQuest());
  		loadQuest(new ChocolateForElisabeth());
  		loadQuest(new CleanAthorsUnderground());
  		loadQuest(new CleanStorageSpace());
  		loadQuest(new CloakCollector());
  		loadQuest(new CloakCollector2());
  		loadQuest(new CloaksForBario());
  		loadQuest(new ClubOfThorns());
  		loadQuest(new CoalForHaunchy());
  		loadQuest(new CodedMessageFromFinnFarmer());
  		loadQuest(new CollectEnemyData());
  		loadQuest(new CrownForTheWannaBeKing());
  		loadQuest(new DailyItemQuest());
  		loadQuest(new DailyMonsterQuest());
  		loadQuest(new DiceGambling());
  		loadQuest(new DragonLair());
  		loadQuest(new EggsForMarianne());
  		loadQuest(new ElfPrincess());
  		loadQuest(new ElvishArmor());
  		loadQuest(new EmotionCrystals());
  		loadQuest(new FindGhosts());
  		loadQuest(new FindJefsMom());
  		loadQuest(new FindRatChildren());
  		loadQuest(new FishermansLicenseQuiz());
  		loadQuest(new FishermansLicenseCollector());
  		loadQuest(new FishSoup());
  		loadQuest(new FishSoupForHughie());
  		loadQuest(new FruitsForCoralia());
  		loadQuest(new GuessKills());
  		loadQuest(new HatForMonogenes());
  		loadQuest(new HelpTomi());
  		loadQuest(new HelpMrsYeti());
  		loadQuest(new HelpWithTheHarvest());
  		loadQuest(new HerbsForCarmen());
  		loadQuest(new HouseBuying());
  		loadQuest(new HungryJoshua());
  		loadQuest(new IcecreamForAnnie());
  		loadQuest(new ImperialPrincess());
  		loadQuest(new JailedBarbarian());
  		loadQuest(new JailedDwarf());
  		loadQuest(new LearnAboutKarma());
  		loadQuest(new LearnAboutOrbs());
  		loadQuest(new LookBookforCeryl());
  		loadQuest(new LookUpQuote());
  		loadQuest(new KanmararnSoldiers());
  		loadQuest(new KillBlordroughs());
  		loadQuest(new KillDarkElves());
  		loadQuest(new KillDhohrNuggetcutter());
  		loadQuest(new KillEnemyArmy());
  		loadQuest(new KillGnomes());
  		loadQuest(new KillMonks());
  		loadQuest(new KillSpiders());
  		loadQuest(new KoboldishTorcibud());
  		loadQuest(new Marriage());
  		loadQuest(new Maze());
  		loadQuest(new McPeglegIOU());
  		loadQuest(new MealForGroongo());
  		loadQuest(new MeetBunny());
  		loadQuest(new MedicineForTad());
  		loadQuest(new MeetHackim());
  		loadQuest(new MeetHayunn());
  		loadQuest(new MeetIo());
  		loadQuest(new MeetKetteh());
  		loadQuest(new MeetMarieHenri());
  		loadQuest(new MeetMonogenes());
  		loadQuest(new MeetSanta());
  		loadQuest(new MeetZynn());
  		loadQuest(new MithrilCloak());
  		loadQuest(new MixtureForOrtiv());
  		loadQuest(new NewsFromHackim());
  		loadQuest(new ObsidianKnife());
  		loadQuest(new PizzaDelivery());
  		loadQuest(new PlinksToy());
  		loadQuest(new RainbowBeans());
  		loadQuest(new RestockFlowerShop());
  		loadQuest(new ReverseArrow());
  		loadQuest(new RingMaker());
  		loadQuest(new SadScientist());
  		loadQuest(new ScubaLicenseQuiz());
  		loadQuest(new SheepGrowing());
  		loadQuest(new SolveRiddles());
  		loadQuest(new SevenCherubs());
  		loadQuest(new Snowballs());
  		loadQuest(new Soup());
  		loadQuest(new StuffForBaldemar());
  		loadQuest(new StuffForVulcanus());
  		loadQuest(new SuntanCreamForZara());
  		loadQuest(new SuppliesForPhalk());
  		loadQuest(new TakeGoldforGrafindle());
  		loadQuest(new ThePiedPiper());
  		loadQuest(new ToysCollector());
  		loadQuest(new TrapsForKlaas());
  		loadQuest(new UltimateCollector());
  		loadQuest(new VampireSword());
  		loadQuest(new WaterForXhiphin());
  		loadQuest(new WeaponsCollector());
  		loadQuest(new WeaponsCollector2());
  		loadQuest(new WeeklyItemQuest());
  		loadQuest(new WizardBank());
  		loadQuest(new ZekielsPracticalTestQuest());
  		loadQuest(new ZooFood());
  
  		if (Occasion.CHRISTMAS) {
  			loadQuest(new GoodiesForRudolph());
  		}
  		if (Occasion.EASTER) {
  			loadQuest(new EasterGiftsForChildren());
  		}
  		if (Occasion.MINETOWN) {
  			loadQuest(new PaperChase()); // needs to be loaded before SemosMineTownRevivalWeeks
  			loadQuest(new MineTownRevivalWeeks());
  		}
  		if (Occasion.MINETOWN_CONSTRUCTION) {
  			loadQuest(new MineTownRevivalWeeksConstruction());
  		}
  
  		TurnNotifier.get().notifyInTurns(10, new DumpGameInformationForWebsite());
  	}
  
  	/**
  	 * loads the quests and adds it to the world
  	 *
  	 * @param quest a Quest
  	 */
  	public void loadQuest(final IQuest quest) {
  
  		// for quicker startup, check the stendhal.quest.regex parameter
  		final String regex = System.getProperty("stendhal.quest.regex", ".*");
  